úÎSjNhD      !"#$%&'()*+,-./0123456789:;<=>?@ABC  ExcellentStable#Vincent Hanquez <vincent@snarc.org> Safe-InferredDEDEDE ExcellentStable#Vincent Hanquez <vincent@snarc.org>NoneFFF ExcellentStable#Vincent Hanquez <vincent@snarc.org>NoneSymmetric cipher class. 'Initialize a cipher context from a key  Cipher name 5return the size of the key required for this cipher. % Some cipher accept any size for key  AEAD Mode (Authentification Tag for AE cipher mode !an IV parametrized by the cipher !a Key parametrized by the cipher 8Offset inside an XTS data unit, measured in block size. *Different specifier for key size in bytes a specific size one of the specified values in the range [min,max] >Possible Error that can be reported when initializating a key  G HIJKLM G H    G HIJKLM ExcellentStable#Vincent Hanquez <vincent@snarc.org>None"Class of AEAD Mode implementation Wrapper for any AEADState 9Authenticated Encryption with Associated Data algorithms Symmetric block cipher class !8Return the size of block required for this block cipher "Encrypt blocks 7the input string need to be multiple of the block size #Decrypt blocks 7the input string need to be multiple of the block size $encrypt using the CBC mode. -input need to be a multiple of the blocksize %decrypt using the CBC mode. -input need to be a multiple of the blocksize &encrypt using the CFB mode. -input need to be a multiple of the blocksize 'decrypt using the CFB mode. -input need to be a multiple of the blocksize (combine using the CTR mode. >CTR mode produce a stream of randomized data that is combined + (by XOR operation) with the input stream. 2encryption and decryption are the same operation. input can be of any size )encrypt using the XTS mode. =input need to be a multiple of the blocksize, and the cipher % need to process 128 bits block only *decrypt using the XTS mode. =input need to be a multiple of the blocksize, and the cipher % need to process 128 bits block only +Initialize a new AEAD State ;When Nothing is returns, it means the mode is not handled. ,*Create an IV for a specified block cipher -;Create an IV that is effectively representing the number 0 .Increment an IV by a number. 'Assume the IV is in Big Endian format. /'Encrypt using CFB mode in 8 bit output AEffectively turn a Block cipher in CFB mode into a Stream cipher 0'Decrypt using CFB mode in 8 bit output AEffectively turn a Block cipher in CFB mode into a Stream cipher # !"#$%&'()3Usually represent the Data Unit (e.g. disk sector) ,Offset in the data unit in number of blocks  Plaintext  Ciphertext *3Usually represent the Data Unit (e.g. disk sector) ,Offset in the data unit in number of blocks  Ciphertext  Plaintext +N3Usually represent the Data Unit (e.g. disk sector) ,Offset in the data unit in number of blocks Data Processed Data ,-.OPQRSTUV/0  !"#$%&'()*+N,-./0 !"#$%&'()*+N,-.OPQRSTUV/0 ExcellentStable#Vincent Hanquez <vincent@snarc.org>None 1*Symmetric block cipher class, mutable API 2Encrypt using the ECB mode. -input need to be a multiple of the blocksize 3Decrypt using the ECB mode. -input need to be a multiple of the blocksize 4encrypt using the CBC mode. -input need to be a multiple of the blocksize 5decrypt using the CBC mode. -input need to be a multiple of the blocksize 6Length of the pointed data 7pointer to the IV data 8pointer to the source data 9 pointer to the destination data : Helper to use a purer interface 123456789WX:YZ[\ 123456789: 123456789WX:YZ[\ ExcellentStable#Vincent Hanquez <vincent@snarc.org>None 123456789: 123456987: ExcellentStable#Vincent Hanquez <vincent@snarc.org>None]Encrypt using the ECB mode. -input need to be a multiple of the blocksize ^Decrypt using the ECB mode. -input need to be a multiple of the blocksize _`a]^]^_`a]^  ExcellentStable#Vincent Hanquez <vincent@snarc.org>None;Symmetric stream cipher class < Combine using the stream cipher ;<;<;<  ExcellentStable#Vincent Hanquez <vincent@snarc.org>None=+Append associated data into the AEAD state >-Encrypt input and append into the AEAD state ?-Decrypt input and append into the AEAD state @;Finalize the AEAD state and create an authentification tag ASimple AEAD encryption BSimple AEAD decryption =>?@AA new AEAD Context Optional Authentified Header Optional Plaintext  Tag length $Authentification tag and ciphertext BA new AEAD Context Optional Authentified Header Optional Plaintext  Tag length  Plaintext =>?@AB=>?@AB ExcellentStable#Vincent Hanquez <vincent@snarc.org>NoneC$Create a Key for a specified cipher C:  !"#$%&'()*+,-./0;<=>?@ABC: !"#$%&'()*+;< /0=>?@AB C ,-. Cb    !"#$%&&''()*+,-./0123456789:;<=>?@AB C D E F G H I JKLMNOPQRSTUVWXYZ[\UV]^_`abcdefcrypto-cipher-types-0.0.8Crypto.Cipher.TypesCrypto.Cipher.Types.UnsafeCrypto.Cipher.Types.UtilsCrypto.Cipher.Types.GFCrypto.Cipher.Types.BaseCrypto.Cipher.Types.BlockCrypto.Cipher.Types.BlockIOCrypto.Cipher.Types.OfIOCrypto.Cipher.Types.StreamCrypto.Cipher.Types.AEADCipher cipherInit cipherName cipherKeySizeAEADModeAEAD_GCMAEAD_CWCAEAD_EAXAEAD_CCMAEAD_OCBAuthTagIVKeyDataUnitOffsetKeySizeSpecifier KeySizeFixed KeySizeEnum KeySizeRangeKeyErrorKeyErrorInvalidKeyErrorTooBigKeyErrorTooSmall AEADModeImplaeadStateAppendHeaderaeadStateEncryptaeadStateDecryptaeadStateFinalize AEADStateAEAD BlockCipher blockSize ecbEncrypt ecbDecrypt cbcEncrypt cbcDecrypt cfbEncrypt cfbDecrypt ctrCombine xtsEncrypt xtsDecryptaeadInitmakeIVnullIVivAdd cfb8Encrypt cfb8Decrypt BlockCipherIOecbEncryptMutableecbDecryptMutablecbcEncryptMutablecbcDecryptMutable BufferLengthPtrIV PtrSourcePtrDestonBlock StreamCipher streamCombineaeadAppendHeader aeadEncrypt aeadDecrypt aeadFinalizeaeadSimpleEncryptaeadSimpleDecryptmakeKeychunkbxorxtsGFMul$fByteableAuthTag $fEqAuthTag $fByteableIV $fByteableKey$fToSecureMemKeyXTScbcEncryptGenericcbcDecryptGenericcfbEncryptGenericcfbDecryptGenericctrCombineGenericxtsEncryptGenericxtsDecryptGeneric xtsGenericloopBS mutableXorto64 peeksAndPokeecbEncryptOfIOecbDecryptOfIO isBlockSized notBlockSizedwithDest