o
    Œõ±j³  ã                   @   s4   d dl mZmZ dd„ Zdd„ Zdd„ Zdd	„ Zd
S )é    )ÚpackÚunpackc                 C   s
  d}t dƒ}|| ƒ}t |d |… ƒ}t| |ƒ\}}t|ƒ| }	|	dkr(d}	d}
n|| dkr1d}
n|	d7 }	d}
||	d | d … }|
du rKt||ƒ}ntt|ƒ|ƒ}|}t|	d ƒD ]}||| d … d d… }t||ƒ}t | t|ƒ¡ƒ}qZt||ƒ}| t|ƒ¡}|S )Né   r   é   FT)Ú	bytearrayÚGenerate_SubkeyÚlenÚXOR_128ÚPADÚrangeÚencryptÚbytes)ÚKÚMÚlengthÚ	cipherobjÚconst_BsizeÚ
const_ZeroÚAES_128ÚK1ÚK2ÚnÚflagÚM_nÚM_lastÚXÚiÚM_iÚYÚT© r    úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/unicrypto/backends/cmac.pyÚCMAC   s2   /

r"   c                 C   sÎ   || ƒ}|  ttdƒƒ¡}td|d d… ƒd }td|dd … ƒd }|d> |d? B d@ }|d> d@ }|d? r;|dN }|d> |d? B d@ }|d> d@ }	|d? rS|	dN }	ttd	||ƒƒ}
ttd	||	ƒƒ}|
|fS )
Nr   z>Qé   r   r   é?   l   ÿÿÿÿ é‡   z>QQ)r   r   r   r   r   )r   r   r   ÚLÚLHighÚLLowÚK1HighÚK1LowÚK2HighÚK2Lowr   r   r    r    r!   r   g   s   r   c                 C   s2   t ƒ }tt| ƒƒD ]}| | | || A ¡ q	|S )N)r   r   r   Úappend)ÚN1ÚN2ÚJr   r    r    r!   r	   ™   s   r	   c                 C   s    dt | ƒ }| d d|d   S )Nr   ó   €ó    r   )r   )ÚNÚpadLenr    r    r!   r
   ¡   s   r
   N)Ústructr   r   r"   r   r	   r
   r    r    r    r!   Ú<module>   s
   R2