File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44import Crypto .Hash .SHA384
55import Crypto .Hash .SHA512
66
7+ from Crypto .IO import PEM
78from Crypto .PublicKey import RSA
89from Crypto .Signature import PKCS1_v1_5
910from Crypto .Util .asn1 import DerSequence
1011
1112from jose .backends .base import Key
12- from jose .backends .rsa_backend import pem_to_spki
13+ from jose .backends ._asn1 import rsa_public_key_pkcs8_to_pkcs1
1314from jose .utils import base64_to_long , long_to_base64
1415from jose .constants import ALGORITHMS
1516from jose .exceptions import JWKError
@@ -153,11 +154,12 @@ def to_pem(self, pem_format='PKCS8'):
153154
154155 if self .is_public ():
155156 # PyCrypto/dome always export public keys as PKCS8
156- pem = self .prepared_key .exportKey ('PEM' )
157157 if pkcs == 8 :
158- pem = pem_to_spki ( pem , fmt = 'PKCS8 ' )
158+ pem = self . prepared_key . exportKey ( 'PEM ' )
159159 else :
160- pem = pem_to_spki (pem , fmt = 'PKCS1' )
160+ pkcs8_der = self .prepared_key .exportKey ('DER' )
161+ pkcs1_der = rsa_public_key_pkcs8_to_pkcs1 (pkcs8_der )
162+ pem = PEM .encode (pkcs1_der , 'RSA PUBLIC KEY' ).encode ('utf-8' )
161163 return pem
162164 else :
163165 pem = self .prepared_key .exportKey ('PEM' , pkcs = pkcs )
You can’t perform that action at this time.
0 commit comments