§
    cÒ³gÅ$  ã                  óÈ   — d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZmZ  G d„ d¦  «        Z e¦   «         ZdS )é    )Úannotations)Úopenssl)Úbinding)Úhashes)ÚAsymmetricPadding)Úec)Úutils)ÚMGF1ÚOAEPÚPSSÚPKCS1v15)ÚCipherAlgorithm)ÚAES)ÚCBCÚModec                  ó  — e Zd ZdZdZefZej        ej	        ej
        ej        ej        ej        ej        ej        ej        ej        ej        ej        fZej        ej        ej        ej        fZdZdZddz  ZdZdez  Zd;d„Z d<d
„Z!d=d„Z"d;d„Z#d<d„Z$d>d„Z%d?d„Z&d?d„Z'd@d„Z(d@d„Z)d?d„Z*dAd„Z+d?d„Z,dBd „Z-d?d!„Z.dCd$„Z/dCd%„Z0d@d&„Z1d?d'„Z2d@d(„Z3dDd+„Z4dEd.„Z5dFd0„Z6d@d1„Z7d@d2„Z8d@d3„Z9d@d4„Z:d@d5„Z;d@d6„Z<d@d7„Z=d@d8„Z>d@d9„Z?d:S )GÚBackendz)
    OpenSSL API binding interfaces.
    r   i   i  é   ÚreturnÚNonec                óª   — t          j        ¦   «         | _        | j        j        | _        | j        j        | _        t          j        ¦   «         | _	        d S ©N)
r   ÚBindingÚ_bindingÚffiÚ_ffiÚlibÚ_libÚrust_opensslÚis_fips_enabledÚ_fips_enabled©Úselfs    új/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/backend.pyÚ__init__zBackend.__init__E   s@   € ÝœÑ)Ô)ˆŒØ”MÔ%ˆŒ	Ø”MÔ%ˆŒ	Ý)Ô9Ñ;Ô;ˆÔÐÐó    Ústrc                ó\   — d|                       ¦   «         › d| j        › dt          j        › d�S )Nz<OpenSSLBackend(version: z, FIPS: z
, Legacy: z)>)Úopenssl_version_textr!   r   Ú_legacy_provider_loadedr"   s    r$   Ú__repr__zBackend.__repr__K   sQ   € ð@¨×(AÒ(AÑ(CÔ(Cð @ð @ØÔ'ð@ð @å#Ô;ð@ð @ð @ð	
r&   ÚokÚboolc                ó*   — t          j        |¦  «        S r   )r   Ú_openssl_assert)r#   r,   s     r$   Úopenssl_assertzBackend.openssl_assertR   s   € ÝÔ& rÑ*Ô*Ð*r&   c                óœ   — t          j        t           j        ¦  «         t          j        ¦   «         sJ ‚t          j        ¦   «         | _        d S r   )r   Úenable_fipsÚ
_providersr    r!   r"   s    r$   Ú_enable_fipszBackend._enable_fipsU   sD   € õ 	Ô ¥Ô!8Ñ9Ô9Ð9ÝÔ+Ñ-Ô-Ð-Ð-Ð-Ý)Ô9Ñ;Ô;ˆÔÐÐr&   c                ó(   — t          j        ¦   «         S )z¾
        Friendly string name of the loaded OpenSSL library. This is not
        necessarily the same version as it was compiled against.

        Example: OpenSSL 3.2.1 30 Jan 2024
        )r   r)   r"   s    r$   r)   zBackend.openssl_version_text\   s   € õ Ô0Ñ2Ô2Ð2r&   Úintc                ó(   — t          j        ¦   «         S r   )r   Úopenssl_versionr"   s    r$   Úopenssl_version_numberzBackend.openssl_version_numbere   s   € ÝÔ+Ñ-Ô-Ð-r&   Ú	algorithmúhashes.HashAlgorithmc                ó|   — | j         rt          || j        ¦  «        sdS t          j                             |¦  «        S ©NF)r!   Ú
