MINI MINI MANI MO
3
  \                 @   sh   d dl Zd dlmZ d dlZedd edD Z	edd edD Z
dZG dd dZdd	d
Z
dS )    N)_compare_digestc             c   s   | ]}|d A V  qdS )\   N ).0xr   r   /usr/lib64/python3.6/hmac.py	<genexpr>
   s    r      c             c   s   | ]}|d A V  qdS )6   Nr   )r   r   r   r   r   r      s    c               @   sN   e Zd ZdZdddZedd Zdd Zd	d
 Zdd Z	d
d Z
dd ZdS )HMAC@   Nc                sV  t |ttfs tdt|j  d kr<tjdtd t	j
 t rL | _n,t  t
rhd
 fdd	| _nd fdd	| _| j | _| j | _| jj| _t| jdr| jj}|d	k rtjd
|| jf td | j}ntjd| j td | j}|| _t||kr| j|j }|j|d}| jj|jt | jj|jt |d k	rR| j| d S )Nz,key: expected bytes or bytearray, but got %rz<HMAC() without an explicit digestmod argument is deprecated.       c                s   t j | S )N)_hashlibnew)d)	digestmodr   r   <lambda>4   s    zHMAC.__init__.<locals>.<lambda>c                s
    j | S )N)r   )r   )r   r   r   r   6   s    
block_size   z:block_size of %d seems too small; using our default of %d.z<No block_size attribute on given digest object; Assuming %d.    )r   )r   )
isinstancebytes	bytearray	TypeErrortype__name__	_warningswarnPendingDeprecationWarningr   Zmd5callabledigest_consstrouterinnerdigest_sizehasattrr   	blocksizeRuntimeWarninglendigestljustupdate	translatetrans_5Ctrans_36)selfkeymsgr   r'   r   )r   r   __init__   sB    
z
HMAC.__init__c             C   s   d| j j S )Nzhmac-)r$   name)r0   r   r   r   r4   V   s    z	HMAC.namec             C   s   | j j| d S )N)r$   r,   )r0   r2   r   r   r   r,   Z   s    zHMAC.updatec             C   s:   | j j| j }| j|_| j|_| jj |_| jj |_|S )N)	__class____new__r!   r%   r$   copyr#   )r0   otherr   r   r   r7   _   s    z	HMAC.copyc             C   s   | j j }|j| jj  |S )N)r#   r7   r,   r$   r*   )r0   hr   r   r   _currentl   s    
z
HMAC._currentc             C   s   | j  }|j S )N)r:   r*   )r0   r9   r   r   r   r*   u   s    zHMAC.digestc             C   s   | j  }|j S )N)r:   	hexdigest)r0   r9   r   r   r   r;      s    zHMAC.hexdigest)NN)r   
__module____qualname__r'   r3   propertyr4   r,   r7   r:   r*   r;   r   r   r   r   r      s   
<
	
r   c             C   s   t | ||S )N)r   )r1   r2   r   r   r   r   r      s    r   )NN)warningsr   	_operatorr   Zcompare_digestZhashlibr   r   ranger.   r/   r%   r   r   r   r   r   r   <module>   s   r
 OHA YOOOO