a a@sddlZddlmZddlmZmZmZmZddlm Z m Z m Z m Z m Z ddlmZGdddejZGdd d ejZGd d d ZGd d d eZGdddeZdS)N)utils)AlreadyFinalized InvalidKeyUnsupportedAlgorithm_Reasons)cipherscmac constant_timehasheshmac)KeyDerivationFunctionc@seZdZdZdS)ModeZctrN)__name__ __module__ __qualname__Z CounterModerrN/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/kbkdf.pyr sr c@seZdZdZdZdS)CounterLocationZ before_fixedZ after_fixedN)rrr BeforeFixed AfterFixedrrrrrsrc @sxeZdZejeeeejeeeje eje eje d ddZ e ee dddZ e ee ddd Ze d d d Zd S) _KBKDFDeriver) prfmodelengthrlenllenlocationlabelcontextfixedc Cst|tstdt|ts$td|s,|r8| r8td|dusJ||sRtd|durj| durjtd|durt|tstd|durd}|durd}td|td |||_ ||_ ||_ ||_ ||_ ||_||_||_d |_| |_dS) 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 integerrrF) isinstancer TypeErrorr ValueError_valid_byte_lengthintr _check_bytes_prf_mode_length_rlen_llen _location_label_context_used _fixed_data) selfrrrrrrrrrrrr__init__"s<     z_KBKDFDeriver.__init__)valuereturncCs@t|tstdtd|}dt|kr6dkss  m7