问题描述
我有一个以base64编码的证书。 我可以使用Java这样获得公共密钥:
private static final String CERTIFICATE = "MIIGXDCCBUSgAwIBAgIMNrcrYQDXRuN4uLHeMA0GCSqGSIb3DQEBC........";
X509Certificate cert = (X509Certificate) CertificateFactory.getInstance("X.509")
.generateCertificate(new ByteArrayInputStream(Base64.getDecoder().decode(CERTIFICATE)));
PublicKey publicKey = cert.getPublicKey();
但是现在我尝试使用Python 3进行相同的操作。我找不到任何示例如何从base64encoded字符串中获取公钥。 有人可以帮我或指向我一些示例代码来获取公钥,我以后可以用它来加密JWT。
谢谢 大卫
解决方法
from cryptography.x509 import load_pem_x509_certificate
from cryptography.hazmat.backends import default_backend
cert_str = '-----BEGIN CERTIFICATE----- MUST HAVE THE BEGIN AND END CERTIFICATE -----END CERTIFICATE-----';
cert_obj = load_pem_x509_certificate(str.encode(cert_str),default_backend())
public_key = cert_obj.public_key();