§
    tŠtj`
  ã                   ó¸   — d Z ddlmZmZ ddlmZmZ dZ G d„ dej        ¦  «        Z	 G d„ dej        ¦  «        Z
 G d	„ d
ej        ¦  «        Zd„ Zd„ Zd„ Zd„ ZdS )zuASN1 encoding helpers for converting between PKCS1 and PKCS8.

Required by rsa_backend but not cryptography_backend.
é    )ÚdecoderÚencoder)Ú	namedtypeÚunivz1.2.840.113549.1.1.1c                   ó¤   — e Zd ZdZ ej         ej        d ej        ¦   «         ¦  «         ej        d ej	        ¦   «         ¦  «        ¦  «        Z
dS )ÚRsaAlgorithmIdentifierzAASN1 structure for recording RSA PrivateKeyAlgorithm identifiers.ÚrsaEncryptionÚ
parametersN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú
NamedTypesÚ	NamedTyper   ÚObjectIdentifierÚNullÚcomponentType© ó    úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/jose/backends/_asn1.pyr   r      sf   € € € € € ØKÐKà(�IÔ(Øˆ	Ô˜OÐ-B¨TÔ-BÑ-DÔ-DÑEÔEÐGZÀyÔGZÐ[gÐirÐimÔirÑitÔitÑGuÔGuñô €M€M€Mr   r   c            	       óÔ   — e Zd ZdZ ej         ej        d ej        ¦   «         ¦  «         ej        d e	¦   «         ¦  «         ej        d ej
        ¦   «         ¦  «        ¦  «        ZdS )ÚPKCS8PrivateKeyz0ASN1 structure for recording PKCS8 private keys.ÚversionÚprivateKeyAlgorithmÚ
privateKeyN)r   r   r   r   r   r   r   r   ÚIntegerr   ÚOctetStringr   r   r   r   r   r      s}   € € € € € Ø:Ð:à(�IÔ(Øˆ	Ô˜I | t¤|¡~¤~Ñ6Ô6Øˆ	ÔÐ1Ð3IÐ3IÑ3KÔ3KÑLÔLØˆ	Ô˜LÐ*:¨$Ô*:Ñ*<Ô*<Ñ=Ô=ñô €M€M€Mr   r   c                   óš   — e Zd ZdZ ej         ej        d e¦   «         ¦  «         ej        d ej	        ¦   «         ¦  «        ¦  «        Z
dS )ÚPublicKeyInfoz/ASN1 structure for recording PKCS8 public keys.Ú	algorithmÚ	publicKeyN)r   r   r   r   r   r   r   r   r   Ú	BitStringr   r   r   r   r   r      sd   € € € € € Ø9Ð9à(�IÔ(Øˆ	Ô˜KÐ)?Ð)?Ñ)AÔ)AÑBÔBÐDWÀIÔDWÐXcÐesÐeiÔesÑeuÔeuÑDvÔDvñô €M€M€Mr   r   c                 ó¤   — t          j        | t          ¦   «         ¬¦  «        }	 |d         }n# t          $ r t	          d¦  «        ‚w xY w|d         S )ú1Convert a PKCS8-encoded RSA private key to PKCS1.©Úasn1Specr   zInvalid private key encodingr   )r   Údecoder   Ú
IndexErrorÚ
ValueError©Ú	pkcs8_keyÚdecoded_valuesÚdecoded_keys      r   Úrsa_private_key_pkcs8_to_pkcs1r.   &   sd   € å”^ I½Ñ8IÔ8IÐJÑJÔJ€Nð9Ø$ QÔ'ˆˆøÝð 9ð 9ð 9ÝÐ7Ñ8Ô8Ð8ð9øøøð �|Ô$Ð$ó	   ¤- ­Ac                 ó”   — t          ¦   «         }t          |d<   t          ¦   «         }d|d<   ||d<   | |d<   t          j        |¦  «        S )ú1Convert a PKCS1-encoded RSA private key to PKCS8.r	   r   r   r   r   )r   ÚRSA_ENCRYPTION_ASN1_OIDr   r   Úencode©Ú	pkcs1_keyr    r+   s      r   Úrsa_private_key_pkcs1_to_pkcs8r6   2   sQ   € å&Ñ(Ô(€IÝ!8€IˆoÑåÑ!Ô!€IØ€IˆiÑØ'0€IÐ#Ñ$Ø'€IˆlÑåŒ>˜)Ñ$Ô$Ð$r   c                 óÄ   — t          ¦   «         }t          |d<   t          ¦   «         }||d<   t          j                             | ¦  «        |d<   t          j        |¦  «        S )r1   r	   r    r!   )r   r2   r   r   r"   ÚfromOctetStringr   r3   r4   s      r   Úrsa_public_key_pkcs1_to_pkcs8r9   ?   sT   € å&Ñ(Ô(€IÝ!8€IˆoÑå‘”€IØ&€IˆkÑÝ!œ^×;Ò;¸IÑFÔF€IˆkÑåŒ>˜)Ñ$Ô$Ð$r   c                 óÈ   — t          j        | t          ¦   «         ¬¦  «        }	 |d         }n# t          $ r t	          d¦  «        ‚w xY w|d                              ¦   «         S )r$   r%   r   zInvalid public key encoding.r!   )r   r'   r   r(   r)   ÚasOctetsr*   s      r   Úrsa_public_key_pkcs8_to_pkcs1r<   K   sn   € å”^ I½¹¼ÐHÑHÔH€Nð9Ø$ QÔ'ˆˆøÝð 9ð 9ð 9ÝÐ7Ñ8Ô8Ð8ð9øøøð �{Ô#×,Ò,Ñ.Ô.Ð.r/   N)r   Úpyasn1.codec.derr   r   Úpyasn1.typer   r   r2   ÚSequencer   r   r   r.   r6   r9   r<   r   r   r   ú<module>r@      s  ððð ð
 .Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à0Ð ðð ð ð ð ˜Tœ]ñ ô ð ðð ð ð ð �d”mñ ô ð ðð ð ð ð �D”Mñ ô ð ð	%ð 	%ð 	%ð
%ð 
%ð 
%ð	%ð 	%ð 	%ð	/ð 	/ð 	/ð 	/ð 	/r   