úÎ*ý't     4 !"#$%&BModes ECB and CBC can only handle full 16-byte frames. This means D the length of every strict bytestring passed in must be a multiple ) of 16; when using lazy bytestrings, its  component strict $ bytestrings must all satisfy this. ;Other modes can handle bytestrings of any length. However, E encrypting a bytestring of length 5 and then one of length 4 is not C the same operation as encrypting a single bytestring of length 9; 7 they are internally padded to a multiple of 16 bytes. AFor OFB and CTR, Encrypt and Decrypt are the same operation. For 2 CTR, the IV is the initial value of the counter.  '()*+,-./0123456Must be 16, 24 or 32 bytes Create an encryption/#decryption context for incremental  encryption/ decryption CYou may create an ECB context this way, in which case you may pass  undefined for the IV A 16, 24 or 32-byte AES key  A 16-byte IV 7 %Create a context for ECB, which doesn' t need an IV A 16, 24 or 32-byte AES key 8 Incrementally encrypt/decrypt bytestrings (crypt is definitely not thread-safe. Don't even think about  it. 9:;<=>?@A       ?A random number generator that gets its input from prandBytes, < ensuring purity by storing those bytes for later if you don't  discard the generator. !Using split on this generator isn't supported, but could be. @Please note that if an asynchronous exception is caught while a A random number is being generated, the generator will be wrecked  forevermore. B4Randomness from a system source of nonsense such as devrandom CACryptographic pseudorandomness from an AES cipher. This function D is currently inefficient for non-multiple-of-16 sized bytestrings. D   &A class of things that can be crypted :The crypt function returns incremental results as well as * appending them to the result bytestring. Run an AES computation !The AES key - 16, 24 or 32 bytes The IV, 16 bytes Run an AES computation !The AES key - 16, 24 or 32 bytes The IV, 16 bytes    Encryption/ decryption for lazy bytestrings !The AES key - 16, 24 or 32 bytes The IV, 16 bytes Bytestring to encrypt/decrypt  Encryption/"decryption for strict bytestrings !The AES key - 16, 24 or 32 bytes The IV, 16 bytes Bytestring to encrypt/decrypt    E      !"#$%&'()*++,,-./0123456789:;<=>?@ABCDEF AES-0.2.8Codec.Crypto.AES.IOCodec.Crypto.AES.RandomControl.Monad.UnsafeIOCodec.Crypto.AES.MonadCodec.Crypto.AESAESCtxModeCTROFBCFBCBCECB DirectionDecryptEncryptnewCtx newECBCtxcryptAESGen randBytes prandBytes newAESGen MonadUnsafeIO liftUnsafeIO CryptableAESAESTrunAESTrunAEScrypt'DecryptCtxStructEncryptCtxStruct DecryptCtxP EncryptCtxPDirectionalCtx DecryptCtx EncryptCtxCTRCtxOFBCtxCFBCtxCBCCtxECBCtxIVAESKey_aes_decrypt_key_aes_encrypt_key_ctr_inc_aes_ctr_crypt_aes_ofb_crypt_aes_cfb_decrypt_aes_cfb_encrypt_aes_cbc_decrypt_aes_cbc_encrypt_aes_ecb_decrypt_aes_ecb_encrypttoKeynewCtx' newECBCtx'callcallivaddiv aes_ctr_cryptwrapensure encryptCtx decryptCtxRNDctxintSizeInBinary