a a @ s d dl Z d dlmZ d dlmZmZmZmZ d dlm Z m Z mZmZm Z d dlmZ G dd dejZG dd d ejZG d d dZG dd d eZG dd deZdS ) N)utils)AlreadyFinalized InvalidKeyUnsupportedAlgorithm_Reasons)cipherscmac constant_timehasheshmac)KeyDerivationFunctionc @ s e Zd ZdZdS )ModeZctrN)__name__ __module____qualname__ZCounterMode r r N/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.pyr s r c @ s e Zd ZdZdZdS )CounterLocationZbefore_fixedZafter_fixedN)r r r BeforeFixed AfterFixedr r r r r s r c @ sx e Zd Zejeeeeje eeje eje eje d ddZ eeedddZ e ee ddd Ze d ddZd S ) _KBKDFDeriver) prfmodelengthrlenllenlocationlabelcontextfixedc C s t |tstdt |ts$td|s,|r8| r8td|d u sJ| |sRtd|d u rj| d u rjtd|d urt |tstd|d u rd}|d u rd}td| td | || _ || _ || _|| _|| _ || _|| _|| _d | _| | _d S )Nzmode must be of type Modez(location must be of type CounterLocationz9When supplying fixed data, label and context are ignored.zrlen must be between 1 and 4zPlease specify an llenzllen must be an integer r r F) isinstancer TypeErrorr ValueError_valid_byte_lengthintr _check_bytes_prf_mode_length_rlen_llen _location_label_context_used_fixed_data) selfr r r r r r r r r r r r __init__" s<