Botan
1.10.9
|
#include <eax.h>
Public Member Functions | |
virtual bool | attachable () |
virtual void | end_msg () |
std::string | name () const |
void | set_header (const byte header[], size_t header_len) |
void | set_iv (const InitializationVector &iv) |
void | set_key (const SymmetricKey &key) |
bool | valid_iv_length (size_t) const |
bool | valid_keylength (size_t key_len) const |
virtual void | write (const byte input[], size_t length)=0 |
~EAX_Base () | |
Protected Member Functions | |
EAX_Base (BlockCipher *cipher, size_t tag_size) | |
void | send (const byte in[], size_t length) |
void | send (byte in) |
void | send (const MemoryRegion< byte > &in) |
void | send (const MemoryRegion< byte > &in, size_t length) |
void | start_msg () |
Protected Attributes | |
const size_t | BLOCK_SIZE |
std::string | cipher_name |
MessageAuthenticationCode * | cmac |
StreamCipher * | ctr |
SecureVector< byte > | ctr_buf |
SecureVector< byte > | header_mac |
SecureVector< byte > | nonce_mac |
const size_t | TAG_SIZE |
|
protected |
cipher | the cipher to use |
tag_size | is how big the auth tag will be |
Definition at line 38 of file eax.cpp.
References Botan::BlockCipher::clone(), cmac, ctr, name(), Botan::Buffered_Computation::output_length(), TAG_SIZE, and Botan::to_string().
|
inlinevirtualinherited |
Check whether this filter is an attachable filter.
Reimplemented in Botan::SecureQueue, and Botan::DataSink.
|
inlinevirtualinherited |
Notify that the current message is finished; flush buffers and do end-of-message processing (if any).
Reimplemented in Botan::MAC_Filter, Botan::Hash_Filter, Botan::PK_Verifier_Filter, Botan::Base64_Decoder, Botan::Hex_Decoder, Botan::PK_Signer_Filter, Botan::Zlib_Decompression, Botan::Bzip_Decompression, Botan::PK_Decryptor_Filter, Botan::PBE_PKCS5v20, Botan::Base64_Encoder, Botan::Hex_Encoder, Botan::PBE_PKCS5v15, Botan::Bzip_Compression, Botan::Zlib_Compression, and Botan::PK_Encryptor_Filter.
|
virtual |
Implements Botan::Filter.
Definition at line 106 of file eax.cpp.
References cipher_name.
Referenced by EAX_Base().
|
protectedinherited |
in | some input for the filter |
length | the length of in |
Definition at line 28 of file filter.cpp.
References Botan::MemoryRegion< T >::clear(), Botan::MemoryRegion< T >::size(), and Botan::Filter::write().
Referenced by Botan::PK_Encryptor_Filter::end_msg(), Botan::Zlib_Compression::end_msg(), Botan::Bzip_Compression::end_msg(), Botan::Hex_Encoder::end_msg(), Botan::Base64_Encoder::end_msg(), Botan::PK_Decryptor_Filter::end_msg(), Botan::Bzip_Decompression::end_msg(), Botan::Zlib_Decompression::end_msg(), Botan::PK_Signer_Filter::end_msg(), Botan::Hex_Decoder::end_msg(), Botan::Base64_Decoder::end_msg(), Botan::PK_Verifier_Filter::end_msg(), Botan::Hash_Filter::end_msg(), Botan::MAC_Filter::end_msg(), Botan::Bzip_Compression::flush(), Botan::Zlib_Compression::flush(), Botan::Zlib_Compression::write(), Botan::Bzip_Compression::write(), Botan::StreamCipher_Filter::write(), Botan::Bzip_Decompression::write(), Botan::Zlib_Decompression::write(), Botan::Hex_Decoder::write(), and Botan::Base64_Decoder::write().
|
inlineprotectedinherited |
in | some input for the filter |
Definition at line 63 of file filter.h.
References Botan::Filter::send().
Referenced by Botan::Filter::send().
|
inlineprotectedinherited |
in | some input for the filter |
Definition at line 68 of file filter.h.
References Botan::Filter::send(), and Botan::MemoryRegion< T >::size().
Referenced by Botan::Filter::send().
|
inlineprotectedinherited |
void Botan::EAX_Base::set_header | ( | const byte | header[], |
size_t | header_len | ||
) |
Set some additional data that is not included in the ciphertext but that will be authenticated.
header | the header contents |
header_len | length of header in bytes |
Definition at line 98 of file eax.cpp.
References cmac, and header_mac.
|
virtual |
Set the initialization vector of this filter. Note: you should call set_iv() only after you have called set_key()
iv | the initialization vector to use |
Reimplemented from Botan::Keyed_Filter.
Definition at line 89 of file eax.cpp.
References Botan::OctetString::begin(), cmac, ctr, Botan::OctetString::length(), nonce_mac, Botan::StreamCipher::set_iv(), and Botan::MemoryRegion< T >::size().
Referenced by Botan::EAX_Decryption::EAX_Decryption().
|
virtual |
Set the key of this filter
key | the key to use |
Implements Botan::Keyed_Filter.
Definition at line 64 of file eax.cpp.
References cmac, ctr, header_mac, and Botan::SymmetricAlgorithm::set_key().
Referenced by Botan::EAX_Decryption::EAX_Decryption().
|
protectedvirtual |
Start a new message. Must be closed by end_msg() before another message can be started.
Reimplemented from Botan::Filter.
Definition at line 79 of file eax.cpp.
References cmac, and Botan::Buffered_Computation::update().
|
inlinevirtual |
EAX supports arbitrary IV lengths
Reimplemented from Botan::Keyed_Filter.
|
virtual |
Check whether a key length is valid for this filter
length | the key length to be checked for validity |
Implements Botan::Keyed_Filter.
Definition at line 54 of file eax.cpp.
References ctr, and Botan::SymmetricAlgorithm::valid_keylength().
|
pure virtualinherited |
Write a portion of a message to this filter.
input | the input as a byte array |
length | the length of the byte array input |
Implemented in Botan::MAC_Filter, Botan::Hash_Filter, Botan::PK_Verifier_Filter, Botan::Base64_Decoder, Botan::Hex_Decoder, Botan::PK_Signer_Filter, Botan::Fork, Botan::Zlib_Decompression, Botan::Bzip_Decompression, Botan::StreamCipher_Filter, Botan::PK_Decryptor_Filter, Botan::DataSink_Stream, Botan::Chain, Botan::PBE_PKCS5v20, Botan::Hex_Encoder, Botan::Base64_Encoder, Botan::PBE_PKCS5v15, Botan::Bzip_Compression, Botan::PK_Encryptor_Filter, Botan::SecureQueue, Botan::Zlib_Compression, and Botan::BitBucket.
Referenced by Botan::Filter::send(), and Botan::Pipe::write().
|
protected |
|
protected |
|
protected |
The MAC (CMAC)
Definition at line 79 of file eax.h.
Referenced by EAX_Base(), set_header(), set_iv(), set_key(), and start_msg().
|
protected |
The stream cipher (CTR mode)
Definition at line 74 of file eax.h.
Referenced by EAX_Base(), set_iv(), set_key(), and valid_keylength().
|
protected |
|
protected |
The MAC of the header
Definition at line 89 of file eax.h.
Referenced by set_header(), and set_key().
|
protected |
|
protected |
The requested tag name
Definition at line 64 of file eax.h.
Referenced by EAX_Base(), and Botan::EAX_Decryption::EAX_Decryption().