gpt4 book ai didi

rsa - 带有 PKCS1-PSS 填充的 RSA 签名的 maskGenAlgorithm

转载 作者:行者123 更新时间:2023-12-04 01:04:27 24 4
gpt4 key购买 nike

我正在使用 RSA_PKCS1_PSS_PADDING 生成 RSA 签名。我使用 EVP_get_digestbyname() 和 EVP_DigestSignInit() 将摘要算法设置为 SHA256。使用 EVP_PKEY_CTX_set_rsa_pss_saltlen() 将 salt 长度参数设置为 -1。

我有用于签名生成的 EVP_MD_CTX、EVP_MD 和 EVP_PKEY_CTX 结构。

如何获取OpenSSL默认使用的Mask生成算法名称?是否提供了获取它的API?

编辑:使用的 OpenSSL 版本:1.1.0g。

最佳答案

RSASSA-PSS在实践中总是与 MGF1 一起用作掩码生成函数。唯一的变化是 MGF1 在内部使用哪个消息摘要。

有时,它与用于在 PSS 中散列消息和构建标签的消息摘要相同,因为这最有意义。其他时候它是 SHA-1,因为它曾经是早期 RSASSA-PSS API 的默认 MD,因此也是相关 MGF1 的默认 MD。

在理想世界中,一些属性(在签名中,或/和在用于检查签名的公钥证书中)会告诉 MGF1-with-such-MD,也许通过我们必须的一些对象标识符指定 PSS .但加密 API 是 hell 。


为了控制 MGF1 使用的消息摘要,我们需要一些与 -sigopt rsa_mgf1_md:sha256openssl dgst 命令中执行的操作一致的东西。

我最好的猜测是设置 MGF1 摘要使用

assert(EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, EVP_sha256)>=0);

或使用 EVP_PKEY_CTX_get_rsa_mgf1_md() 作为 documented 获取它:

The EVP_PKEY_CTX_get_rsa_mgf1_md() macro gets the MGF1 digest for ctx. If not explicitly set the signing digest is used. The padding mode must have been set to RSA_PKCS1_OAEP_PADDING or RSA_PKCS1_PSS_PADDING.

关于rsa - 带有 PKCS1-PSS 填充的 RSA 签名的 maskGenAlgorithm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com