23 {
return GetMAC().GetCipher().AlgorithmName() + std::string(
"/EAX");}
25 {
return GetMAC().GetCipher().AlgorithmProvider();}
27 {
return GetMAC().MinKeyLength();}
29 {
return GetMAC().MaxKeyLength();}
31 {
return GetMAC().DefaultKeyLength();}
33 {
return GetMAC().GetValidKeyLength(n);}
35 {
return GetMAC().IsValidKeyLength(n);}
37 {
return GetMAC().OptimalDataAlignment();}
41 {
return GetMAC().TagSize();}
47 {
return GetMAC().TagSize();}
55 bool AuthenticationIsOnPlaintext()
const
57 unsigned int AuthenticationBlockSize()
const
59 void SetKeyWithoutResync(
const byte *userKey,
size_t keylength,
const NameValuePairs ¶ms);
60 void Resync(
const byte *iv,
size_t len);
61 size_t AuthenticateBlocks(
const byte *data,
size_t len);
62 void AuthenticateLastHeaderBlock();
63 void AuthenticateLastFooterBlock(
byte *mac,
size_t macSize);
65 const CMAC_Base & GetMAC()
const {
return const_cast<EAX_Base *
>(
this)->AccessMAC();}
75template <
class T_BlockCipher,
bool T_IsEncryption>
79 static std::string StaticAlgorithmName()
80 {
return T_BlockCipher::StaticAlgorithmName() + std::string(
"/EAX");}
84 {
return T_IsEncryption;}
103template <
class T_BlockCipher>
Classes for authenticated encryption modes of operation.
Base class for authenticated encryption modes of operation.
CMAC base implementation.
std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
EAX block cipher base implementation.
unsigned int DigestSize() const
Provides the digest size of the hash.
size_t MaxKeyLength() const
Returns largest valid key length.
unsigned int MinIVLength() const
Provides the minimum size of an IV.
IV_Requirement IVRequirement() const
Minimal requirement for secure IVs.
std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
unsigned int OptimalDataAlignment() const
Provides input and output data alignment for optimal performance.
size_t GetValidKeyLength(size_t n) const
Returns a valid key length for the algorithm.
std::string AlgorithmName() const
Provides the name of this algorithm.
unsigned int MaxIVLength() const
Provides the maximum size of an IV.
bool IsValidKeyLength(size_t n) const
Returns whether keylength is a valid key length.
lword MaxHeaderLength() const
Provides the maximum length of AAD that can be input.
lword MaxMessageLength() const
Provides the maximum length of encrypted data.
unsigned int IVSize() const
Returns length of the IV accepted by this object.
size_t MinKeyLength() const
Returns smallest valid key length.
size_t DefaultKeyLength() const
Returns default key length.
EAX block cipher final implementation.
bool IsForwardTransformation() const
Determines if the cipher is being operated in its forward direction.
std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
Interface for retrieving values given their names.
IV_Requirement
Secure IVs requirements as enumerated values.
Interface for one direction (encryption or decryption) of a stream cipher or cipher mode.
Classes for CMAC message authentication code.
const lword LWORD_MAX
Large word type max value.
word64 lword
Large word type.
Classes for block cipher modes of operation.
Crypto++ library namespace.
Provides Encryption and Decryption typedefs used by derived classes to implement an authenticated enc...
EAX block cipher mode of operation.