从证书中获取主题密钥标识符

时间:2016-08-29 13:13:54

标签: python cryptography certificate pyopenssl

是否可以使用python从现有证书中提取subject key identificator

我试过像:

from OpenSSL.crypto import load_certificate, FILETYPE_PEM

cert_string='-----BEGIN CERTIFICATE--...'
certificate=load_certificate(FILETYPE_PEM, plain_cert)
subject=certificate.get_subject()

但它回复了证书的主题。似乎证书对象不提供主题密钥标识符的功能。还有其他选择吗?

2 个答案:

答案 0 :(得分:3)

将提取主题密钥标识符的代码:

from cryptography import x509
from cryptography.hazmat.backends import default_backend

cert = x509.load_pem_x509_certificate(pem_data, default_backend())
ski = cert.extensions.get_extension_for_oid(x509.oid.ExtensionOID.SUBJECT_KEY_IDENTIFIER)
print(ski.value.digest)

答案 1 :(得分:1)

subject=certificate.get_extension(0)

完成了这项工作。随着

certificate.get_extension_count()

您可以查看证书的扩展程度。