14
我有簽名的PKCS7消息。它包含一個數據和一個簽名證書(包含整個信任鏈)。在Python中獲取PKCS7簽名人鏈
我有一個代碼,它使用m2crypto從中獲取證書。
bio = BIO.MemoryBuffer(pkcs7message)
p7 = SMIME.PKCS7(m2.pkcs7_read_bio_der(bio._ptr()))
sk = X509.X509_Stack()
certStack = p7.get0_signers(sk)
它的工作原理。然而,certStack只返回一個證書(而不是返回證書的整個鏈條
兩個問題:
- 我缺少的東西(可能還有讓它知道,我需要整個一個選項鍊)
- 是否有其他方法如何讓整個產業鏈(可使用pyopenssl)?
我知道簽名者和簽署者證書鏈之間的區別。你擁有的代碼通常與我的代碼(提取簽名者)相同。但是,它對證書鏈沒有任何作用。我得到了我的PKCS7,並能夠使用「openssl pkcs7 print_certs」命令(它顯示證書鏈存儲在那裏)提取鏈。一般來說,我的問題是如何從PKCS7 –
@VictorRonin中提取(在python代碼中)這些證書鏈以獲得證書鏈'openssl pkcs7 -print_certs'(請參見[pkcs7.c](https://github.com/) openssl/openssl/blob/master/apps/pkcs7.c))使用'p7-> d.sign-> certs'。這不能通過m2crypto接口直接訪問,也許可以使用asn1解析來檢索... – mpromonet