Ȥ      !"#$%&'()*+,-./0123456789: ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefghijklmnopqrstuvwxyz{|}~ Trustworthy  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy 1compute a MAC using the supplied hashing function.An incremental API can be found in the module  Crypto.Hash. hash function block sizesecretmessage BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy perform io for hashes that do allocation and ffi. unsafeDupablePerformIO is used when possible as the computation is pure and the output is directly linked to the input. we also do not modify anything after it has been returned to the user. BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy Whirlpool Contextinit a context"update a context with a bytestring+updates a context with multiples bytestring-finalize the context into a digest bytestring1hash a strict bytestring into a digest bytestring/hash a lazy bytestring into a digest bytestring BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy  Skein512 Context init a context "update a context with a bytestring +updates a context with multiples bytestring-finalize the context into a digest bytestring1hash a strict bytestring into a digest bytestring/hash a lazy bytestring into a digest bytestring      BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy Skein256 Contextinit a context"update a context with a bytestring+updates a context with multiples bytestring-finalize the context into a digest bytestring1hash a strict bytestring into a digest bytestring/hash a lazy bytestring into a digest bytestring BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy  Tiger Contextinit a context"update a context with a bytestring+updates a context with multiples bytestring-finalize the context into a digest bytestring1hash a strict bytestring into a digest bytestring /hash a lazy bytestring into a digest bytestring     BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy !RIPEMD160 Context#init a context$"update a context with a bytestring%+updates a context with multiples bytestring&-finalize the context into a digest bytestring'1hash a strict bytestring into a digest bytestring(/hash a lazy bytestring into a digest bytestring!"     #$%&'(!"#$%&'(!"#$%&'(!"     #$%&'( BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy ) SHA3 Context+init a context,"update a context with a bytestring-+updates a context with multiples bytestring.-finalize the context into a digest bytestring/1hash a strict bytestring into a digest bytestring0/hash a lazy bytestring into a digest bytestring)*+,-./0)*+,-./0)*+,-./0)*+,-./0 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy 1SHA512 Context34init a context using FIPS 180-4 for truncated SHA5124init a context5"update a context with a bytestring6+updates a context with multiples bytestring7-finalize the context into a digest bytestring81hash a strict bytestring into a digest bytestring9/hash a lazy bytestring into a digest bytestring12 !"#$%&'()*+3,-456789 123456789 12435678912 !"#$%&'()*+3,-456789  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy :(SHA512 Context with variable size output<init a context="update a context with a bytestring>-finalize the context into a digest bytestring?1hash a strict bytestring into a digest bytestring@/hash a lazy bytestring into a digest bytestring:;<=>?@:;<=>?@:;<=>?@:;<=>?@  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy ASHA384 ContextCinit a contextD"update a context with a bytestringE+updates a context with multiples bytestringF-finalize the context into a digest bytestringG1hash a strict bytestring into a digest bytestringH/hash a lazy bytestring into a digest bytestringAB./0123456789:CDEFGHABCDEFGHABCDEFGHAB./0123456789:CDEFGH  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy ISHA256 ContextKinit a contextL"update a context with a bytestringM+updates a context with multiples bytestringN-finalize the context into a digest bytestringO1hash a strict bytestring into a digest bytestringP/hash a lazy bytestring into a digest bytestringIJ;<=>?@ABCDEFGKLMNOPIJKLMNOPIJKLMNOPIJ;<=>?@ABCDEFGKLMNOP  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy QSHA224 ContextSinit a contextT"update a context with a bytestringU+updates a context with multiples bytestringV-finalize the context into a digest bytestringW1hash a strict bytestring into a digest bytestringX/hash a lazy bytestring into a digest bytestringQRHIJKLMNOPQRSTSTUVWXQRSTUVWXQRSTUVWXQRHIJKLMNOPQRSTSTUVWX  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy Y SHA1 Context[init a context\"update a context with a bytestring]+updates a context with multiples bytestring^-finalize the context into a digest bytestring_1hash a strict bytestring into a digest bytestring`/hash a lazy bytestring into a digest bytestringYZUVWXYZ[\]^_`a[\]^_`YZ[\]^_`YZ[\]^_`YZUVWXYZ[\]^_`a[\]^_` BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy a MD5 Contextcinit a contextd"update a context with a bytestringe+updates a context with multiples bytestringf-finalize the context into a digest bytestringg1hash a strict bytestring into a digest bytestringh/hash a lazy bytestring into a digest bytestringabbcdefghijklmncdefghabcdefghabcdefghabbcdefghijklmncdefgh BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy i MD4 Contextkinit a contextl"update a context with a bytestringm+updates a context with multiples bytestringn-finalize the context into a digest bytestringo1hash a strict bytestring into a digest bytestringp/hash a lazy bytestring into a digest bytestringijopqrstuvwxyz{klmnopijklmnopijklmnopijopqrstuvwxyz{klmnop BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy q MD2 Contextsinit a contextt"update a context with a bytestringu+updates a context with multiples bytestringv-finalize the context into a digest bytestringw1hash a strict bytestring into a digest bytestringx/hash a lazy bytestring into a digest bytestringqr|}~stuvwxqrstuvwxqrstuvwxqr|}~stuvwx BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy <SConvert a bytestring to the hexadecimal equivalent using 0123456789abcdef as digit BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy y.Represent a digest for a given hash algorithm.{/Represent a context for a given hash algorithm.}&Class representing hashing algorithms..The hash algorithm is built over 3 primitives:'init : create a new hashing contextkupdates : update the hashing context with some strict bytestrings and return the new context-finalize : finalize the context into a digest~2Block size in bytes the hash algorithm operates on0Initialize a new context for this hash algorithm`Update the context with a list of strict bytestring, and return a new context with the updates.'Finalize a context and return a digest.6Try to convert a binary digest bytestring to a digest.5return the binary bytestring. deprecated use toBytes.5return the binary bytestring. deprecated use toBytes.yz{|}~ yz{|}~ }~{|yzyz{|}~ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy ORepresent an HMAC that is a phantom type with the hash used to produce the mac.!The Eq instance is constant time..Skein512 (512 bits version) cryptographic hash.Skein512 (384 bits version) cryptographic hash.Skein512 (256 bits version) cryptographic hash.Skein512 (224 bits version) cryptographic hash.Skein256 (256 bits version) cryptographic hash.Skein256 (224 bits version) cryptographic hash*SHA3 (512 bits version) cryptographic hash*SHA3 (384 bits version) cryptographic hash*SHA3 (256 bits version) cryptographic hash*SHA3 (224 bits version) cryptographic hashTiger cryptographic hashWhirlpool cryptographic hashRIPEMD160 cryptographic hashSHA512 cryptographic hashSHA384 cryptographic hashSHA256 cryptographic hashSHA224 cryptographic hashSHA1 cryptographic hashMD5 cryptographic hashMD4 cryptographic hashMD2 cryptographic hashFAlias to a single pass hash function that operate on a lazy bytestringHAlias to a single pass hash function that operate on a strict bytestringHrun hashUpdates on one single bytestring and return the updated context.'Hash a strict bytestring into a digest.%Hash a lazy bytestring into a digest.8Return the hexadecimal (base16) bytestring of the digest7Initialize a new context for a specified hash algorithm1compute a MAC using the supplied hashing function*compute a HMAC using a specified algorithmM Secret keyMessage to MAC.the hash algorithm the actual value is unused. Secret keyMessage to MAC?y{}~?}~{y6 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy ;Represent an ongoing HMAC state, that can be appended with  and finalize to an HMAC with )Initialize a new incremental HMAC contextFInitialize a new incremental HMAC context with a given hash algorithm.#Incrementally update a HMAC context,Finalize a HMAC context and return the HMAC. Secret key.the hash algorithm the actual value is unused. Secret keyMessage to Mac  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunknown Trustworthy  SHA3_224 MAC SHA3_256 MAC SHA3_384 MAC SHA3_512 MAC-compute a MAC using a simple SHA3_512 key|msg-compute a MAC using a simple SHA3_384 key|msg-compute a MAC using a simple SHA3_256 key|msg-compute a MAC using a simple SHA3_224 key|msgsecretmessagesecretmessagesecretmessagesecretmessage                                        !!""#$%&'()*++,--..//00112233445566778899::;;<<==>>??@@AABCDEFGHIJKLMMNOOPQQRSSTUVWXYZ[\]^_`abcdefghij_k`abcdefglmn_k`abcdefgopq^_`abcdefgrst^_`abcdefguvw_k`abcdefgxyz{^_`abcdefg | } ~ ^ _ ` a b c d e f g  ^ _ ` a b c d e f g ^ _ ` a b c d e f g ^ _ ` a b c d e f g^_`abcdefg^_`abcdefg^_`abcdefgHcrypt_Ay7vlBu1GAw8Rzz5EpWt3cCrypto.MAC.HMACCrypto.Hash.WhirlpoolCrypto.Hash.Skein512Crypto.Hash.Skein256Crypto.Hash.TigerCrypto.Hash.RIPEMD160Crypto.Hash.SHA3Crypto.Hash.SHA512Crypto.Hash.SHA512tCrypto.Hash.SHA384Crypto.Hash.SHA256Crypto.Hash.SHA224Crypto.Hash.SHA1Crypto.Hash.MD5Crypto.Hash.MD4Crypto.Hash.MD2Crypto.Hash.Types Crypto.Hash Crypto.MACCrypto.MAC.SHA3Crypto.Hash.Utils.CpuCrypto.Hash.InternalCrypto.Hash.UtilshmacCtxinitupdateupdatesfinalizehashhashlazyinit_tDigestContext HashAlgorithm hashBlockSizehashInit hashUpdates hashFinalizedigestFromByteStringcontextToByteStringdigestToByteStringHMAC hmacGetDigest Skein512_512 Skein512_384 Skein512_256 Skein512_224 Skein256_256 Skein256_224SHA3_512SHA3_384SHA3_256SHA3_224Tiger Whirlpool RIPEMD160SHA512SHA384SHA256SHA224SHA1MD5MD4MD2HashFunctionLBSHashFunctionBS hashUpdatedigestToHexByteString hashInitAlghmacAlg HMACContexthmacInit hmacInitAlg hmacUpdate hmacFinalizeMAC224 getDigest224MAC256 getDigest256MAC384 getDigest384MAC512 getDigest512mac512mac384mac256mac224use32Hex unsafeDoIOc_whirlpool_finalizec_whirlpool_updatec_whirlpool_init digestSizesizeCtxwithByteStringPtr memcopy64 withCtxCopy withCtxThrow withCtxNewwithCtxNewThrowupdateInternalIOfinalizeInternalIOc_skein512_finalizec_skein512_updatec_skein512_init peekHashlenc_skein256_finalizec_skein256_updatec_skein256_initc_tiger_finalizec_tiger_update c_tiger_initc_ripemd160_finalizec_ripemd160_updatec_ripemd160_initc_sha3_finalize c_sha3_update c_sha3_initc_sha512_init_tc_sha512_finalizec_sha512_update c_sha512_initc_sha384_finalizec_sha384_update c_sha384_initc_sha256_finalizec_sha256_update c_sha256_initc_sha224_finalizec_sha224_update c_sha224_initc_sha1_finalize c_sha1_update c_sha1_initc_md5_finalize c_md5_update c_md5_initc_md4_finalize c_md4_update c_md4_initc_md2_finalize c_md2_update c_md2_inittoHex $fShowDigest$fByteableDigest$fByteableContext$fEqHMAC$fByteableHMAC$fHashAlgorithmSkein512_512$fHashAlgorithmSkein512_384$fHashAlgorithmSkein512_256$fHashAlgorithmSkein512_224$fHashAlgorithmSkein256_256$fHashAlgorithmSkein256_224$fHashAlgorithmSHA3_512$fHashAlgorithmSHA3_384$fHashAlgorithmSHA3_256$fHashAlgorithmSHA3_224$fHashAlgorithmTiger$fHashAlgorithmWhirlpool$fHashAlgorithmRIPEMD160$fHashAlgorithmSHA512$fHashAlgorithmSHA384$fHashAlgorithmSHA256$fHashAlgorithmSHA224$fHashAlgorithmSHA1$fHashAlgorithmMD5$fHashAlgorithmMD4$fHashAlgorithmMD2 $fEqMAC224$fByteableMAC224 $fEqMAC256$fByteableMAC256 $fEqMAC384$fByteableMAC384 $fEqMAC512$fByteableMAC512