a oe @stddlmZddlZddlmZddlmZmZddlm Z m Z m Z ddl m Z Gddde ZGd d d e ZdS) ) annotationsN)utils)AlreadyFinalized InvalidKey) constant_timehasheshmac)KeyDerivationFunctionc@sVeZdZdddddddddZd d d d d Zd d d d dZd d ddddZdS)HKDFNhashes.HashAlgorithminttyping.Optional[bytes] typing.Any) algorithmlengthsaltinfobackendcCsB||_|durd|jj}n td|||_t|j|||_dS)Nr) _algorithm digest_sizer _check_bytes_salt HKDFExpand _hkdf_expand)selfrrrrrrHC:\Program Files\Certbot\pkgs\cryptography\hazmat\primitives\kdf\hkdf.py__init__s  z HKDF.__init__bytes key_materialreturncCs"t|j|j}|||SN)rHMACrrupdatefinalize)rr!hrrr_extract#s z HKDF._extractcCstd||j||S)Nr!)r_check_byteslikerderiver(rr!rrrr*(s z HKDF.deriveNoner! expected_keyr"cCst|||stdSr#rZbytes_eqr*rrr!r.rrrverify,sz HKDF.verify)N)__name__ __module__ __qualname__rr(r*r1rrrrr s r c@sTeZdZddddddddZd d d d d Zd d d d dZd d ddddZdS)rNr r r r)rrrrcCsX||_d|j}||kr(td|d||_|durs   "