import base64 from cryptography.hazmat.primitives import serialization from cryptography.hazmat.backends import default_backend def pem_to_base64(pem: str, strip_padding: bool = True) -> str: public_key = serialization.load_pem_public_key( pem.encode("utf-8"), backend=default_backend() ) raw_bytes = public_key.public_bytes( encoding=serialization.Encoding.Raw, format=serialization.PublicFormat.Raw ) b64 = base64.b64encode(raw_bytes).decode('ascii') if strip_padding: b64 = b64.rstrip('=') return b64