isinstanceÚ_fips_hashesr   r   Úhash_supported©r#   r:   s     r$   r@   zBackend.hash_supportedh   s=   € ØÔð 	¥j°¸DÔ<MÑ&NÔ&Nð 	Ø�5åÔ"×1Ò1°)Ñ<Ô<Ð<r&   c                ór   — | j         rt          |t          j        ¦  «        rdS |                      |¦  «        S r=   ©r!   r>   r   ÚSHA1r@   rA   s     r$   Úsignature_hash_supportedz Backend.signature_hash_supportedn   s;   € ð
 Ôð 	¥*¨Y½¼Ñ"DÔ"Dð 	Ø�5Ø×"Ò" 9Ñ-Ô-Ð-r&   c                óR   — | j         rdS t          t          j        j        d¦  «        S ©NFÚderive)r!   Úhasattrr   ÚkdfÚScryptr"   s    r$   Úscrypt_supportedzBackend.scrypt_supportedw   s(   € ØÔð 	>Ø�5å�<Ô+Ô2°HÑ=Ô=Ð=r&   c                óR   — | j         rdS t          t          j        j        d¦  «        S rG   )r!   rI   r   rJ   ÚArgon2idr"   s    r$   Úargon2_supportedzBackend.argon2_supported}   s)   € ØÔð 	@Ø�5å�<Ô+Ô4°hÑ?Ô?Ð?r&   c                ór   — | j         rt          |t          j        ¦  «        rdS |                      |¦  «        S )NTrC   rA   s     r$   Úhmac_supportedzBackend.hmac_supportedƒ   s9   € àÔð 	¥*¨Y½¼Ñ"DÔ"Dð 	Ø�4à×"Ò" 9Ñ-Ô-Ð-r&   Úcipherr   Úmoder   c                ó~   — | j         rt          || j        ¦  «        sdS t          j                             ||¦  «        S r=   )r!   r>   Ú_fips_ciphersr   ÚciphersÚcipher_supported)r#   rR   rS   s      r$   rW   zBackend.cipher_supportedŠ   sB   € ØÔð 	õ ˜f dÔ&8Ñ9Ô9ð Ø�uåÔ#×4Ò4°V¸TÑBÔBÐBr&   c                ó,   — |                       |¦  «        S r   )rQ   rA   s     r$   Úpbkdf2_hmac_supportedzBackend.pbkdf2_hmac_supported“   s   € Ø×"Ò" 9Ñ-Ô-Ð-r&   úlist[rust_openssl.OpenSSLError]c                ó(   — t          j        ¦   «         S r   )r   Úcapture_error_stackr"   s    r$   Ú_consume_errorszBackend._consume_errors–   s   € ÝÔ/Ñ1Ô1Ð1r&   c                óÖ   — | j         rt          |t          j        ¦  «        rdS t          |t          j        t          j        t          j        t          j        t          j        f¦  «        S r=   )r!   r>   r   rD   ÚSHA224ÚSHA256ÚSHA384ÚSHA512rA   s     r$   Ú_oaep_hash_supportedzBackend._oaep_hash_supported™   sX   € ØÔð 	¥*¨Y½¼Ñ"DÔ"Dð 	Ø�5åØå”Ý”Ý”Ý”Ý”ðñ	
ô 	
ð 		
r&   Úpaddingr   c                óú  — t          |t          ¦  «        rdS t          |t          ¦  «        rft          |j        t          ¦  «        rL| j        r&t          |j        j        t          j        ¦  «        rdS |  	                    |j        j        ¦  «        S t          |t          ¦  «        rSt          |j        t          ¦  «        r9|                      |j        j        ¦  «        o|                      |j        ¦  «        S dS )NTF)r>   r   r   Ú_mgfr
   r!   Ú
