簡體   English   中英

如何從 x509 證書中提取簽名

[英]How to extract the Signature from an x509 Certificate

我正在嘗試從加載的 x509 證書中提取簽名。 我提取了其他所有內容(發行人、主題、PEM、SignatureAlgorithm 等)。 我已經搜索過這個,但沒有找到。 任何幫助將不勝感激!

from OpenSSL import crypto

certobj = crypto.load_certificate(crypto.FILETYPE_ASN1, cert)

issuer = certobj.get_issuer()
subject = certobj.get_subject()

certDetails = {
    "SerialNumber": certobj.get_serial_number(),
    "Signature": None,  # <-- This is what I am trying to get!
    "SignatureAlgorithm": certobj.get_signature_algorithm(),
    "CertificatePEM": crypto.dump_certificate(crypto.FILETYPE_PEM, certobj),
    "SubjectPublicKeyPEM": crypto.dump_publickey(crypto.FILETYPE_PEM, certobj.get_pubkey()),
    "Version": certobj.get_version()
}

我知道這個問題已經有一段時間了,但對於需要的其他人,有兩種選擇,

signing_algo = cert_obj.signature_hash_algorithm.name

signing_algo = cert_obj.signature_algorithm_oid._name

cert_obj 是 cryptography.x509.Certificate 的實例

有點迂回,但我將證書轉換為加密證書對象以訪問簽名:

cryptCert = cert.to_cryptography()

打印十六進制(cryptCert.signature)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM