8 NAMESPACE_BEGIN(CryptoPP)
16 {
return GetMAC().GetCipher().AlgorithmName() + std::string(
"/EAX");}
18 {
return GetMAC().MinKeyLength();}
20 {
return GetMAC().MaxKeyLength();}
22 {
return GetMAC().DefaultKeyLength();}
24 {
return GetMAC().GetValidKeyLength(n);}
26 {
return GetMAC().IsValidKeyLength(n);}
28 {
return GetMAC().OptimalDataAlignment();}
31 unsigned int IVSize()
const
32 {
return GetMAC().TagSize();}
38 {
return GetMAC().TagSize();}
46 bool AuthenticationIsOnPlaintext()
const
48 unsigned int AuthenticationBlockSize()
const
50 void SetKeyWithoutResync(
const byte *userKey,
size_t keylength,
const NameValuePairs ¶ms);
51 void Resync(
const byte *iv,
size_t len);
52 size_t AuthenticateBlocks(
const byte *data,
size_t len);
53 void AuthenticateLastHeaderBlock();
54 void AuthenticateLastFooterBlock(byte *mac,
size_t macSize);
56 const CMAC_Base & GetMAC()
const {
return const_cast<EAX_Base *
>(
this)->AccessMAC();}
63 template <
class T_BlockCipher,
bool T_IsEncryption>
67 static std::string StaticAlgorithmName()
68 {
return T_BlockCipher::StaticAlgorithmName() + std::string(
"/EAX");}
70 {
return T_IsEncryption;}
77 #ifdef EAX // EAX is defined to 11 on GCC 3.4.3, OpenSolaris 8.11
82 template <
class T_BlockCipher>