_algorithmr   rD   r@   r   rc   ©r#   rd   s     r$   Úrsa_padding_supportedzBackend.rsa_padding_supported¨   sñ   € Ý�g�xÑ(Ô(ð 	Ø�4Ý˜¥Ñ%Ô%ð 	­*°W´\Å4Ñ*HÔ*Hð 	ð Ô!ð D¥jØ”Ô'­¬ñ'ô 'ð Dð �tà×*Ò*¨7¬<Ô+BÑCÔCÐCÝ˜¥Ñ&Ô&ð 	­:°g´lÅDÑ+IÔ+Ið 	Ø×,Ò,Ø”Ô'ñô ð @à×+Ò+¨GÔ,>Ñ?Ô?ð@ð �5r&   c                óh   — | j         rt          |t          ¦  «        rdS |                      |¦  «        S r=   )r!   r>   r   ri   rh   s     r$   Úrsa_encryption_supportedz Backend.rsa_encryption_supported»   s7   € ØÔð 	7¥*¨WµhÑ"?Ô"?ð 	7Ø�5à×-Ò-¨gÑ6Ô6Ð6r&   c                ó,   — t           j         o| j         S r   )r   ÚCRYPTOGRAPHY_IS_BORINGSSLr!   r"   s    r$   Údsa_supportedzBackend.dsa_supportedÁ   s   € åÔ6Ð6ð 'ØÔ&Ð&ð	
r&   c                óX   — |                       ¦   «         sdS |                      |¦  «        S r=   )rn   rE   rA   s     r$   Údsa_hash_supportedzBackend.dsa_hash_supportedÇ   s/   € Ø×!Ò!Ñ#Ô#ð 	Ø�5Ø×,Ò,¨YÑ7Ô7Ð7r&   c                óX   — |                       |t          d|j        z  ¦  «        ¦  «        S )Nó    )rW   r   Ú
block_sizerA   s     r$   Úcmac_algorithm_supportedz Backend.cmac_algorithm_supportedÌ   s/   € Ø×$Ò$Ø•s˜7 YÔ%9Ñ9Ñ:Ô:ñ
ô 
ð 	
r&   Úcurveúec.EllipticCurvec                ó|   — | j         rt          || j        ¦  «        sdS t          j                             |¦  «        S r=   )r!   r>   Ú_fips_ecdh_curvesr   r   Úcurve_supported)r#   ru   s     r$   Úelliptic_curve_supportedz Backend.elliptic_curve_supportedÑ   sC   € ØÔð 	¥jØ�4Ô)ñ'
ô '
ð 	ð �5åŒ×.Ò.¨uÑ5Ô5Ð5r&   Úsignature_algorithmú"ec.EllipticCurveSignatureAlgorithmc                óÖ   — t          |t          j        ¦  «        sdS |                      |¦  «        o8t          |j        t
          j        ¦  «        p|                      |j        ¦  «        S r=   )r>   r   ÚECDSArz   r:   Ú
