Xj@ddlmZddlZddlmZddlmZgdZGddejZ Gd d ejZ ejjZ e je ejjZGd d ejZGd de ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdde ZGdd e ZGd!d"e ZGd#d$e eZGd%d&e eZGd'd(e ZGd)d*e ZGd+d,e Z Gd-d.e Z!y)/) annotationsN)openssl)Buffer)MD5SHA1SHA3_224SHA3_256SHA3_384SHA3_512SHA224SHA256SHA384SHA512 SHA512_224 SHA512_256SHAKE128SHAKE256SM3BLAKE2bBLAKE2sExtendableOutputFunctionHash HashAlgorithm HashContextXOFHashceZdZeej ddZeej ddZeej ddZy)rcy)zH A string naming this algorithm (e.g. "sha256", "md5"). Nselfs y/mnt/ssd/data/Dropbox/adrian/vault-secondbrain/venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/hashes.pynamezHashAlgorithm.name'cy)z< The size of the resulting digest in bytes. Nrrs r! digest_sizezHashAlgorithm.digest_size.r#r$cy)z The internal block size of the hash function, or None if the hash function does not use blocks internally (e.g. SHA3). Nrrs r! block_sizezHashAlgorithm.block_size5r#r$N)returnstrr)int)r)z int | None) __name__ __module__ __qualname__propertyabcabstractmethodr"r&r(rr$r!rr&sf       r$r) metaclassceZdZeej ddZej ddZej ddZej d dZ y) rcy)zD A HashAlgorithm that will be used by this context. Nrrs r! algorithmzHashContext.algorithm?r#r$cy)z@ Processes the provided bytes through the hash. Nr)r datas r!updatezHashContext.updateFr#r$cy)zR Finalizes the hash context and returns the hash digest as bytes. Nrrs r!finalizezHashContext.finalizeLr#r$cy)zM Return a HashContext that is a copy of the current context. Nrrs r!copyzHashContext.copyRr#r$N)r)r)r8rr)None)r)bytes)r)r) r-r.r/r0r1r2r6r9r;r=rr$r!rr>sp            r$rceZdZdZy)rz7 An interface for extendable output functions. N)r-r.r/__doc__rr$r!rr_sr$rceZdZdZdZdZy)rsha1@Nr-r.r/r"r&r(rr$r!rres DKJr$rceZdZdZdZdZy)rz sha512-224NrFrr$r!rrk DKJr$rceZdZdZdZdZy)rz sha512-256 rINrFrr$r!rrqrJr$rceZdZdZdZdZy)r sha224rHrENrFrr$r!r r w DKJr$r ceZdZdZdZdZy)r sha256rLrENrFrr$r!r r }rOr$r ceZdZdZdZdZy)rsha3840rINrFrr$r!rr DKJr$rceZdZdZdZdZy)rsha512rErINrFrr$r!rrrUr$rceZdZdZdZdZy)rzsha3-224rHNrFrr$r!rr DKJr$rceZdZdZdZdZy)r zsha3-256rLNrFrr$r!r r rYr$r ceZdZdZdZdZy)r zsha3-384rTNrFrr$r!r r rYr$r ceZdZdZdZdZy)r zsha3-512rENrFrr$r!r r rYr$r c.eZdZdZdZddZeddZy)rshake128Ncht|ts td|dkr td||_yNzdigest_size must be an integerz&digest_size must be a positive integer isinstancer, TypeError ValueError _digest_sizer r&s r!__init__zSHAKE128.__init__3+s+<= = ?EF F'r$c|jSNrfrs r!r&zSHAKE128.digest_size   r$r&r,r+r-r.r/r"r(rhr0r&rr$r!rr% DJ(!!r$rc.eZdZdZdZddZeddZy)rshake256Ncht|ts td|dkr td||_yr`rbrgs r!rhzSHAKE256.__init__rir$c|jSrkrlrs r!r&zSHAKE256.digest_sizermr$rnr+rorr$r!rrrpr$rceZdZdZdZdZy)rmd5rENrFrr$r!rr DKJr$rc6eZdZdZdZdZdZddZed dZ y) rblake2brErarIc2|dk7r td||_y)NrEzDigest size must be 64rerfrgs r!rhzBLAKE2b.__init__ " 56 6'r$c|jSrkrlrs r!r&zBLAKE2b.digest_sizermr$Nrnr+) r-r.r/r"_max_digest_size_min_digest_sizer(rhr0r&rr$r!rrs1 DJ( !!r$rc6eZdZdZdZdZdZddZed dZ y) rblake2srErLrac2|dk7r td||_y)NrLzDigest size must be 32r|rgs r!rhzBLAKE2s.__init__r}r$c|jSrkrlrs r!r&zBLAKE2s.digest_sizermr$Nrnr+) r-r.r/r"r(rrrhr0r&rr$r!rrs1 DJ( !!r$rceZdZdZdZdZy)rsm3rLrENrFrr$r!rrrxr$r)" __future__rr1"cryptography.hazmat.bindings._rustr rust_opensslcryptography.utilsr__all__ABCMetarrhashesrregisterrrrrrr r rrrr r r rrrrrrrr$r!rsN # F% 4 ckk 0 CKK 6 T    % % =   ] ] ] ] } } } } !}6!$!}6!$- !m!"!m!"-r$