Ë
    ±éä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y)é    )Ú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j0                  ej2                  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*d-d„Z+d+d„Z,d.d„Z-d+d„Z.d/d„Z/d/d„Z0d,d„Z1d+d„Z2d,d„Z3d0d„Z4	 	 	 	 	 	 d1d„Z5	 	 	 	 	 	 d2d„Z6d,d„Z7d,d„Z8d,d„Z9d,d „Z:d,d!„Z;d,d"„Z<d,d#„Z=d,d$„Z>d,d%„Z?y&)3ÚBackendz)
    OpenSSL API binding interfaces.
    r   i   i  é   c                óÔ   — t        j                  «       | _        | j                  j                  | _        | j                  j
                  | _        t        j                  «       | _	        y ©N)
r   ÚBindingÚ_bindingÚffiÚ_ffiÚlibÚ_libÚrust_opensslÚis_fips_enabledÚ_fips_enabled©Úselfs    új/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/backend.pyÚ__init__zBackend.__init__E   sC   € ÜŸ™Ó)ˆŒØ—M‘M×%Ñ%ˆŒ	Ø—M‘M×%Ñ%ˆŒ	Ü)×9Ñ9Ó;ˆÕó    c                óf   — d| j                  «       › 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   sC   € à'¨×(AÑ(AÓ(CÐ'Dð EØ×'Ñ'Ð(ð )Ü#×;Ñ;Ð<¸Bð@ð	
r$   c                ó,   — t        j                  |«      S r   )r   Ú_openssl_assert)r!   Úoks     r"   Úopenssl_assertzBackend.openssl_assertR   s   € Ü×&Ñ& rÓ*Ð*r$   c                ó¨   — t        j                  t         j                  «       t        j                  «       sJ ‚t        j                  «       | _        y r   )r   Úenable_fipsÚ
_providersr   r   r    s    r"   Ú_enable_fipszBackend._enable_fipsU   s;   € ô 	× Ñ ¤×!8Ñ!8Ô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Ñ0Ó2Ð2r$   c                ó*   — t        j                  «       S r   )r   Úopenssl_versionr    s    r"   Úopenssl_version_numberzBackend.openssl_version_numbere   s   € Ü×+Ñ+Ó-Ð-r$   c                ó†   — | j                   rt        || j                  «      syt        j                  j                  |«      S ©NF)r   Ú
isinstanceÚ_fips_hashesr   r   Úhash_supported©r!   Ú	algorithms     r"   r9   zBackend.hash_supportedh   s4   € Ø×Ò¤j°¸D×<MÑ<MÔ&NØä×"Ñ"×1Ñ1°)Ó<Ð<r$   c                ór   — | j                   rt        |t        j                  «      ry| j	                  |«      S r6   ©r   r7   r   ÚSHA1r9   r:   s     r"   Úsignature_hash_supportedz Backend.signature_hash_supportedn   s.   € ð
 ×Ò¤*¨Y¼¿¹Ô"DØØ×"Ñ" 9Ó-Ð-r$   c                ód   — | j                   ryt        t        j                  j                  d«      S ©NFÚderive)r   Úhasattrr   ÚkdfÚScryptr    s    r"   Úscrypt_supportedzBackend.scrypt_supportedw   s'   € Ø×ÒØäœ<×+Ñ+×2Ñ2°HÓ=Ð=r$   c                ód   — | j                   ryt        t        j                  j                  d«      S rA   )r   rC   r   rD   ÚArgon2idr    s    r"   Úargon2_supportedzBackend.argon2_supported}   s'   € Ø×ÒØäœ<×+Ñ+×4Ñ4°hÓ?Ð?r$   c                ór   — | j                   rt        |t        j                  «      ry| j	                  |«      S )NTr=   r:   s     r"   Úhmac_supportedzBackend.hmac_supportedƒ   s,   € à×Ò¤*¨Y¼¿¹Ô"DØà×"Ñ" 9Ó-Ð-r$   c                óˆ   — | j                   rt        || j                  «      syt        j                  j                  ||«      S r6   )r   r7   Ú_fips_ciphersr   ÚciphersÚcipher_supported)r!   ÚcipherÚmodes      r"   rO   zBackend.cipher_supportedŠ   s9   € Ø×Òô ˜f d×&8Ñ&8Ô9Øä×#Ñ#×4Ñ4°V¸TÓBÐBr$   c                ó$   — | j                  |«      S r   )rK   r:   s     r"   Úpbkdf2_hmac_supportedzBackend.pbkdf2_hmac_supported“   s   € Ø×"Ñ" 9Ó-Ð-r$   c                ó*   — t        j                  «       S r   )r   Úcapture_error_stackr    s    r"   Ú_consume_errorszBackend._consume_errors–   s   € Ü×/Ñ/Ó1Ð1r$   c                óþ   — | j                   rt        |t        j                  «      ryt        |t        j                  t        j                  t        j
                  t        j                  t        j                  f«      S r6   )r   r7   r   r>   ÚSHA224ÚSHA256ÚSHA384ÚSHA512r:   s     r"   Ú_oaep_hash_supportedzBackend._oaep_hash_supported™   sS   € Ø×Ò¤*¨Y¼¿¹Ô"DØäØä—‘Ü—‘Ü—‘Ü—‘Ü—‘ðó	
