我正在尝试使用OpenSSL(版本1.0.1)实现数字签名(PKCS7)功能。
我对此比较了解。
使用API: PKCS7_sign 和 PKCS7_verify , 我不知道如何为签名设置特定的摘要和/或加密算法。
PKCS7_sign 依次调用 PKCS7_sign_add_signer ,其第4个参数表示摘要标识符,已被硬编码为NULL。这意味着将使用默认摘要算法。
所以我的问题是:
1)默认情况下使用哪些摘要和加密算法?
2)有没有办法设置这些默认值?怎么办?
3)假设我签署了一些数据并将其发送给其他方。它如何知道签名中使用的默认算法? [回答]
答案 0 :(得分:0)
根据OpenSSL documentation,默认摘要算法为SHA-1。
用于签名的“默认”算法取决于您为signkey
参数传递的x509证书中存在的密钥类型。一般来说,这将是一个RSA密钥,但它也可以是一个DSA密钥。