
    #	h$                        S SK Jr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJrJrJrJr  S S	KJr  S S
KJr  S SKJrJr   " S S5      r\" 5       rg)    )annotations)openssl)binding)hashes)AsymmetricPadding)ec)utils)MGF1OAEPPSSPKCS1v15)CipherAlgorithm)AES)CBCModec                  
   \ rS rSrSrSr\4r\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                   \R"                  \R$                  \R&                  \R(                  4r\R.                  \R0                  \R2                  \R4                  4rSrSrSS-  rSrS\-  r S)S jr!S*S jr"S+S	 jr#S)S
 jr$S*S jr%S,S jr&S-S jr'    S-S jr(S.S jr)S.S jr*S-S jr+S/S jr,S-S jr-S0S jr.S-S jr/S1S jr0S1S jr1S.S jr2S-S jr3S.S jr4S2S jr5      S3S jr6      S4S jr7S.S jr8S.S jr9S.S  jr:S.S! jr;S.S" jr<S.S# jr=S.S$ jr>S.S% jr?S.S& jr@S'rAg()5Backend   z!
OpenSSL API binding interfaces.
r   i   i     c                    [         R                  " 5       U l        U R                  R                  U l        U R                  R
                  U l        [        R                  " 5       U l	        g N)
r   Binding_bindingffi_ffilib_librust_opensslis_fips_enabled_fips_enabledselfs    ^/var/www/html/env/lib/python3.13/site-packages/cryptography/hazmat/backends/openssl/backend.py__init__Backend.__init__E   sC    )MM%%	MM%%	)99;    c                f    SU R                  5        SU R                   S[        R                   S3$ )Nz<OpenSSLBackend(version: z, FIPS: z
, Legacy: z)>)openssl_version_textr    r   _legacy_provider_loadedr!   s    r#   __repr__Backend.__repr__K   sC    '(A(A(C'D E''( )#;;<B@	
r&   c                .    [         R                  " U5      $ r   )r   _openssl_assert)r"   oks     r#   openssl_assertBackend.openssl_assertR   s    &&r**r&   c                    [         R                  " [         R                  5        [         R                  " 5       (       d   e[         R                  " 5       U l        g r   )r   enable_fips
_providersr   r    r!   s    r#   _enable_fipsBackend._enable_fipsU   s>     	  !8!89++----)99;r&   c                ,    [         R                  " 5       $ )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(   Backend.openssl_version_text\   s     0022r&   c                ,    [         R                  " 5       $ r   )r   openssl_versionr!   s    r#   openssl_version_numberBackend.openssl_version_numbere   s    ++--r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  U5      $ NF)r    
isinstance_fips_hashesr   r   hash_supportedr"   	algorithms     r#   r@   Backend.hash_supportedh   s5    j<M<M&N&N""11)<<r&   c                    U R                   (       a   [        U[        R                  5      (       a  gU R	                  U5      $ r=   r    r>   r   SHA1r@   rA   s     r#   signature_hash_supported Backend.signature_hash_supportedn   s1    
 *Y"D"D""9--r&   c                n    U R                   (       a  g[        [        R                  R                  S5      $ NFderive)r    hasattrr   kdfScryptr!   s    r#   scrypt_supportedBackend.scrypt_supportedw   s'    <++22H==r&   c                n    U R                   (       a  g[        [        R                  R                  S5      $ rJ   )r    rL   r   rM   Argon2idr!   s    r#   argon2_supportedBackend.argon2_supported}   s'    <++44h??r&   c                    U R                   (       a   [        U[        R                  5      (       a  gU R	                  U5      $ )NTrE   rA   s     r#   hmac_supportedBackend.hmac_supported   s/    *Y"D"D""9--r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  X5      $ r=   )r    r>   _fips_ciphersr   cipherscipher_supported)r"   ciphermodes      r#   r[   Backend.cipher_supported   s8     f&8&899##44VBBr&   c                $    U R                  U5      $ r   )rV   rA   s     r#   pbkdf2_hmac_supportedBackend.pbkdf2_hmac_supported   s    ""9--r&   c                ,    [         R                  " 5       $ r   )r   capture_error_stackr!   s    r#   _consume_errorsBackend._consume_errors   s    //11r&   c                   U R                   (       a   [        U[        R                  5      (       a  g[        U[        R                  [        R                  [        R
                  [        R                  [        R                  45      $ r=   )r    r>   r   rF   SHA224SHA256SHA384SHA512rA   s     r#   _oaep_hash_supportedBackend._oaep_hash_supported   sV    *Y"D"D	
 		
r&   c                b   [        U[        5      (       a  g[        U[        5      (       a  [        UR                  [        5      (       aj  U R
                  (       a4  [        UR                  R                  [        R                  5      (       a  gU R                  UR                  R                  5      $ [        U[        5      (       af  [        UR                  [        5      (       aG  U R                  UR                  R                  5      =(       a    U R                  UR                  5      $ g)NTF)r>   r   r   _mgfr
   r    
_algorithmr   rF   r@   r   rk   r"   paddings     r#   rsa_padding_supportedBackend.rsa_padding_supported   s    gx((%%*W\\4*H*H !!j''' ' **7<<+B+BCC&&:gllD+I+I,,'' @++G,>,>?@ r&   c                r    U R                   (       a  [        U[        5      (       a  gU R                  U5      $ r=   )r    r>   r   rr   rp   s     r#   rsa_encryption_supported Backend.rsa_encryption_supported   s+    *Wh"?"?--g66r&   c                \    [         R                  (       + =(       a    U R                  (       + $ r   )r   CRYPTOGRAPHY_IS_BORINGSSLr    r!   s    r#   dsa_supportedBackend.dsa_supported   s$    666 '&&&	
r&   c                P    U R                  5       (       d  gU R                  U5      $ r=   )ry   rG   rA   s     r#   dsa_hash_supportedBackend.dsa_hash_supported   s%    !!##,,Y77r&   c                R    U R                  U[        SUR                  -  5      5      $ )N    )r[   r   
block_sizerA   s     r#   cmac_algorithm_supported Backend.cmac_algorithm_supported   s*    $$s7Y%9%99:
 	
r&   c                    U R                   (       a  [        XR                  5      (       d  g[        R                  R                  U5      $ r=   )r    r>   _fips_ecdh_curvesr   r   curve_supported)r"   curves     r#   elliptic_curve_supported Backend.elliptic_curve_supported   s:    j))'
 '
 ..u55r&   c                    [        U[        R                  5      (       d  gU R                  U5      =(       aF    [        UR                  [
        R                  5      =(       d    U R                  UR                  5      $ r=   )r>   r   ECDSAr   rB   
asym_utils	Prehashedr@   )r"   signature_algorithmr   s      r#   ,elliptic_curve_signature_algorithm_supported4Backend.elliptic_curve_signature_algorithm_supported   sc     -rxx88,,U3 
*44j6J6JK B""#6#@#@A	
r&   c                f    U R                  U5      =(       a    [        U[        R                  5      $ r   )r   r>   r   ECDH)r"   rB   r   s      r#   +elliptic_curve_exchange_algorithm_supported3Backend.elliptic_curve_exchange_algorithm_supported   s,     ,,U3 

rww9
 	
r&   c                ,    [         R                  (       + $ r   r   rx   r!   s    r#   dh_supportedBackend.dh_supported       9999r&   c                4    U R                   R                  S:H  $ )Nr   )r   Cryptography_HAS_EVP_PKEY_DHXr!   s    r#   dh_x942_serialization_supported'Backend.dh_x942_serialization_supported   s    yy66!;;r&   c                (    U R                   (       a  ggNFTr    r!   s    r#   x25519_supportedBackend.x25519_supported       r&   c                    U R                   (       a  g[        R                  (       + =(       a    [        R                  (       + $ r=   r    r   CRYPTOGRAPHY_IS_LIBRESSLrx   r!   s    r#   x448_supportedBackend.x448_supported   0    555 ; :::	
r&   c                (    U R                   (       a  ggr   r   r!   s    r#   ed25519_supportedBackend.ed25519_supported  r   r&   c                    U R                   (       a  g[        R                  (       + =(       a    [        R                  (       + $ r=   r   r!   s    r#   ed448_supportedBackend.ed448_supported  r   r&   c                R    [         R                  =(       a    U R                  (       + $ r   )r   #CRYPTOGRAPHY_OPENSSL_320_OR_GREATERr    r!   s    r#   ecdsa_deterministic_supported%Backend.ecdsa_deterministic_supported  s!    << '&&&	
r&   c                (    U R                   (       a  ggr   r   r!   s    r#   poly1305_supportedBackend.poly1305_supported  r   r&   c                ,    [         R                  (       + $ r   r   r!   s    r#   pkcs7_supportedBackend.pkcs7_supported  r   r&   )r   r   r    r   N)returnNone)r   str)r.   boolr   r   )r   int)rB   zhashes.HashAlgorithmr   r   )r   r   )r\   r   r]   r   r   r   )r   zlist[rust_openssl.OpenSSLError])rq   r   r   r   )r   ec.EllipticCurver   r   )r   z"ec.EllipticCurveSignatureAlgorithmr   r   r   r   )rB   zec.ECDHr   r   r   r   )B__name__
__module____qualname____firstlineno____doc__namer   rY   r   rg   rh   ri   rj   
SHA512_224
SHA512_256SHA3_224SHA3_256SHA3_384SHA3_512SHAKE128SHAKE256r?   r   	SECP224R1	SECP256R1	SECP384R1	SECP521R1r   _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/   r4   r(   r:   r@   rG   rO   rS   rV   r[   r`   rd   rk   rr   ru   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__ r&   r#   r   r      s    D FM 	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	   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      sK   
 # F 8 1 H 8 I {: {:| )r&   