pg ddlZddlmZddlmZmZddlmZmZm Z ddl m Z de de fdZd ejd e d eje ddfd Zd e d e dejgejfd e de f dZGdde ZGdde ZdS)N)utils)AlreadyFinalized InvalidKey) constant_timehasheshmac)KeyDerivationFunctionnreturnc0|ddS)Nbig)length byteorder)to_bytes)r s N/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/concatkdf.py _int_to_u32bers ::Q%: 0 00 algorithmr otherinfoc|jdz}||kr"td||tjd|dSdS)Nlz'Cannot derive keys larger than {} bits.r) digest_size ValueErrorformatr _check_bytes)rrr max_lengths r_common_args_checksrsh &)4J  5 < <888UF FG 6// EGG w''(((   ajjll####fRj//!1  6// 88F  GVG $$rc eZdZ d dejdedejedej fdZ dej fdZ d edefd Z d ed eddfd ZdS) ConcatKDFHashNrrrbackendcht|||||_||_||nd|_d|_dS)NrF)r _algorithm_length _otherinfo_used)selfrrrr0s r__init__zConcatKDFHash.__init__;s? Ivy999# .7.C rr c4tj|jSN)rHashr2r6s r_hashzConcatKDFHash._hashIs{4?+++rrcn|jrtd|_t||j|j|jSNT)r5rr-r3r<r4r6rs rderivezConcatKDFHash.deriveL: : #" "  $, DO   r expected_keycdtj|||stdSr9rbytes_eqr@rr6rrBs rverifyzConcatKDFHash.verifyT3%dkk,&?&?NN    rr9)__name__ __module__ __qualname__r HashAlgorithminttypingOptionalbytesAnyr7r:r<r@rGrrr/r/:s #  '  ?5)      ,v{,,,, 5 U    5$rr/c eZdZ ddejdedejedejedej f dZ de j fd Z d edefd Zd ed eddfd ZdS) ConcatKDFHMACNrrsaltrr0ct|||||_||_||nd|_|j't d|j| d|jz}ntj d|||_ d|_ dS)Nrz{} is unsupported for ConcatKDFrUF) rr2r3r4 block_size TypeErrorrnamerr_saltr5)r6rrrUrr0s rr7zConcatKDFHMAC.__init__Zs Ivy999# .7.C   '188HH  <Y11DD  vt , , ,  rr c@tj|j|jSr9)rHMACr[r2r;s r_hmaczConcatKDFHMAC._hmacusyT_555rrcn|jrtd|_t||j|j|jSr>)r5rr-r3r^r4r?s rr@zConcatKDFHMAC.derivexrArrBcdtj|||stdSr9rDrFs rrGzConcatKDFHMAC.verifyrHrr9)rIrJrKrrLrMrNrOrPrQr7rr]r^r@rGrRrrrTrTYs# 'oe$  ?5)   66ty6666 5 U    5$rrT)rN cryptographyrcryptography.exceptionsrrcryptography.hazmat.primitivesrrr"cryptography.hazmat.primitives.kdfr rMrPrrLrOrCallable HashContextr-r/rTrRrrrgs  GFFFFFFFFFDDDDDD1S1U1111 3# 3  3u% 3 3 3 3 3%% % ?2v11 2% %  %%%%.)>)))))))))))r