ð 		
r$   c                ó  — t        |t        «      ryt        |t        «      rzt        |j                  t        «      r`| j
                  r/t        |j                  j                  t        j                  «      ry| j                  |j                  j                  «      S t        |t        «      r\t        |j                  t        «      rB| j                  |j                  j                  «      xr | j                  |j                  «      S y)NTF)r7   r   r   Ú_mgfr
   r   Ú
_algorithmr   r>   r9   r   r\   ©r!   Úpaddings     r"   Úrsa_padding_supportedzBackend.rsa_padding_supported¨   sÂ   € Ü�gœxÔ(ØÜ˜¤Ô%¬*°W·\±\Ä4Ô*Hð ×!Ò!¤jØ—‘×'Ñ'¬¯©ô'ð à×*Ñ*¨7¯<©<×+BÑ+BÓCÐCÜ˜¤Ô&¬:°g·l±lÄDÔ+IØ×,Ñ,Ø—‘×'Ñ'óò @à×+Ñ+¨G×,>Ñ,>Ó?ð@ð r$   c                ó^   — | j                   rt        |t        «      ry| j                  |«      S r6   )r   r7   r   rb   r`   s     r"   Úrsa_encryption_supportedz Backend.rsa_encryption_supported»   s(   € Ø×Ò¤*¨W´hÔ"?Øà×-Ñ-¨gÓ6Ð6r$   c                óB   — t         j                   xr | j                   S r   )r   ÚCRYPTOGRAPHY_IS_BORINGSSLr   r    s    r"   Údsa_supportedzBackend.dsa_supportedÁ   s$   € ä×6Ñ6Ð6ò 'Ø×&Ñ&Ð&ð	
r$   c                óF   — | j                  «       sy| j                  |«      S r6   )rg   r?   r:   s     r"   Údsa_hash_supportedzBackend.dsa_hash_supportedÇ   s"   € Ø×!Ñ!Ô#ØØ×,Ñ,¨YÓ7Ð7r$   c                óR   — | j                  |t        d|j                  z  «      «      S )Nó    )rO   r   Ú
block_sizer:   s     r"   Úcmac_algorithm_supportedz Backend.cmac_algorithm_supportedÌ   s*   € Ø×$Ñ$Ø”s˜7 Y×%9Ñ%9Ñ9Ó:ó
ð 	
r$   c                ó†   — | j                   rt        || j                  «      syt        j                  j                  |«      S r6   )r   r7   Ú_fips_ecdh_curvesr   r   Úcurve_supported)r!   Úcurves     r"   Úelliptic_curve_supportedz Backend.elliptic_curve_supportedÑ   s7   € Ø×Ò¤jØ�4×)Ñ)ô'
ð ä�‰×.Ñ.¨uÓ5Ð5r$   c                óà   — t        |t        j                  «      sy| j                  |«      xrA t        |j                  t
        j                  «      xs | j                  |j                  «      S r6   )r7   r   ÚECDSArr   r;   Ú
