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

我想知道:

  • 该填充方案的名称和关于其工作原理的指示是什么?
  • 上述OPENSL函数的默认填充方案是什么?例如,如果我执行” openssl rsautl -in input.txt -inkey mykey.pem -out signed.txt ”,将使用哪种填充方案?
有帮助吗?

解决方案

  • PK11_Sign 等。使用PKCS#1 V.1.5签名,其中包括您提到的填充。

  • 填充方案是称为EMSA-PKCS1-V1_5字母的算法的一部分。我不认为它有一个名称,尽管它可能被非正式地称为“ PKCS#1 V.1.5签名填充”。它定义在 PKCS#1标准.

  • 根据 文档 默认值 openssl rsautl 是使用PKCS#1 V.1.5签名,这意味着此填充。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top