3TfnddlmZddlZddlmZddlmZmZddlm Z m Z ddl m Z d dZ Gdd e Zy) ) annotationsN)utils)AlreadyFinalized InvalidKey) constant_timehashes)KeyDerivationFunctionc(|jddS)Nbig)length byteorder)to_bytes)ns L/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/x963kdf.py _int_to_u32bers ::Q%: 00c6eZdZ d ddZddZddZy) X963KDFNc|jdz}||kDrtd|d|tjd|||_||_||_d|_y)NlzCannot derive keys larger than z bits. sharedinfoF) digest_size ValueErrorr _check_bytes _algorithm_length _sharedinfo_used)self algorithmr rbackendmax_lens r__init__zX963KDF.__init__sd''95 G >wivNO O  !   |Z 8# % rc4|jrtd|_tjd|dg}d}d}|j|kDrt j |j}|j||jt||j|j|j|j|j|t|dz }|dz }|j|kDrdj|d|jS)NT key_materialrr)rrr_check_byteslikerrHashrupdaterrappendfinalizelenjoin)rr%outputoutlencounterhs rderivezX963KDF.derive&s ::" "  ~|<llV# DOO,A HH\ " HH]7+ ,+))* MM!**, ' c&*o %F qLGllV#xx$,,//rcZtj|j||styN)rbytes_eqr3r)rr% expected_keys rverifyzX963KDF.verify;s'%%dkk,&?N Orr5)r zhashes.HashAlgorithmr intrztyping.Optional[bytes]r!z typing.Any)r%bytesreturnr:)r%r:r7r:r;None)__name__ __module__ __qualname__r#r3r8rrrrs< # '+   $0*rr)rr9r;r:) __future__rtyping cryptographyrcryptography.exceptionsrrcryptography.hazmat.primitivesrr"cryptography.hazmat.primitives.kdfr rrr@rrrGs+ # @@D1*#*r