Ë
    Cžsiÿ  ã                   ó´   — d dl mZ d dlmZmZmZ d dlmZ ddlm	Z	 g d¢Z
d„ Zdefd	„Zd
„ Zdee   dej                  fd„Zdedee   dej                  fd„Zy)é    )ÚOptional)ÚkeysÚpemÚx509)Úserializationé   )Ú'translate_pyca_cryptography_key_to_asn1)Úload_cert_from_pemderÚload_certs_from_pemderÚload_certs_from_pemder_dataÚload_private_key_from_pemderÚ!load_private_key_from_pemder_datac              #   ó¦   K  — | D ]:  }t        |d«      5 }|j                  «       }ddd«       t        «      E d{  –—†  Œ< y# 1 sw Y   ŒxY w7 Œ­w)zæ
    A convenience function to load PEM/DER-encoded certificates from files.

    :param cert_files:
        An iterable of file names.
    :return:
        A generator producing :class:`.asn1crypto.x509.Certificate` objects.
    ÚrbN)ÚopenÚreadr   )Ú
cert_filesÚ	cert_fileÚfÚcert_data_bytess       ú_/var/www/python-projects/worksol/worksolenv/lib/python3.12/site-packages/pyhanko/keys/pemder.pyr   r      sV   è ø€ ð  ò @ˆ	Ü)˜TÓ"ð 	' aØŸf™f›hˆO÷	'ä.¨Ó?×?Ñ?ñ@÷	'ð 	'úà?ús%   ‚A”A¥A»A¼AÁA	ÁAr   c              #   ó,  K  — t        j                  | «      rZt        j                  | d¬«      }|D ]=  \  }}}||j                  «       dk(  sŒt        j
                  j                  |«      –— Œ? yt        j
                  j                  | «      –— y­w)a  
    A convenience function to load PEM/DER-encoded certificates from
    binary data.

    :param cert_data_bytes:
        ``bytes`` object from which to extract certificates.
    :return:
        A generator producing :class:`.asn1crypto.x509.Certificate` objects.
    T)ÚmultipleNÚcertificate)r   ÚdetectÚunarmorÚlowerr   ÚCertificateÚload)r   ÚpemsÚ	type_nameÚ_Úders        r   r   r       s~   è ø€ ô ‡zz/Ô"Ü{‰{˜?°TÔ:ˆØ!%ò 	1ÑˆIq˜#ØÐ  I§O¡OÓ$5¸Ó$FÜ×&Ñ&×+Ñ+¨CÓ0Ó0ñ	1ô
 ×Ñ×#Ñ# OÓ4Ó4ùs   ‚ABÁABc                 óp   — t        t        | g«      «      }t        |«      dk7  rt        d| › d«      ‚|d   S )zÐ
    A convenience function to load a single PEM/DER-encoded certificate
    from a file.

    :param cert_file:
        A file name.
    :return:
        An :class:`.asn1crypto.x509.Certificate` object.
    r   zNumber of certs in z should be exactly 1r   )Úlistr   ÚlenÚ
ValueError)r   Úcertss     r   r
   r
   7   s@   € ô Ô'¨¨Ó4Ó5€EÜ
ˆ5ƒzQ‚ÜÐ.¨y¨kÐ9MÐNÓOÐOØ‰8€Oó    Ú
passphraseÚreturnc                 ó~   — t        | d«      5 }|j                  «       }ddd«       t        |¬«      S # 1 sw Y   ŒxY w)a  
    A convenience function to load PEM/DER-encoded keys from files.

    :param key_file:
        File to read the key from.
    :param passphrase:
        Key passphrase.
    :return:
        A private key encoded as an unencrypted PKCS#8 PrivateKeyInfo object.
    r   N)r*   )r   r   r   )Úkey_filer*   r   Ú	key_bytess       r   r   r   G   s=   € ô 
ˆh˜Ó	ð  Ø—F‘F“Hˆ	÷ä,¨YÀ:ÔNÐN÷ð ús   3³<r.   c                 ó’   — t        j                  | «      rt        j                  nt        j                  }t         || |¬«      «      S )a  
    A convenience function to load PEM/DER-encoded keys from binary data.

    :param key_bytes:
        ``bytes`` object to read the key from.
    :param passphrase:
        Key passphrase.
    :return:
        A private key encoded as an unencrypted PKCS#8 PrivateKeyInfo object.
    )Úpassword)r   r   r   Úload_pem_private_keyÚload_der_private_keyr	   )r.   r*   Úload_funs      r   r   r   Y   sB   € ô :‰:iÔ ô 	×*Ò*ä×/Ñ/ð ô
 3Ù ZÔ0óð r)   N)Útypingr   Ú
asn1cryptor   r   r   Úcryptography.hazmat.primitivesr   Úinternalr	   Ú__all__r   Úbytesr   r
   ÚPrivateKeyInfor   r   © r)   r   ú<module>r<      s{   ðÝ ç &Ñ &Ý 8å =ò€ò@ð5°ó 5ò.ð OØ" 5™/ðOà	×ÑóOð$ØðØ"*¨5¡/ðà	×Ñôr)   