Похожие вопросы

В чем разница между OpenSSL и pkeyutl -знак и OpenSSL rsautl -знак

в чем разница между openssl pkeyutl -sign -pkeyopt digest:sha256 и openssl rsautl -sign ? Они делают то же самое?

5
задан demonguy
источник

1 ответов

pkeyutl -sign с ключом RSA (и rsa_padding_mode по умолчанию pkcs1 что конкретно означает pkcs1-v1_5) и -pkeyopt digest:$hash делает шаги 2-6 из представителя EMSA-PKCS1-v1_5-кодировать в п. 9.2 rfc3447, затем Шаг 2 из RSASSA-PKCS1-v1_5-знак в разделе 8.2. Другими словами, он делает все, кроме хэша данных (но он проверяет длина входной хэш). Обратите внимание, что если хэш -имя вы указываете здесь отличается от хэша вы на самом деле используется, в результате подпись будет не правильно.

rsautl -sign (аналогично дефолту) выполняет только шаги 4-6 и Шаг 2. Другими словами, он не добавляет ASN.1 кодирование AlgorithmIdentifier в необработанный хэш, поэтому вам нужно сделать это самостоятельно, если вы хотите, чтобы ваши подписи были поняты и приняты другими. pkeyutl -sign без -pkeyopt digest также пропускает ASN.1 кодировка.

для полноты, dgst -$hash -sign или его сокращенную форму $hash -sign С ключом RSA делает всю работу: хэш, ASN.1 кодировать, pad 01FF..Ноль ноль, и modexp.

6
отвечен dave_thompson_085 2016-04-16 11:10:41
источник

Другие вопросы openssl rsa