관리-도구
편집 파일: hmac.cpython-36.opt-2.pyc
3 �Qg� � @ s� d dl Zd dlmZ d dlZd dlZd dlZe dd� e d�D ��Ze dd� e d�D ��ZdZ G dd� d�Zd d � ZG dd� dej�Zej� r�eZdd d�ZdS )� N)�_compare_digestc c s | ]}|d A V qdS )�\ N� )�.0�xr 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 ZdZddd�Zedd� �Zdd� Zd d � Zdd� Z d d� Z dd� ZdS )�HMAC�@ Nc sf t j� rtd��t|ttf�s0tdt|�j ��� d krLt j dtd� tj � t� �r\� | _n,t� t�rxd� fdd� | _nd� fd d� | _| j� | _| j� | _| jj| _t| jd �r�| jj}|dk r�t j d|| jf td� | j}nt j d | j td� | j}|| _t|�|k�r| j|�j� }|j|d�}| jj|jt�� | jj|jt�� |d k �rb| j|� d S )Nz*This class is not available in FIPS mode. zUse hmac.new().z,key: expected bytes or bytearray, but got %rz<HMAC() without an explicit digestmod argument is deprecated.� � c s t j� | �S )N)�_hashlib�new)�d)� digestmodr r �<lambda>; s zHMAC.__init__.<locals>.<lambda>c s � j | �S )N)r )r )r r r r = 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.� z9This class is not available in FIPS mode. Use hmac.new().)r )r )�_hashlibopenssl� get_fips_mode� ValueError� isinstance�bytes� bytearray� TypeError�type�__name__� _warnings�warn�PendingDeprecationWarningr Zmd5�callable�digest_cons�str�outer�inner�digest_size�hasattrr � blocksize�RuntimeWarning�len�digest�ljust�update� translate�trans_5C�trans_36)�self�key�msgr r* r )r r �__init__ sJ z HMAC.__init__c C s d| j j S )Nzhmac-)r'