24 {
return GetMAC().GetCipher().AlgorithmName() + std::string(
"/EAX");}
26 {
return GetMAC().MinKeyLength();}
28 {
return GetMAC().MaxKeyLength();}
30 {
return GetMAC().DefaultKeyLength();}
32 {
return GetMAC().GetValidKeyLength(n);}
34 {
return GetMAC().IsValidKeyLength(n);}
36 {
return GetMAC().OptimalDataAlignment();}
40 {
return GetMAC().TagSize();}
46 {
return GetMAC().TagSize();}
58 void SetKeyWithoutResync(
const byte *userKey,
size_t keylength,
const NameValuePairs ¶ms);
59 void Resync(
const byte *iv,
size_t len);
60 size_t AuthenticateBlocks(
const byte *
data,
size_t len);
61 void AuthenticateLastHeaderBlock();
62 void AuthenticateLastFooterBlock(
byte *mac,
size_t macSize);
75 template <
class T_BlockCipher,
bool T_IsEncryption>
80 {
return T_BlockCipher::StaticAlgorithmName() + std::string(
"/EAX");}
82 {
return T_IsEncryption;}
89 #ifdef EAX // EAX is defined to 11 on GCC 3.4.3, OpenSolaris 8.11 100 template <
class T_BlockCipher>
size_t MinKeyLength() const
Returns smallest valid key length.
unsigned int DigestSize() const
Provides the digest size of the hash.
Class file for modes of operation.
bool AuthenticationIsOnPlaintext() const
#define NAMESPACE_BEGIN(x)
unsigned int AuthenticationBlockSize() const
Provides Encryption and Decryption typedefs used by derived classes to implement an authenticated enc...
EAX_Final< T_BlockCipher, true > Encryption
EAX block cipher base implementation.
size_t MaxKeyLength() const
Returns largest valid key length.
const CMAC_Base & GetMAC() const
Classes for CMAC message authentication code.
size_t GetValidKeyLength(size_t n) const
Returns a valid key length for the algorithm.
EAX block cipher final implementation.
EAX_Final< T_BlockCipher, false > Decryption
Interface for one direction (encryption or decryption) of a stream cipher or cipher mode...
lword MaxMessageLength() const
Provides the maximum length of encrypted data.
Base implementation for one direction (encryption or decryption) of a stream cipher or block cipher m...
unsigned int OptimalDataAlignment() const
Provides input and output data alignment for optimal performance.
IV_Requirement IVRequirement() const
Minimal requirement for secure IVs.
SymmetricCipher & AccessSymmetricCipher()
#define CRYPTOPP_NO_VTABLE
IV_Requirement
Secure IVs requirements as enumerated values.
CTR_Mode_ExternalCipher::Encryption m_ctr
lword MaxHeaderLength() const
Provides the maximum length of AAD that can be input.
size_t DefaultKeyLength() const
Returns default key length.
CMAC base implementation.
unsigned int IVSize() const
Returns length of the IV accepted by this object.
unsigned int MinIVLength() const
Provides the minimum size of an IV.
static std::string StaticAlgorithmName()
unsigned int MaxIVLength() const
Provides the maximum size of an IV.
std::string AlgorithmName() const
Provides the name of this algorithm.
Base classes for working with authenticated encryption modes of encryption.
CMAC< T_BlockCipher > m_cmac
bool IsForwardTransformation() const
Determines if the cipher is being operated in its forward direction.
EAX block cipher mode of operation.
bool IsValidKeyLength(size_t n) const
Returns whether keylength is a valid key length.
Interface for retrieving values given their names.