3 ꅭh @ s| d dl mZmZmZ d dlmZ d dlmZmZm Z d dl mZ d dlm Z d dlmZmZ ejejG dd deZd S ) )absolute_importdivisionprint_function)utils)AlreadyFinalizedUnsupportedAlgorithm_Reasons)_get_backend)CMACBackend)ciphersmacc @ s6 e Zd ZdddZdd Zdd Zdd Zd d ZdS ) CMACNc C sb t |}t|tstdtjt|tjs2td|| _ || _ |d krX| j j| j | _n|| _d S )Nz.Backend object does not implement CMACBackend.z*Expected instance of BlockCipherAlgorithm.) r isinstancer r r ZBACKEND_MISSING_INTERFACEr ZBlockCipherAlgorithm TypeError _algorithm_backendZcreate_cmac_ctx_ctx)self algorithmbackendctx r /usr/lib64/python3.6/cmac.py__init__ s z CMAC.__init__c C s. | j d krtdtjd| | j j| d S )NzContext was already finalized.data)r r r _check_bytesupdate)r r r r r r &