a ‚oeûã@s–ddlmZddlZddlZddlmZgd¢ZGdd„dejd�Z Gdd „d ejd�Z ej j Z e   e ¡Gd d „d ejd�ZGd d „d e ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGdd„de ƒZGd d!„d!e ƒZGd"d#„d#e eƒZGd$d%„d%e eƒZGd&d'„d'e ƒZGd(d)„d)e ƒZGd*d+„d+e ƒZGd,d-„d-e ƒZdS).é)Ú annotationsN)Úopenssl)Ú HashAlgorithmÚ HashContextÚHashÚExtendableOutputFunctionÚSHA1Ú SHA512_224Ú SHA512_256ÚSHA224ÚSHA256ÚSHA384ÚSHA512ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512ÚSHAKE128ÚSHAKE256ÚMD5ÚBLAKE2bÚBLAKE2sÚSM3c@sTeZdZeejddœdd„ƒƒZeejddœdd„ƒƒZeejddœd d „ƒƒZd S) rÚstr©ÚreturncCsdS)zH A string naming this algorithm (e.g. "sha256", "md5"). N©©ÚselfrrúFC:\Program Files\Certbot\pkgs\cryptography\hazmat\primitives\hashes.pyÚname&szHashAlgorithm.nameÚintcCsdS)z< The size of the resulting digest in bytes. NrrrrrÚ digest_size-szHashAlgorithm.digest_sizeztyping.Optional[int]cCsdS)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_size4szHashAlgorithm.block_sizeN) Ú__name__Ú __module__Ú __qualname__ÚpropertyÚabcÚabstractmethodr r"r#rrrrr%sr)Ú metaclassc@sbeZdZeejddœdd„ƒƒZejdddœdd „ƒZejddœd d „ƒZejddœd d „ƒZ dS)rrrcCsdS)zD A HashAlgorithm that will be used by this context. NrrrrrÚ algorithm>szHashContext.algorithmÚbytesÚNone)ÚdatarcCsdS)z@ Processes the provided bytes through the hash. Nr)rr.rrrÚupdateEszHashContext.updatecCsdS)zR Finalizes the hash context and returns the hash digest as bytes. NrrrrrÚfinalizeKszHashContext.finalizecCsdS)zM Return a HashContext that is a copy of the current context. NrrrrrÚcopyQszHashContext.copyN) r$r%r&r'r(r)r+r/r0r1rrrrr=src@seZdZdZdS)rz7 An interface for extendable output functions. N)r$r%r&Ú__doc__rrrrr\src@seZdZdZdZdZdS)rZsha1éé@N©r$r%r&r r"r#rrrrrbsrc@seZdZdZdZdZdS)r z sha512-224éé€Nr5rrrrr hsr c@seZdZdZdZdZdS)r z sha512-256é r7Nr5rrrrr nsr c@seZdZdZdZdZdS)r Zsha224r6r4Nr5rrrrr tsr c@seZdZdZdZdZdS)r Zsha256r8r4Nr5rrrrr zsr c@seZdZdZdZdZdS)r Zsha384é0r7Nr5rrrrr €sr c@seZdZdZdZdZdS)rZsha512r4r7Nr5rrrrr†src@seZdZdZdZdZdS)rzsha3-224r6Nr5rrrrrŒsrc@seZdZdZdZdZdS)rzsha3-256r8Nr5rrrrr’src@seZdZdZdZdZdS)rzsha3-384r9Nr5rrrrr˜src@seZdZdZdZdZdS)rzsha3-512r4Nr5rrrrržsrc@s4eZdZdZdZddœdd„Zeddœdd „ƒZdS) rZshake128Nr!©r"cCs,t|tƒstdƒ‚|dkr"tdƒ‚||_dS©Nzdigest_size must be an integeréz&digest_size must be a positive integer©Ú isinstancer!Ú TypeErrorÚ ValueErrorÚ _digest_size©rr"rrrÚ__init__¨s  zSHAKE128.__init__rcCs|jS©N©rArrrrr"±szSHAKE128.digest_size©r$r%r&r r#rCr'r"rrrrr¤s  rc@s4eZdZdZdZddœdd„Zeddœdd „ƒZdS) rZshake256Nr!r:cCs,t|tƒstdƒ‚|dkr"tdƒ‚||_dSr;r=rBrrrrCºs  zSHAKE256.__init__rcCs|jSrDrErrrrr"ÃszSHAKE256.digest_sizerFrrrrr¶s  rc@seZdZdZdZdZdS)rZmd5ér4Nr5rrrrrÈsrc@s<eZdZdZdZdZdZddœdd„Zedd œd d „ƒZ d S) rZblake2br4r<r7r!r:cCs|dkrtdƒ‚||_dS)Nr4zDigest size must be 64©r@rArBrrrrCÔszBLAKE2b.__init__rcCs|jSrDrErrrrr"ÚszBLAKE2b.digest_sizeN) r$r%r&r Ú_max_digest_sizeÚ_min_digest_sizer#rCr'r"rrrrrÎsrc@s<eZdZdZdZdZdZddœdd„Zedd œd d „ƒZ d S) rZblake2sr4r8r<r!r:cCs|dkrtdƒ‚||_dS)Nr8zDigest size must be 32rHrBrrrrCåszBLAKE2s.__init__rcCs|jSrDrErrrrr"ëszBLAKE2s.digest_sizeN) r$r%r&r r#rIrJrCr'r"rrrrrßsrc@seZdZdZdZdZdS)rZsm3r8r4Nr5rrrrrðsr) Z __future__rr(ÚtypingZ"cryptography.hazmat.bindings._rustrZ rust_opensslÚ__all__ÚABCMetarrZhashesrÚregisterrrr r r r r rrrrrrrrrrrrrrrÚs4