
    >OOf                    z   d dl mZ d dlZd dlmZ ej
                  rd dlmZ d dlm	Z	m
Z
 ej                  e	e
f   ZddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd	Z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y)    )annotationsN)
InvalidTag)BackendAESCCMAESGCMc                |    t        |      }| j                  j                  |      | j                  j                  k7  S N)_evp_cipher_cipher_name_libEVP_get_cipherbyname_ffiNULL)backendciphercipher_names      j/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl/aead.py_aead_cipher_supportedr      s0    )&1K<<,,[9W\\=N=NNN    c                "    t        | |||||      S r
   )_evp_cipher_encryptr   r   noncedataassociated_data
tag_lengths         r   _encryptr           oz r   c                "    t        | |||||      S r
   )_evp_cipher_decryptr   s         r   _decryptr!   (   r   r      c                    ddl m}m} t        | |      r+dt	        | j
                        dz   dj                  d      S t        | |      sJ dt	        | j
                        dz   dj                  d      S )Nr   r   zaes-   z-ccmasciiz-gcm)+cryptography.hazmat.primitives.ciphers.aeadr   r   
isinstancelen_keyencode)r   r   r   s      r   r   r   9   su    
 &&!c&++&*+4077@@&&)))c&++&*+4077@@r   c                    |j                   j                  |       }|j                  ||j                  j                  k7         |S r
   )r   r   openssl_assertr   r   )r   r   
evp_ciphers      r   _evp_cipherr.   F   s9    22;?J:):)::;r   c                   t        ||       }| j                  j                         }| j                  j	                  || j                  j
                        }| j                  j                  ||| j                  j                  | j                  j                  | j                  j                  t        |t        k(              }	| j                  |	dk7         | j                  j                  || j                  j                  t        |      | j                  j                        }	| j                  |	dk7         |t        k(  r|J t        | ||       nk|j!                  d      rZ| j                  j                  || j                  j"                  || j                  j                        }	| j                  |	dk7         | j                  j%                  |      }
| j                  j%                  |      }| j                  j                  || j                  j                  | j                  j                  ||
t        |t        k(              }	| j                  |	dk7         |S )Nr   s   -ccm)r.   r   EVP_CIPHER_CTX_newr   gcEVP_CIPHER_CTX_freeEVP_CipherInit_exr   int_ENCRYPTr,   EVP_CIPHER_CTX_ctrlEVP_CTRL_AEAD_SET_IVLENr(   _DECRYPT_evp_cipher_set_tagendswithEVP_CTRL_AEAD_SET_TAGfrom_buffer)r   r   keyr   tagtag_len	operationr-   ctxres	nonce_ptrkey_ptrs               r   _evp_cipher_aead_setuprE   L   s    ['2J
,,
)
)
+C
,,//#w||??
@C
,,
(
(I!"C 3!8$
,,
*
*,,E
	C 3!8$HGS#.			g	&ll..LL..LL	
 	sax(((/Ill&&s+G
,,
(
(I!"C 3!8$Jr   c                    | j                   j                  |      }| j                  j                  || j                  j                  t        |      |      }| j                  |dk7         y )Nr   )r   r<   r   r6   r;   r(   r,   )r   rA   r>   tag_ptrrB   s        r   r9   r9      sU    ll&&s+G
,,
*
*W\\//S7C 3!8$r   c                    | j                   j                  d      }| j                  j                  || j                   j                  || j                   j                  |      }| j                  |dk7         y Nint *r   )r   newr   EVP_CipherUpdater   r,   )r   rA   data_lenintptrrB   s        r   _evp_cipher_set_lengthrO      s]    \\g&F
,,
'
'W\\(9(98C 3!8$r   c           	        | j                   j                  d      }| j                   j                  |      }| j                  j	                  || j                   j
                  ||t        |            }| j                  |dk7         y rI   )r   rK   r<   r   rL   r   r(   r,   )r   rA   r   outlen
a_data_ptrrB   s         r   _evp_cipher_process_aadrS      sn     \\g&F))/:J
,,
'
'W\\
C4HC 3!8$r   c           	     t   | j                   j                  d      }| j                   j                  dt        |            }| j                   j                  |      }| j                  j                  ||||t        |            }| j                  |dk7         | j                   j                  ||d         d d  S )NrJ   unsigned char[]r   )r   rK   r(   r<   r   rL   r,   buffer)r   rA   r   rQ   bufdata_ptrrB   s          r   _evp_cipher_process_datarY      s    \\g&F
,,

