1
我想實現使用OpenSSL數字簽名(PKCS7)能力(1.0.1版本)PKCS7加密算法。選擇摘要和OpenSSL中
我比較知道這一點。
使用的API:PKCS7_sign和PKCS7_verify, 我不知道如何設置一個特定的消化和/或用於簽名的加密算法。
PKCS7_sign依次調用PKCS7_sign_add_signer,其第四參數表示該摘要標識符,一直硬編碼爲NULL。這將意味着將使用默認的摘要算法。
所以我的問題是:
1)什麼是默認使用的摘要和加密算法?
2)有什麼辦法來設置這些默認值?如何做到這一點?
3)假設我籤一些數據並將其發送給對方。它如何知道簽名中使用的默認算法? [回答]
1)查看文檔,2)它們被設置,這就是爲什麼他們是默認設置,但可以肯定他們覆蓋到任何你想要的(如SHA256例),最後3)閱讀PKCS7規範。作爲[PKCS#7加密消息語法標準](http://www.rsa.com/rsalabs/node.asp?id=2129)格式的一部分,OID將包含簽名算法和摘要算法。 – WhozCraig
此外,與PKCS7_sign文檔註釋中的(1)相關,「如果指定了簽名者,它將使用簽名算法的默認摘要,對於RSA和DSA密鑰都是SHA1。」 – WhozCraig