在openssl中为pkcs7选择摘要和加密算法

时间:2013-01-17 11:36:11

标签: c++ cryptography openssl digital-signature pkcs#7

我正在尝试使用OpenSSL(版本1.0.1)实现数字签名(PKCS7)功能。

我对此比较了解。

使用API​​: PKCS7_sign PKCS7_verify , 我不知道如何为签名设置特定的摘要和/或加密算法。

PKCS7_sign 依次调用 PKCS7_sign_add_signer ,其第4个参数表示摘要标识符,已被硬编码为NULL。这意味着将使用默认摘要算法。

所以我的问题是:

1)默认情况下使用哪些摘要和加密算法?

2)有没有办法设置这些默认值?怎么办?

3)假设我签署了一些数据并将其发送给其他方。它如何知道签名中使用的默认算法? [回答]

1 个答案:

答案 0 :(得分:0)

根据OpenSSL documentation,默认摘要算法为SHA-1。

用于签名的“默认”算法取决于您为signkey参数传递的x509证书中存在的密钥类型。一般来说,这将是一个RSA密钥,但它也可以是一个DSA密钥。