o
    Œõ±j  ã                   @   sÞ   d dl mZ d dlZdd„ Zedkrmd dlZdZe d¡ZdZ	d	Z
e eeje¡Ze e	¡ e e
¡Ze ¡ Zee ¡ ƒ ee ¡ ƒ ee
e	eed
ƒ\ZZedƒ ee ¡ ƒ ee ¡ ƒ eekrgedƒ dS edƒ dS dS )é    )ÚAESNc                 C   sÆ  d}|dvrt d| ƒ‚|rdt|ƒ  krdks"t dƒ‚ t dƒ‚dt|ƒ }tj|tjt d|d	 ¡| d
�}| d¡}| | ¡}	t| ƒ}
t|ƒ}tj|tjd| d�}d|dk d|d d   |d	  }t d|¡| |
 	|d¡ }d}|dkr˜|dk rƒd}n|dk rŒd}d}nd}d}|| 	|d¡7 }t
dt|ƒ› �ƒ || }|d|t|ƒ|   7 }| d||
|    }|| | }t
dt|ƒ› �ƒ | |¡dd … }tdd„ t||ƒD ƒƒ}|	|fS )Né   )é   é   é   é
   é   é   r   z@Parameter 'mac_len' must be even and in the range 4..16 (not %d)é   é   z<Length of parameter 'nonce' must be in the range 7..13 bytesé   ÚBé   )ÚkeyÚmodeÚnonces                   ó    )r   r   Úivé@   r   r   é   Úbigó    i ÿ  l        s   ÿþr   s   ÿÿzLength of block 0: zLength of MAC input iðÿÿÿc                 S   s   g | ]\}}||A ‘qS © r   )Ú.0ÚaÚbr   r   ú›/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/unicrypto/backends/pure/external/AES/ccm.pyÚ
<listcomp>1   s    z!aesCCMEncrypt.<locals>.<listcomp>)Ú
ValueErrorÚlenr   ÚnewÚMODE_CTRÚstructÚpackÚencryptÚMODE_CBCÚto_bytesÚprintÚbytesÚzip)Ú	plaintextÚaadr   r   ÚmacLenÚ	blockSizeÚqÚcipherÚs0ÚcÚpLenÚaadLenÚmacÚflagsÚb0ÚassocLenEncodedÚencsizeÚ	aadPaddedÚ
ptxtPaddedÚmacDataÚtÚtagr   r   r   ÚaesCCMEncrypt   sF   ÿ"

$r>   Ú__main__s   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿé   s(   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿs   ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªr   ÚotherzEncryption OK!zEncryption fail)ÚCryptodome.Cipherr   r"   r>   Ú__name__ÚosÚEncryptionKeyÚurandomr   ÚhdrÚmsg_datar    ÚMODE_CCMr/   Úupdater$   Úenc_dataÚdigestÚsigr'   Úhexr1   r<   r   r   r   r   Ú<module>   s.    .


ç