a bl@sddlZddlZddlmZddlmZGdddejdZGdddejdZGd d d ejdZ Gd d d eZ Gd ddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$ee ZGd%d&d&ee ZGd'd(d(eZGd)d*d*eZGd+d,d,eZGd-d.d.eZdS)/N)utils)AlreadyFinalizedc@sNeZdZejedddZejedddZeje j edddZ dS) HashAlgorithmreturncCsdS)zH A string naming this algorithm (e.g. "sha256", "md5"). NselfrrL/tmp/pip-target-98j97qn4/lib/python/cryptography/hazmat/primitives/hashes.pynameszHashAlgorithm.namecCsdS)z< The size of the resulting digest in bytes. Nrrrrr digest_sizeszHashAlgorithm.digest_sizecCsdS)z The internal block size of the hash function, or None if the hash function does not use blocks internally (e.g. SHA3). Nrrrrr block_sizeszHashAlgorithm.block_sizeN) __name__ __module__ __qualname__abcabstractpropertystrr intr typingOptionalr rrrr rs r) metaclassc@s^eZdZejedddZejeddddZ ejeddd Z ejddd d Z dS) HashContextrcCsdS)zD A HashAlgorithm that will be used by this context. Nrrrrr algorithm$szHashContext.algorithmNdatarcCsdS)z@ Processes the provided bytes through the hash. Nrr rrrr update*szHashContext.updatecCsdS)zR Finalizes the hash context and returns the hash digest as bytes. Nrrrrr finalize0szHashContext.finalizecCsdS)zM Return a HashContext that is a copy of the current context. Nrrrrr copy6szHashContext.copy) rrrrrrrabstractmethodbytesrrrrrrr r#src@seZdZdZdS)ExtendableOutputFunctionz7 An interface for extendable output functions. N)rrr__doc__rrrr r"=sr"c@sveZdZUejeed<deejejddddZ e eddd Z e dd d d Z ddd dZe dddZdS)Hash_ctxNr)rbackendctxcCsFt|tstd||_|dursr>c@seZdZdZdZdZdS)SHA384sha3840r9Nr6rrrr r@sr@c@seZdZdZdZdZdS)SHA512sha512r5r9Nr6rrrr rCsrCc@seZdZdZdZdZdS)SHA3_224zsha3-224r8Nr6rrrr rEsrEc@seZdZdZdZdZdS)SHA3_256zsha3-256r;Nr6rrrr rFsrFc@seZdZdZdZdZdS)SHA3_384zsha3-384rBNr6rrrr rGsrGc@seZdZdZdZdZdS)SHA3_512zsha3-512r5Nr6rrrr rHsrHc@s4eZdZdZdZedddZeedddZdS) SHAKE128Zshake128Nr cCs,t|tstd|dkr"td||_dSNzdigest_size must be an integerz&digest_size must be a positive integerr(rr) ValueError _digest_sizer r rrr r+s  zSHAKE128.__init__rcCs|jSr,rOrrrr r szSHAKE128.digest_size rrrr r rr+r1r rrrr rIs  rIc@s4eZdZdZdZedddZeedddZdS) SHAKE256Zshake256NrJcCs,t|tstd|dkr"td||_dSrKrMrPrrr r+s  zSHAKE256.__init__rcCs|jSr,rQrrrr r szSHAKE256.digest_sizerRrrrr rSs  rSc@seZdZdZdZdZdS)MD5md5r5Nr6rrrr rTsrTc@s<eZdZdZdZdZdZedddZe edd d Z d S) BLAKE2bblake2br5rLr9rJcCs|dkrtd||_dS)Nr5zDigest size must be 64rNrOrPrrr r+szBLAKE2b.__init__rcCs|jSr,rQrrrr r szBLAKE2b.digest_sizeN) rrrr _max_digest_size_min_digest_sizer rr+r1r rrrr rWsrWc@s<eZdZdZdZdZdZedddZe edd d Z d S) BLAKE2sblake2sr5r;rLrJcCs|dkrtd||_dS)Nr;zDigest size must be 32rYrPrrr r+szBLAKE2s.__init__rcCs|jSr,rQrrrr r szBLAKE2s.digest_sizeN) rrrr r rZr[rr+r1r rrrr r\sr\c@seZdZdZdZdZdS)SM3Zsm3r;r5Nr6rrrr r^sr^)rrZ cryptographyrZcryptography.exceptionsrABCMetarrr"r$r2r7r:r<r>r@rCrErFrGrHrIrSrTrWr\r^rrrr s0  -