Как OpenSSL/Mozilla NSS RSA Знак и проверка (PK11_SIGN, PK11_VERIFY, PK11_VERIFYRECOVER Функции)?

StackOverflow https://stackoverflow.com/questions/4756018

Вопрос

У меня есть мои государственные и частные ключи RSA (все P, Q, E, N, D) в формате PEM. Мне любопытно узнать:

  • Как PK11_Sign(), PK11_Verify() а также PK11_VerifyRecover() (из библиотеки openssl/mozilla nss) работать с RSA?
  • Как подписано накладка для подписания входного сообщения?

Контекст моего вопроса: я видел, как PK11_Sign () добавляет некоторую накладку к моим входным данным во время подписания. Например (учитывая размер ключа составляет 162 бита):

my input = 31323334353036373839
padded input = 1FFFFFFFFFFFFFFFF0031323334353036373839

Я бы хотел знать:

  • Как называется эта схема заполнения и указатели на то, как она работает?
  • Какова схема заполнения по умолчанию для вышеупомянутых функций OpenSSL? Например, если я выступаю " openssl rsautl -in input.txt -inkey mykey.pem -out signed.txt "Какая схема прокладки будет использоваться?
Это было полезно?

Решение

  • PK11_Sign и т. д. использует подписи PKCS#1 v.1.5, которые включают упоминание, которое вы упоминаете.

  • Схема заполнения является частью алгоритма, называемого EMSA-PKCS1-V1_5-ECODE. Я не верю, что у него есть имя, хотя оно может быть неофициально назвать «PKCS#1 v.1.5 подпись». Это определено в Стандарт PKCS#1.

  • Согласно с документация по умолчанию для openssl rsautl это использовать PKCS#1 v.1.5, которая подразумевает эту заполнение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top