user3422290
user3422290

Reputation: 283

Get public key from base64 encded string in Python

I have a certificate which is base64 encoded. I am able to get the public key using Java like this:

    private static final String CERTIFICATE = "MIIGXDCCBUSgAwIBAgIMNrcrYQDXRuN4uLHeMA0GCSqGSIb3DQEBC........";
    X509Certificate cert = (X509Certificate) CertificateFactory.getInstance("X.509")
            .generateCertificate(new ByteArrayInputStream(Base64.getDecoder().decode(CERTIFICATE)));
    PublicKey publicKey = cert.getPublicKey();

But now I try to do the same using Python 3. I am not able to find any example of how to get the public key from the base64 encoded string. Could someone help or point me to some sample code to get the public key which I can use to encrypt JWT later.

Upvotes: 0

Views: 1876

Answers (1)

PressingOnAlways
PressingOnAlways

Reputation: 12366

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();

Upvotes: 1

Related Questions