openssl pkeyutl Проверка подписи RSA работает с -verifyrecover, но не с -verify
Я использовал токен PKCS#11, чтобы подписать какой-то файл test.dat
с дополнением PKCS # 1 и SHA256 в качестве алгоритма дайджеста (механизм SHA256-RSA-PKCS).
Я экспортировал открытый ключ и хочу проверить подпись с помощью openssl:
$ openssl pkeyutl -inkey pubkey.der -pubin -keyform der -verify -sigfile test.dat.sig -pkeyopt rsa_padding_mode:pkcs1 -pkeyopt digest:SHA256 -in test.dat
Signature Verification Failure
Странная вещь, если я использую переключатель командной строки -verifyrecover
вместо -verify
проверка правильна:
$ openssl pkeyutl -pubin -inkey pubkey.der -keyform der -verifyrecover -in test.dat.sig -pkeyopt rsa_padding_mode:pkcs1 -pkeyopt digest:SHA256|xxd
00000000: b5bb 9d80 14a0 f9b1 d61e 21e7 96d7 8dcc ..........!.....
00000010: df13 52f2 3cd3 2812 f485 0b87 8ae4 944c ..R.<.(........L
$ sha256sum test.dat
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c test.dat
Почему первая команда выдает ошибку?