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 |sJ t|tstdt|ts0td|s8|rD| rDtd|d u sV| |s^td|d u rv| d u rvtd|d urt|tstd|d u rd}|d u rd}t d| t d | || _
|| _|| _|| _
|| _|| _|| _|| _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)callable
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>
z_KBKDFDeriver.__init__)valuereturnc C s@ t | tstdtd| }dt| kr6dks