úÎOuJÁ      BSD-style#Vincent Hanquez <vincent@snarc.org>stablegoodNone  6B! AESOCB State AESGCM StateAES IV is always 16 bytesAES with 256 bit keyAES with 192 bit keyAES with 128 bit keyAES Context (pre-processed key) convert a bytestring to an AESIV#Initialize a new context with a key[Key need to be of length 16, 24 or 32 bytes. any other values will cause undefined behavior (encrypt using Electronic Code Book (ECB) )encrypt using Cipher Block Chaining (CBC) vgenerate a counter mode pad. this is generally xor-ed to an input to make the standard counter mode block operations.©if the length requested is not a multiple of the block cipher size, more data will be returned, so that the returned bytestring is a multiple of the block cipher size. vgenerate a counter mode pad. this is generally xor-ed to an input to make the standard counter mode block operations.©if the length requested is not a multiple of the block cipher size, more data will be returned, so that the returned bytestring is a multiple of the block cipher size. Similiar to  - but also return the next IV for continuation  encrypt using Counter mode (CTR)<in CTR mode encryption and decryption is the same operation._encrypt using Galois counter mode (GCM) return the encrypted bytestring and the tag associatedVnote: encrypted data is identical to CTR mode in GCM, however a tag is also computed.Lencrypt using OCB v3 return the encrypted bytestring and the tag associatedencrypt using XTSdthe first key is the normal block encryption key the second key is used for the initial block tweak(decrypt using Electronic Code Book (ECB))decrypt using Cipher block chaining (CBC)!decrypt using Counter mode (CTR).<in CTR mode encryption and decryption is the same operation.decrypt using XTS'decrypt using Galois Counter Mode (GCM)(decrypt using Offset Codebook Mode (OCB)initialize a gcm contextFappend data which is going to just be authentified to the GCM context.Tneed to happen after initialization and before appending encryption/decryption data.4append data to encrypt and append to the GCM contextªbytestring need to be multiple of AES block size, unless it's the last call to this function. need to happen after AAD appending, or after initialization if no AAD data.4append data to decrypt and append to the GCM contextªbytestring need to be multiple of AES block size, unless it's the last call to this function. need to happen after AAD appending, or after initialization if no AAD data.!Generate the Tag from GCM contextinitialize an ocb contextFappend data which is going to just be authentified to the OCB context.Tneed to happen after initialization and before appending encryption/decryption data.4append data to encrypt and append to the OCB contextªbytestring need to be multiple of AES block size, unless it's the last call to this function. need to happen after AAD appending, or after initialization if no AAD data. 4append data to decrypt and append to the OCB contextªbytestring need to be multiple of AES block size, unless it's the last call to this function. need to happen after AAD appending, or after initialization if no AAD data.!!Generate the Tag from OCB context\"#$%&'()*+,-./0123456789:;<=>?@ABCDEF  AES Context Initial vector of AES block size plaintext ciphertext  Cipher Key.usually a 128 bit integer.length of bytes required.  AES ContextIinitial vector of AES block size (usually representing a 128 bit integer)plaintext inputciphertext output AES ContextIV initial vector of any sizedata to authenticate (AAD)data to encryptciphertext and tag AES ContextIV initial vector of any sizedata to authenticate (AAD)data to encryptciphertext and tagAES cipher and tweak context:a 128 bits IV, typically a sector or a block offset in XTSLnumber of rounds to skip, also seen a 16 byte offset in the sector or block.input to encryptoutput encrypted AES Context6initial vector, usually representing a 128 bit integerciphertext inputplaintext outputAES cipher and tweak context:a 128 bits IV, typically a sector or a block offset in XTSLnumber of rounds to skip, also seen a 16 byte offset in the sector or block.input to decryptoutput decryptedKeyIV initial vector of any sizedata to authenticate (AAD)data to decryptplaintext and tagKeyIV initial vector of any sizedata to authenticate (AAD)data to decryptplaintext and tagGHIJK !LMNOPQRSTUVWXYZ[  U"#$%&'()*+,-./0123456789:;<=>?@ABCDEF GHIJK !LMNOPQRSTUVWXYZ[\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWcipher-aes-0.2.10Crypto.Cipher.AESAESGCMAESIVAES256AES192AES128AESaesIV_initAESinitKey encryptECB encryptCBCgenCTR genCounter encryptCTR encryptGCM encryptOCB encryptXTS decryptECB decryptCBC decryptCTR decryptXTS decryptGCM decryptOCBAESOCBgcmInit gcmAppendAADgcmAppendEncryptgcmAppendDecrypt gcmFinishocbInit ocbAppendAADocbAppendEncryptocbAppendDecrypt ocbFinishc_aes_ocb_finishc_aes_ocb_decryptc_aes_ocb_encrypt c_aes_ocb_aadc_aes_ocb_initc_aes_gcm_finishc_aes_gcm_decryptc_aes_gcm_encrypt c_aes_gcm_aadc_aes_gcm_initc_aes_encrypt_ctrc_aes_gen_ctr_cont c_aes_gen_ctrc_aes_decrypt_xtsc_aes_encrypt_xtsc_aes_decrypt_cbcc_aes_encrypt_cbcc_aes_decrypt_ecbc_aes_encrypt_ecb c_aes_initsizeGCMsizeOCBkeyToPtrivToPtr ivCopyPtr withKeyAndIV withKey2AndIVwithGCMKeyAndCopySt withNewGCMStwithOCBKeyAndCopyStdoECBdoCBCdoXTSdoGCMdoOCB$fAEADModeImplAES256AESOCB$fAEADModeImplAES256AESGCM$fBlockCipherAES256$fAEADModeImplAES192AESOCB$fAEADModeImplAES192AESGCM$fBlockCipherAES192$fAEADModeImplAES128AESOCB$fAEADModeImplAES128AESGCM$fBlockCipherAES128$fAEADModeImplAESAESOCB$fAEADModeImplAESAESGCM$fBlockCipherAES$fCipherAES256$fCipherAES192$fCipherAES128 $fCipherAES