asym_utilsÚ	Prehashedr@   )r#   r{   ru   s      r$   Ú,elliptic_curve_signature_algorithm_supportedz4Backend.elliptic_curve_signature_algorithm_supportedÙ   sh   € õ Ð-­r¬xÑ8Ô8ð 	Ø�5à×,Ò,¨UÑ3Ô3ð 
ÝÐ*Ô4µjÔ6JÑKÔKð BØ×"Ò"Ð#6Ô#@ÑAÔAð	
r&   úec.ECDHc                ó`   — |                       |¦  «        ot          |t          j        ¦  «        S r   )rz   r>   r   ÚECDH)r#   r:   ru   s      r$   Ú+elliptic_curve_exchange_algorithm_supportedz3Backend.elliptic_curve_exchange_algorithm_supportedç   s2   € ð ×,Ò,¨UÑ3Ô3ð 
½
Ø•r”wñ9
ô 9
ð 	
r&   c                ó   — t           j         S r   ©r   rm   r"   s    r$   Údh_supportedzBackend.dh_supportedî   ó   € ÝÔ9Ð9Ð9r&   c                ó"   — | j         j        dk    S )Nr   )r   ÚCryptography_HAS_EVP_PKEY_DHXr"   s    r$   Údh_x942_serialization_supportedz'Backend.dh_x942_serialization_supportedñ   s   € ØŒyÔ6¸!Ò;Ð;r&   c                ó   — | j         rdS dS ©NFT©r!   r"   s    r$   Úx25519_supportedzBackend.x25519_supportedô   ó   € ØÔð 	Ø�5Øˆtr&   c                óH   — | j         rdS t          j         ot          j         S r=   ©r!   r   ÚCRYPTOGRAPHY_IS_LIBRESSLrm   r"   s    r$   Úx448_supportedzBackend.x448_supportedù   ó.   € ØÔð 	Ø�5åÔ5Ð5ð ;Ý Ô:Ð:ð	
r&   c                ó   — | j         rdS dS rŽ   r�   r"   s    r$   Úed25519_supportedzBackend.ed25519_supported  r‘   r&   c                óH   — | j         rdS t          j         ot          j         S r=   r“   r"   s    r$   Úed448_supportedzBackend.ed448_supported  r–   r&   c                ó*   — t           j        o| j         S r   )r   Ú#CRYPTOGRAPHY_OPENSSL_320_OR_GREATERr!   r"   s    r$   Úecdsa_deterministic_supportedz%Backend.ecdsa_deterministic_supported  s   € åÔ<ð 'ØÔ&Ð&ð	
r&   c                ó   — | j         rdS dS rŽ   r�   r"   s    r$   Úpoly1305_supportedzBackend.poly1305_supported  r‘   r&   c                ó   — t           j         S r   r‡   r"   s    r$   Úpkcs7_supportedzBackend.pkcs7_supported  r‰   r&   N)r   r   )r   r'   )r,   r-   r   r   )r   r6   )r:   r;   r   r-   )r   r-   )rR   r   rS   r   r   r-   )r   rZ   )rd   r   r   r-   )ru   rv   r   r-   )r{   r|   ru   rv   r   r-   )r:   r‚   ru   rv   r   r-   )@Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   rU   r   r_   r`   ra   rb   Ú
SHA512_224Ú
SHA512_256ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSHAKE128ÚSHAKE256r?   r   Ú	SECP224R1Ú	SECP256R1Ú	SECP384R1Ú	SECP521R1rx   Ú_fips_rsa_min_key_sizeÚ_fips_rsa_min_public_exponentÚ_fips_dsa_min_modulusÚ_fips_dh_min_key_sizeÚ_fips_dh_min_modulusr%   r+   r0   r4   r)   r9   r@   rE   rL   rO   rQ   rW   rY   r]   rc   ri   rk   rn   rp   rt   rz   r�   r…   rˆ   rŒ   r�   r•   r˜   rš   r�   rŸ   r¡   © r&   r$   r   r      sE  € € € € € ðð ð €Dð �F€Mð 	ŒØŒØŒØŒØÔØÔØŒØŒØŒØŒØŒØŒð€Lð 	ŒØ
ŒØ
ŒØ
Œð	Ðð "ÐØ$)Ð!Ø ™IÐØ ÐØÐ 5Ñ5Ðð<ð <ð <ð <ð
ð 
ð 
ð 
ð+ð +ð +ð +ð<ð <ð <ð <ð3ð 3ð 3ð 3ð.ð .ð .ð .ð=ð =ð =ð =ð.ð .ð .ð .ð>ð >ð >ð >ð@ð @ð @ð @ð.ð .ð .ð .ðCð Cð Cð Cð.ð .ð .ð .ð2ð 2ð 2ð 2ð
ð 
ð 
ð 
ðð ð ð ð&7ð 7ð 7ð 7ð
ð 
ð 
ð 
ð8ð 8ð 8ð 8ð

ð 
ð 
ð 
ð
6ð 6ð 6ð 6ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð:ð :ð :ð :ð<ð <ð <ð <ðð ð ð ð

ð 
ð 
ð 
ðð ð ð ð

ð 
ð 
ð 
ð
ð 
ð 
ð 
ðð ð ð ð
:ð :ð :ð :ð :ð :r&   r   N)Ú
__future__r   Ú"cryptography.hazmat.bindings._rustr   r   Ú$cryptography.hazmat.bindings.opensslr   Úcryptography.hazmat.primitivesr   Ú*cryptography.hazmat.primitives._asymmetricr   Ú)cryptography.hazmat.primitives.asymmetricr   r	   r   Ú1cryptography.hazmat.primitives.asymmetric.paddingr
   r   r   r   Ú&cryptography.hazmat.primitives.ciphersr   Ú1cryptography.hazmat.primitives.ciphers.algorithmsr   Ú,cryptography.hazmat.primitives.ciphers.modesr   r   r   Úbackendr¸   r&   r$   ú<module>rÄ      sg  ðð
 #Ð "Ð "Ð "Ð "Ð "à FÐ FÐ FÐ FÐ FÐ FØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø HÐ HÐ HÐ HÐ HÐ HØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø IÐ IÐ IÐ IÐ IÐ Iðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð{:ð {:ð {:ð {:ð {:ñ {:ô {:ð {:ð| ˆ'‰)Œ)€€€r&   