3 ꅭh1 @ s d dl mZmZmZ d dlmZ d dlmZmZm Z d dl mZ d dlm Z d dlmZmZ ejejejejG dd deZd S ) )absolute_importdivisionprint_function)utils)AlreadyFinalizedUnsupportedAlgorithm_Reasons)_get_backend)HMACBackend)hashesmacc @ s@ e Zd Zd ddZejdZdd Zdd Zd d Z dd Z dS )HMACNc C sj t |}t|tstdtjt|tjs2td|| _ || _ || _|d kr`| j j|| j | _n|| _d S )Nz.Backend object does not implement HMACBackend.z*Expected instance of hashes.HashAlgorithm.)r isinstancer r r ZBACKEND_MISSING_INTERFACEr Z HashAlgorithm TypeError _algorithm_backend_keyZcreate_hmac_ctx algorithm_ctx)selfkeyr backendctx r /usr/lib64/python3.6/hmac.py__init__ s z HMAC.__init__r c C s. | j d krtdtjd| | j j| d S )NzContext was already finalized.data)r r r Z_check_byteslikeupdate)r r r r r r * s zHMAC.updatec C s. | j d krtdt| j| j| j| j j dS )NzContext was already finalized.)r r )r r r r r r copy)r r r r r 0 s z HMAC.copyc C s&