/+"      ! Safe-Inferred24!An abstract datatype for digests. Compute the SHA-1 hash of the given ByteString. The output is guaranteed to be exactly 160 bits, or 20 bytes, long. This is a good default for programs that need a good, but not necessarily hyper-secure, hash function.  Similar to  N but use an incremental interface. When the decoder has been completely fed,  - must be used so it can finish successfully.Compute the SHA-224 hash of the given ByteString. Note that SHA-224 and SHA-384 differ only slightly from SHA-256 and SHA-512, and use truncated versions of the resulting hashes. So using 224/384 may not, in fact, save you very much ... Similar to N but use an incremental interface. When the decoder has been completely fed, - must be used so it can finish successfully.Compute the SHA-256 hash of the given ByteString. The output is guaranteed to be exactly 256 bits, or 32 bytes, long. If your security requirements are pretty serious, this is a good choice. For truly significant security concerns, however, you might try one of the bigger options. Similar to N but use an incremental interface. When the decoder has been completely fed, - must be used so it can finish successfully.Compute the SHA-384 hash of the given ByteString. Yup, you guessed it, the output will be exactly 384 bits, or 48 bytes, long. Similar to N but use an incremental interface. When the decoder has been completely fed, - must be used so it can finish successfully.For those for whom only the biggest hashes will do, this computes the SHA-512 hash of the given ByteString. The output will be 64 bytes, or 512 bits, long. Similar to N but use an incremental interface. When the decoder has been completely fed, - must be used so it can finish successfully.Compute an HMAC using SHA-1.Compute an HMAC using SHA-224.Compute an HMAC using SHA-256.Compute an HMAC using SHA-384.Compute an HMAC using SHA-512.WConvert a digest to a string. The digest is rendered as fixed with hexadecimal number."=Prints out a bytestring in hexadecimal. Just for convenience. Convert a digest to an Integer.!!Convert a digest to a ByteString.\#$%&'()*+,-./0123456789:; <=>?@ABCDEFGHIJKLMNOPQRS  secret keymessage SHA-1 MAC secret keymessage SHA-224 MAC secret keymessage SHA-256 MAC secret keymessage SHA-384 MAC secret keymessage SHA-512 MACT" !UVWXYZ["  !" !   U#$%&'()*+,-./0123456789:; <=>?@ABCDEFGHIJKLMNOPQRS T" !UVWXYZ[\      !"#$%%&&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ SHA-1.6.4.2Data.Digest.Pure.SHA SHA512State SHA256State SHA1StateDigestpadSHA1 padSHA1Chunks padSHA512padSHA512Chunkscalc_ktoBigEndianSBSfromBigEndianSBSsha1sha1IncrementalcompleteSha1Incrementalsha224sha224IncrementalcompleteSha224Incrementalsha256sha256IncrementalcompleteSha256Incrementalsha384sha384IncrementalcompleteSha384Incrementalsha512sha512IncrementalcompleteSha512IncrementalhmacSha1 hmacSha224 hmacSha256 hmacSha384 hmacSha512 showDigest integerDigestbytestringDigest showDigestBS SHA512Sched SHA256Sched SHA1SchedSHA512SSHA256SSHA1SinitialSHA1StateinitialSHA224StateinitialSHA256StateinitialSHA384StateinitialSHA512StatesynthesizeSHA1getSHA1synthesizeSHA224synthesizeSHA256 getSHA256synthesizeSHA384synthesizeSHA512 getSHA512 generic_padgeneric_pad_chunkschmaj bsig256_0 bsig256_1 lsig256_0 lsig256_1 bsig512_0 bsig512_1 lsig512_0 lsig512_1 getSHA1SchedgetSHA256SchedgetSHA512SchedprocessSHA1Blockstep1_ch step1_par step1_majprocessSHA256Blockstep256processSHA512Blockstep512runSHArunSHAIncrementalgeneric_completehmac$fBinarySHA512State$fBinarySHA256State$fBinarySHA1State$fBinaryDigest$fBinaryDigest0$fBinaryDigest1 $fShowDigest