7 #ifndef CRYPTOPP_AUTHENC_H 8 #define CRYPTOPP_AUTHENC_H 21 m_totalHeaderLength(0), m_totalMessageLength(0), m_totalFooterLength(0) {}
25 void UncheckedSetKey(
const byte *,
unsigned int,
const CryptoPP::NameValuePairs &) {assert(
false);}
27 void SetKey(
const byte *userKey,
size_t keylength,
const NameValuePairs ¶ms);
28 void Restart() {
if (m_state > State_KeySet) m_state = State_KeySet;}
29 void Resynchronize(
const byte *iv,
int length=-1);
30 void Update(
const byte *input,
size_t length);
31 void ProcessData(byte *outString,
const byte *inString,
size_t length);
32 void TruncatedFinal(byte *mac,
size_t macSize);
35 void AuthenticateData(
const byte *data,
size_t len);
39 virtual bool AuthenticationIsOnPlaintext()
const =0;
40 virtual unsigned int AuthenticationBlockSize()
const =0;
41 virtual void SetKeyWithoutResync(
const byte *userKey,
size_t keylength,
const NameValuePairs ¶ms) =0;
42 virtual void Resync(
const byte *iv,
size_t len) =0;
43 virtual size_t AuthenticateBlocks(
const byte *data,
size_t len) =0;
44 virtual void AuthenticateLastHeaderBlock() =0;
45 virtual void AuthenticateLastConfidentialBlock() {}
46 virtual void AuthenticateLastFooterBlock(byte *mac,
size_t macSize) =0;
48 enum State {State_Start, State_KeySet, State_IVSet, State_AuthUntransformed, State_AuthTransformed, State_AuthFooter};
50 unsigned int m_bufferedDataLength;
51 lword m_totalHeaderLength, m_totalMessageLength, m_totalFooterLength;
Interface for one direction (encryption or decryption) of a stream cipher or block cipher mode with a...
Abstract base classes that provide a uniform interface to this library.
bool IsRandomAccess() const
Determines whether the cipher supports random access.
void Restart()
Restart the hash.
Classes and functions for secure memory allocations.
Interface for one direction (encryption or decryption) of a stream cipher or cipher mode...
AlignedSecByteBlock is a SecBlock<byte, AllocatorWithCleanup<byte, true> > typedef.
bool IsSelfInverting() const
Determines whether the cipher is self-inverting.
Crypto++ library namespace.
Interface for retrieving values given their names.