,c$i
8C||''-H
,,
'
'S&(CI
NC3!8$<<sF1I.q11r   c           	        ddl m} t        |      }t        | ||j                  |d |t
              }t        ||      rt        | |t        |             |D ]  }	t        | ||	        t        | ||      }
| j                  j                  d      }| j                  j                  dd      }| j                  j                  |||      }| j                  |dk7         |
| j                  j!                  ||d         d d  z  }
| j                  j                  d|      }| j                  j#                  || j                  j$                  ||      }| j                  |dk7         | j                  j!                  |      d d  }|
|z   S )Nr   r   rJ   rU      )r&   r   r   rE   r)   r5   r'   rO   r(   rS   rY   r   rK   r   EVP_CipherFinal_exr,   rV   r6   EVP_CTRL_AEAD_GET_TAG)r   r   r   r   r   r   r   r   rA   adprocessed_datarQ   rW   rB   tag_bufr>   s                   r   r   r      sk    C)&1K
 C &&!wSY7 2b12-gsDAN\\g&F ,,

,b
1C
,,
)
)#sF
;C3!8$gll))#vay9!<<Nll0*=G
,,
*
*W\\//WC 3!8$
,,

g
&q
)CCr   c           	        ddl m} t        |      |k  rt        || d  }|d |  }t	        |      }t        | ||j                  |||t              }	t        ||      rt        | |	t        |             |D ]  }
t        | |	|
        t        ||      r| j                  j                  d      }| j                  j                  dt        |            }| j                  j                  |      }| j                  j                  |	|||t        |            }|dk7  r| j!                          t        | j                  j#                  ||d         d d  }|S t%        | |	|      }| j                  j                  d      }| j                  j                  dd      }| j                  j'                  |	||      }|| j                  j#                  ||d         d d  z  }|dk(  r| j!                          t        |S )Nr   r[   rJ   rU   r"   r\   )r&   r   r(   r   r   rE   r)   r8   r'   rO   rS   r   rK   r<   r   rL   _consume_errorsrV   rY   r]   )r   r   r   r   r   r   r   r>   r   rA   r_   rQ   rW   d_ptrrB   r`   s                   r   r    r       s    C
4y:

{|
C*D)&1K
 C &&!wSY7 2b12 &&!!!'*ll0#d)<((.ll++CfeSYO!8##% ,,S&)<Q?  2'3E!!'*ll0"5ll--c3?',,--c6!9=a@@!8##%r   )r   r   r   
_AEADTypesreturnbool)r   r   r   re   r   bytesr   rh   r   zlist[bytes]r   r4   rf   rh   )r   re   rf   rh   )r   rh   r   r   )r   r   r   rh   r=   rh   r   rh   r>   zbytes | Noner?   r4   r@   r4   )r>   rh   rf   None)r   r   rM   r4   rf   ri   )r   r   r   rh   rf   ri   )r   r   r   rh   rf   rh   )
__future__r   typingcryptography.exceptionsr   TYPE_CHECKING,cryptography.hazmat.backends.openssl.backendr   r&   r   r   Unionre   r   r   r!   r5   r8   r   r.   rE   r9   rO   rS   rY   r   r     r   r   <module>rq      s  
 #  .	D
 ffn-JO


 
 	

 !
 
 



 
 	

 !
 
 
 
A444 
4 	4
 
4 4 4n%%%%,1%	%2- - -  -  	- 
 !-  -  - `999 9 	9
 !9 9 9r   