B \`D@svddlmZmZmZddlZddlZddlmZddlm Z m Z m Z ddl m Z eejGdddeZeejGdd d eZeeGd d d eZeeGd d d eZeeGdddeZeeGdddeZeeGdddeZeeGdddeZeeGdddeZeeGdddeZeeGdddeZdS))absolute_importdivisionprint_functionN)utils)AlreadyFinalizedUnsupportedAlgorithm_Reasons) HashBackendc@s(eZdZejddZejddZdS) HashAlgorithmcCsdS)zH A string naming this algorithm (e.g. "sha256", "md5"). N)selfr r X/opt/alt/python37/lib64/python3.7/site-packages/cryptography/hazmat/primitives/hashes.pynameszHashAlgorithm.namecCsdS)z< The size of the resulting digest in bytes. Nr )r r r r digest_sizeszHashAlgorithm.digest_sizeN)__name__ __module__ __qualname__abcabstractpropertyrrr r r r r sr c@sDeZdZejddZejddZejddZejddZ d S) HashContextcCsdS)zD A HashAlgorithm that will be used by this context. Nr )r r r r algorithm#szHashContext.algorithmcCsdS)z@ Processes the provided bytes through the hash. Nr )r datar r r update)szHashContext.updatecCsdS)zR Finalizes the hash context and returns the hash digest as bytes. Nr )r r r r finalize/szHashContext.finalizecCsdS)zM Return a HashContext that is a copy of the current context. Nr )r r r r copy5szHashContext.copyN) rrrrrrabstractmethodrrrr r r r r!src@s8eZdZd ddZedZddZddZd d Z dS) HashNcCsXt|tstdtjt|ts(td||_||_|dkrN|j |j |_ n||_ dS)Nz.Backend object does not implement HashBackend.z*Expected instance of hashes.HashAlgorithm.) isinstancer rrZBACKEND_MISSING_INTERFACEr TypeError _algorithm_backendZcreate_hash_ctxr_ctx)r rbackendctxr r r __init__>s  z Hash.__init__rcCs4|jdkrtdt|ts$td|j|dS)NzContext was already finalized.zdata must be bytes.)r!rrbytesrr)r rr r r rRs   z Hash.updatecCs*|jdkrtdt|j|j|jdS)NzContext was already finalized.)r"r#)r!rrrr r)r r r r rYs z Hash.copycCs&|jdkrtd|j}d|_|S)NzContext was already finalized.)r!rr)r Zdigestr r r r`s   z Hash.finalize)N) rrrr$rread_only_propertyrrrrr r r r r<s   rc@seZdZdZdZdZdS)SHA1Zsha1@N)rrrrr block_sizer r r r r'hsr'c@seZdZdZdZdZdS)SHA224Zsha224r)N)rrrrrr*r r r r r+osr+c@seZdZdZdZdZdS)SHA256Zsha256 r)N)rrrrrr*r r r r r-vsr-c@seZdZdZdZdZdS)SHA384Zsha3840N)rrrrrr*r r r r r/}sr/c@seZdZdZdZdZdS)SHA512Zsha512r)r1N)rrrrrr*r r r r r2sr2c@seZdZdZdZdZdS)MD5Zmd5r)N)rrrrrr*r r r r r3sr3c@s.eZdZdZdZdZdZddZe dZ dS) BLAKE2bZblake2br)r1cCs2||jks||jkr(td|j|j||_dS)NzDigest size must be {0}-{1})_max_digest_size_min_digest_size ValueErrorformat _digest_size)r rr r r r$s   zBLAKE2b.__init__r;N) rrrrr7r8r*r$rr&rr r r r r5s  r5c@s.eZdZdZdZdZdZddZe dZ dS) BLAKE2sZblake2sr)r.r6cCs2||jks||jkr(td|j|j||_dS)NzDigest size must be {0}-{1})r7r8r9r:r;)r rr r r r$s   zBLAKE2s.__init__r;N) rrrrr*r7r8r$rr&rr r r r r<s  r<)Z __future__rrrrZsixZ cryptographyrZcryptography.exceptionsrrrZ'cryptography.hazmat.backends.interfacesr Z add_metaclassABCMetaobjectr rZregister_interfacerr'r+r-r/r2r3r5r<r r r r s6  +