asym_utilsÚ	Prehashedr9   )r!   Úsignature_algorithmrq   s      r"   Ú,elliptic_curve_signature_algorithm_supportedz4Backend.elliptic_curve_signature_algorithm_supportedÙ   s`   € ô Ð-¬r¯x©xÔ8Øà×,Ñ,¨UÓ3ò 
ÜÐ*×4Ñ4´j×6JÑ6JÓKò BØ×"Ñ"Ð#6×#@Ñ#@ÓAð	
r$   c                ó\   — | j                  |«      xr t        |t        j                  «      S r   )rr   r7   r   ÚECDH)r!   r;   rq   s      r"   Ú+elliptic_curve_exchange_algorithm_supportedz3Backend.elliptic_curve_exchange_algorithm_supportedç   s,   € ð ×,Ñ,¨UÓ3ò 
¼
Ø”r—w‘wó9
ð 	
r$   c                ó$   — t         j                   S r   ©r   rf   r    s    r"   Údh_supportedzBackend.dh_supportedî   ó   € Ü×9Ñ9Ð9Ð9r$   c                ó4   — | 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‰y×6Ñ6¸!Ñ;Ð;r$   c                ó   — | j                   ryy©NFT©r   r    s    r"   Úx25519_supportedzBackend.x25519_supportedô   ó   € Ø×ÒØØr$   c                ód   — | j                   ryt        j                   xr t        j                   S r6   ©r   r   ÚCRYPTOGRAPHY_IS_LIBRESSLrf   r    s    r"   Úx448_supportedzBackend.x448_supportedù   ó0   € Ø×ÒØä×5Ñ5Ð5ò ;Ü ×:Ñ:Ð:ð	
r$   c                ó   — | j                   ryyr„   r…   r    s    r"   Úed25519_supportedzBackend.ed25519_supported  r‡   r$   c                ód   — | j                   ryt        j                   xr t        j                   S r6   r‰   r    s    r"   Úed448_supportedzBackend.ed448_supported  rŒ   r$   c                ó@   — t         j                  xr | j                   S r   )r   Ú#CRYPTOGRAPHY_OPENSSL_320_OR_GREATERr   r    s    r"   Úecdsa_deterministic_supportedz%Backend.ecdsa_deterministic_supported  s!   € ä×<Ñ<ò 'Ø×&Ñ&Ð&ð	
r$   c                ó   — | j                   ryy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)ÚreturnÚNone)r˜   Ústr)r+   Úboolr˜   r™   )r˜   Úint)r;   zhashes.HashAlgorithmr˜   r›   )r˜   r›   )rP   r   rQ   r   r˜   r›   )r˜   zlist[rust_openssl.OpenSSLError])ra   r   r˜   r›   )rq   úec.EllipticCurver˜   r›   )rw   z"ec.EllipticCurveSignatureAlgorithmrq   r�   r˜   r›   )r;   zec.ECDHrq   r�   r˜   r›   )@Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   rM   r   rX   rY   rZ   r[   Ú
SHA512_224Ú
SHA512_256ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSHAKE128ÚSHAKE256r8   r   Ú	SECP224R1Ú	SECP256R1Ú	SECP384R1Ú	SECP521R1ro   Ú_fips_rsa_min_key_sizeÚ_fips_rsa_min_public_exponentÚ_fips_dsa_min_modulusÚ_fips_dh_min_key_sizeÚ_fips_dh_min_modulusr#   r(   r,   r0   r&   r4   r9   r?   rF   rI   rK   rO   rS   rV   r\   rb   rd   rg   ri   rm   rr   rx   r{   r~   r‚   r†   r‹   rŽ   r�   r“   r•   r—   © r$   r"   r   r      s®  „ ñð €Dð �F€Mð 	�‰Ø�‰Ø�‰Ø�‰Ø×ÑØ×ÑØ�‰Ø�‰Ø�‰Ø�‰Ø�‰Ø�‰ð€Lð 	�‰Ø
�‰Ø
�‰Ø
�‰ð	Ðð "ÐØ$)Ð!Ø ™IÐØ ÐØÐ 5Ñ5Ðó<ó
ó+ó<ó3ó.ó=ð.Ø-ð.à	ó.ó>ó@ó.óCó.ó2ó
óó&7ó
ó8ó

ó
6ð
à?ð
ð  ð
ð 
ó	
ð
Ø ð
Ø)9ð
à	ó
ó:ó<óó

óó

ó
óô
: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	   ru   Ú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À      sK   ðõ
 #å FÝ 8Ý 1Ý HÝ 8Ý I÷ó õõ÷÷{:ñ {:ñ| ‹)�r$   