如何使用PyOpenSSL获取公钥?

usp*_*usp 6 python x509 public-key

我想创建python脚本,这将采用PKCS#12包并打印x509证书中包含的一些信息并用于此purpouse PyOpenSSL模块.到目前为止,我想从证书公钥中获取.但是PKey对象没有合适的方法.我可以从哪里搬出去?任何想法如何获得公钥?

pfx=open('./1.p12','rb').read()
PKCS=crypto.load_pkcs12(pfx)
cert=PKCS.get_certificate()
PKey=cert.get_pubkey()

print PKey
<OpenSSL.crypto.PKey object at 0x012432D8>
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 6

首先你可以像这样加载证书

from OpenSSL import crypto

#cert is the encrypted certificate int this format -----BEGIN -----END    
crtObj = crypto.load_certificate(crypto.FILETYPE_PEM, cert)
pubKeyObject = crtObj.get_pubkey()
pubKeyString = crypto.dump_publickey(crypto.FILETYPE_PEM,pubKeyObject)
print pubKeyString
Run Code Online (Sandbox Code Playgroud)

你会看到类似的东西

-----BEGIN PUBLIC KEY----- 
....
....
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)


小智 -3

这行得通吗?

print PKey
<OpenSSL.crypto.PKey object at 0x012432D8>

from OpenSSL import crypto

crypto.dump_privatekey(PKey)
Run Code Online (Sandbox Code Playgroud)