Я пытаюсь выполнить основное упражнение по подписанию и проверке подписи с использованием OpenSSL. Подписание работает нормальноПодписание и проверка с помощью OpenSSL
$ openssl pkeyutl -hexdump -sign -inkey id_rsa -in test.txt > test.sig
Enter pass phrase for id_rsa:
$ cat test.sig
0000 - 20 ab 34 00 ff 87 50 1e-de fb c9 3d 10 2f 7b fd .4...P....=./{.
0010 - 99 a1 61 e0 3d 5f 93 82-63 e9 0a 6f 1a 22 4f 04 ..a.=_..c..o."O.
etc...
Однако, когда я пытаюсь проверить эту подпись, я получаю сообщение об ошибке.
$ openssl pkeyutl -verify -pubin -inkey id_rsa.pub.pem -signature test.sig test.txt
unable to load Public Key
Открытый ключ, который я пытаюсь использовать это переделанный открытый ключ SSH в формате PEM:
-----BEGIN RSA PUBLIC KEY-----
MIICCAKCAf8wxsGr3b/rR/BsRqRMBaKPEGATYhSNaqnThcx9YdA7jHcj1dK7Utmo
nXZz7WwB0W1vzADZpzX96UUX5OIn1iByZ3ZQZpkO6YApMYxo/oHyiBYiCyEhbqKR
TydzmXFGYJ6UtLBFLD1eKfJokhiqdRa1kVMdAd6nBT5JiNb0ADO3VisyPwQZpqyB
Izbq1643JT2PC1BYk1cqqxyTnY/kAEEQvcQwrd0y7p29slRHC6g77HToWJLzNdAj
b2rjkRIfMzDx0LwmCuEqh+9XfVYQFJyrqXTrcgQlKBQhTSneSnn/9SpqYs4ziOIR
4djO9BbhGb/09LSb31NFy6S99rXsElI2aSaaGz5y6/6wyYq+zMxmiS//iCV/heNv
i3PH+D2hxOdz+VEvAJ77x4cMOn3ovVW73aWoBsNP8c9ISKt6MSXClljskA1WFcYJ
9UuBicQ/FGL2j96lzQ2NZZrYru0gAOkj3WUF/z5ORGC7iRvgOc89oqUxKNG+N/RN
jrMbCBAN8hOlJCW0e7/MoangYtBtZ52ZSIxYACRRfKTUlKdjsE9UVYrqBtTeVDGp
Igb+0kuBD61XF6IpnHEX0OZeArL7FY1trDJ85lUU09qNbnlnxNAY2Qo3cZiXSRBW
ROBUxz0OzF2Gvj30BEiY1rshH+XtM5ViQo1nK+YkBQcrCbwfnCFBAgMBAAE=
-----END RSA PUBLIC KEY-----
генерируется с помощью команды
ssh-keygen -f key.pub -e -m pem
На основе обсуждений и документации что я прочитал об этой проблеме, что должен работы. Но это не так.
Любые подсказки?
EDIT: Я просто попытался тот же процесс, с парой ключей, генерируемых с помощью OpenSSL, а не преобразованных ключей SSH. Это просто терпит неудачу, а не создает ошибку (openssl
дает мне информацию об использовании, а не проверку подписи).
EDIT 2: Использование двоичной сигнатуры (опуская -hexdump
) оказывает такое же влияние на ключи, сгенерированные с помощью OpenSSL. На преобразованных ключей RSA, я получаю
unable to load Public Key
Error initializing context
[snip usage output]
Что реализация/версия OpenSSL вы используете? –
@notfed - Извините, должен был упомянуть. openssl 1.0.1c-3, прямо из [Debian Wheezy repos] (http://packages.debian.org/wheezy/openssl). – Inaimathi
Кажется, что вы выводите hexdump подписи в файл и используете это для проверки.Я сомневаюсь, что openssl ожидает, что он прочитает hexdump, а не двоичную подпись. Не могли бы вы попытаться удалить параметр «-xxdump» при создании подписи. –