8 NAMESPACE_BEGIN(CryptoPP)
15 std::string AlgorithmName()
const
16 {
return GetMAC().GetCipher().
AlgorithmName() + std::string(
"/EAX");}
17 size_t MinKeyLength()
const
18 {
return GetMAC().MinKeyLength();}
19 size_t MaxKeyLength()
const
20 {
return GetMAC().MaxKeyLength();}
21 size_t DefaultKeyLength()
const
22 {
return GetMAC().DefaultKeyLength();}
23 size_t GetValidKeyLength(
size_t n)
const
24 {
return GetMAC().GetValidKeyLength(n);}
25 bool IsValidKeyLength(
size_t n)
const
26 {
return GetMAC().IsValidKeyLength(n);}
27 unsigned int OptimalDataAlignment()
const
28 {
return GetMAC().OptimalDataAlignment();}
29 IV_Requirement IVRequirement()
const
31 unsigned int IVSize()
const
32 {
return GetMAC().TagSize();}
33 unsigned int MinIVLength()
const
35 unsigned int MaxIVLength()
const
37 unsigned int DigestSize()
const
38 {
return GetMAC().TagSize();}
39 lword MaxHeaderLength()
const
41 lword MaxMessageLength()
const
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>