PH=      !"#$%&'()*+,-./0123456789:;<  Safe-Inferred=>?@=>?@=>?@NoneSkein 256 context. First output block to get. Last output block to get. !Pointer to store output data in. Skein 256 context. First/'last update? First starts a new tweak. : (First bit indicates first, second bit indicates last.) %Type of block, as given by type2int. 9Length of block. Must be multiple of 32 except for last. Pointer to update data. !Skein 256 context to initialize. Desired key or nullPtr. Output size in bits.  NoneFThreefish tweak value. Please see the Skein specification for info on  how to use this. 9Parses a string of hexadecimal digits into a ByteString. A2Show a little endian Word64 as a string of bytes. BKey constant for Threefish. >Default tweak when Threefish is used in CBC, CTR, etc. modes. C7Turn an Either computation into its Maybe counterpart. 0Read any deserializable type from a hex string. DABC EFGABC  DABC EFG NoneHIJKLMNOPQRSTUVWXHIJKLMNOPQRSTUVWX HPONMLKJIQRSTUVWX None  512 bit Threefish block cipher. YRotational constants for TF512 ZDEncrypt a 512 bit Threefish block. Tweak may have any value without  compromising security. [#Encrypt a 512 bit Threefish block. \ ]YZ[^_`a \ ]YZ[ \ ]YZ[^_`a None  256 bit Threefish block cipher.  bcdefghijkl  bcfgh bcdefghijklNone3Create a Threefish key using a custom tweak value. 5Encrypt a block using the given key and tweak value. 5Decrypt a block using the given key and tweak value. %Create an appropriately sized block. !Extract the contents of a block. mn    mnNone &Calculate the Skein-MAC of a message. +Calculate the Skein checksum of a message. o$Hash a message using 256 bit Skein. pCreate a 256 bit Skein-MAC. qInitial state for Skein512 rKProcess a single block of Skein 512. Call on Threefish, XOR the cryptotext , with the plaintext and update the tweak. KHash a message using a particular key. For normal hashing, use all zeroes; # for Skein-MAC, use the MAC key. s$Hash a message using 512 bit Skein. tCreate a 512 bit Skein-MAC. uvopwxqyrstz{   uvopwxqyrstz{None*Derive up to 2^64 keys from a master key. 1 The key identifiers will be 0, 1, ... 2^64-1. >Derive a key from a master key using a custom key identifier. None)4Skein-based PRNG as defined in the Skein 1.3 paper. |*Default amount of random bytes to buffer. *'Create a new Skein PRNG from the system's entropy pool. +!Create a Skein PRNG from a seed. ,KCreate a Skein PRNG with a custom pool size. Larger pool sizes give faster J random data, but obviously take up more memory. Pool size is preserved  across splits. -Reseed a Skein PRNG. .3Generate n random bytes using the given generator. )}~|*+,-. !"#$%&'()*+,-.)(%'#"$&! *+,.- )}~|*+,-.None/BEncrypt a lazy ByteString using 256 bit Skein as a stream cipher. 0JEncryption and decryption are the same operation for a stream cipher, but > we may want to have a function called encrypt for clarity. /0/0/0/0None1>An encrypt-then-MACed value. The binary format is as follows:  Bytes What  0-31 256 bit nonce  32-63 256 bit Skein-MAC A 64-71 Length of cryptotext as a 64 bit little endian word.  71- Cryptotext 6/Generate a 256 bit nonce using the Skein PRNG. 7HEncrypt-then-MAC a message given a key and a nonce. Note that using the E same nonce more than once for a given key will completely destroy  security. 8Verify and decrypt a message. 9)Encrypt-then-MAC any serializable value. K The 256 bit nonce is generated using a Skein-based PRNG seeded from the  system'@s entropy pool. This means that two successive calls to encrypt ? will not yield the exact same output; however, the identity 3 forall k, x. Right x == decrypt k (encrypt k x)  will always hold. GThe subkeys for encryption and MAC are generated by applying Skein-KDF / to the master key, with the key identifiers crypt and mac 8 respectively, zero padded at the end until 32 bytes. :$Encrypt-then-MAC a lazy ByteString. ;IDecrypt and decode a message. Will fail if there is a MAC mismatch or if  the message can''t be decoded into the given data type. <&Verify and decrypt a lazy ByteString. 123456789:;<123456789:;<243159;78:<6124356789:;<              !"#$%&'()*+)*,)*-)*.)*/)*0)*1)*2)*3)*4)*56789:;<=>?@ABCDE<F=GHIJK L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f   g h i j   k l m n o p q r stuvwxyz{|}~6|>'threefish-0.2.4Crypto.Threefish.Skein.InternalCrypto.ThreefishCrypto.Threefish.SkeinCrypto.Threefish.Skein.KDFCrypto.Threefish.Random#Crypto.Threefish.Skein.StreamCipherCrypto.Threefish.AuthenticatedCrypto.Threefish.MixCrypto.Threefish.CommonCrypto.Threefish.UBICrypto.Threefish.Threefish512Crypto.Threefish.Threefish256 Skein256Ctxskein256_outputskein256_update skein256_initTweakparseHex defaultTweakreadHexKey512Block512 Threefish512 Threefish256Key256Block256 Threefish threefishKeythreefishEncryptthreefishDecrypttoBlock fromBlockNonce256SkeinskeinMACskeinhash256hash512 deriveKeys deriveKeyrandom-1.0.1.1 System.RandomsplitnextgenRange RandomGenrandomsrandomRs randomRIOrandomRrandomIOrandomRandomSkeinGen newSkeinGen mkSkeinGen mkSkeinGenExreseedSkeinGen randomBytesencryptdecrypt EncryptedDecryptFailureNoDecodeBadMAC Plaintext generateNonceencrypt'decrypt' encryptBytes decryptBytesmixmixKeyunmixunmixKey showByteskeyConste2mhexDigit$fDefaultTweak $fShowTweak$fSerializeTweak BlockTypeOutputMessageNonce KeyIdentifier PublicKeyPersonalizationConfigKeytype2w64type2intnewTweaksetTypesetFirstsetLastaddBytes configTweakrot encrypt512 decrypt512$fBlockCipherThreefish512$fSerializeThreefish512$fSerializeBlock512$fShowBlock512 c_decrypt256 c_encrypt256 readBlock256 decrypt256 encrypt256$fBlockCipherThreefish256$fSerializeThreefish256$fSerializeBlock256$fShowBlock256$fThreefishBlock512Threefish512$fThreefishBlock256Threefish256skein256 skeinMAC256init512processBlock512skein512 skeinMAC512init256 update256 config512xb512zero512$fSkeinBlock512$fSkeinBlock256defaultSkeinGenPoolSizesgStatesgPool sgPoolSizeemptyKey$fCryptoRandomGenSkeinGen$fRandomGenSkeinGen stream256 keystream256encNonceencMACencDataMAC256prng$fSerializeEncrypted