Crypto++
8.6
Free C++ class library of cryptographic schemes

VMAC message authentication code. More...
Static Public Member Functions  
static std::string  StaticAlgorithmName () 
Additional Inherited Members  
Public Types inherited from IteratedHashBase< word64, MessageAuthenticationCode >  
typedef word64  HashWordType 
Public Types inherited from SimpleKeyingInterface  
enum  IV_Requirement { UNIQUE_IV = 0, RANDOM_IV, UNPREDICTABLE_RANDOM_IV, INTERNALLY_GENERATED_IV, NOT_RESYNCHRONIZABLE } 
Secure IVs requirements as enumerated values. More...  
Public Member Functions inherited from SimpleKeyingInterfaceImpl< VMAC_Base, SameKeyLengthAs< T_BlockCipher, SimpleKeyingInterface::UNIQUE_IV, T_BlockCipher::BLOCKSIZE > >  
size_t  MinKeyLength () const 
The minimum key length used by the algorithm. More...  
size_t  MaxKeyLength () const 
The maximum key length used by the algorithm. More...  
size_t  DefaultKeyLength () const 
The default key length used by the algorithm. More...  
size_t  GetValidKeyLength (size_t keylength) const 
Provides a valid key length for the algorithm. More...  
SimpleKeyingInterface::IV_Requirement  IVRequirement () const 
The default IV requirements for the algorithm. More...  
unsigned int  IVSize () const 
The initialization vector length for the algorithm. More...  
Public Member Functions inherited from VMAC_Base  
std::string  AlgorithmName () const 
Provides the name of this algorithm. More...  
std::string  AlgorithmProvider () const 
Retrieve the provider of this algorithm. More...  
unsigned int  IVSize () const 
Returns length of the IV accepted by this object. More...  
unsigned int  MinIVLength () const 
Provides the minimum size of an IV. More...  
void  Resynchronize (const byte *nonce, int length=1) 
Resynchronize with an IV. More...  
void  GetNextIV (RandomNumberGenerator &rng, byte *IV) 
Retrieves a secure IV for the next message. More...  
unsigned int  DigestSize () const 
Provides the digest size of the hash. More...  
void  UncheckedSetKey (const byte *userKey, unsigned int keylength, const NameValuePairs ¶ms) 
Sets the key for this object without performing parameter validation. More...  
void  TruncatedFinal (byte *mac, size_t size) 
Computes the hash of the current message. More...  
unsigned int  BlockSize () const 
Provides the block size of the compression function. More...  
ByteOrder  GetByteOrder () const 
unsigned int  OptimalDataAlignment () const 
Provides input and output data alignment for optimal performance. More...  
Public Member Functions inherited from IteratedHashBase< word64, MessageAuthenticationCode >  
IteratedHashBase ()  
Construct an IteratedHashBase.  
unsigned int  OptimalBlockSize () const 
Provides the input block size most efficient for this cipher. More...  
unsigned int  OptimalDataAlignment () const 
Provides input and output data alignment for optimal performance. More...  
void  Update (const byte *input, size_t length) 
Updates a hash with additional input. More...  
byte *  CreateUpdateSpace (size_t &size) 
Requests space which can be written into by the caller. More...  
void  Restart () 
Restart the hash. More...  
void  TruncatedFinal (byte *digest, size_t digestSize) 
Computes the hash of the current message. More...  
virtual std::string  AlgorithmProvider () const 
Retrieve the provider of this algorithm. More...  
Public Member Functions inherited from SimpleKeyingInterface  
virtual size_t  MinKeyLength () const =0 
Returns smallest valid key length. More...  
virtual size_t  MaxKeyLength () const =0 
Returns largest valid key length. More...  
virtual size_t  DefaultKeyLength () const =0 
Returns default key length. More...  
virtual bool  IsValidKeyLength (size_t keylength) const 
Returns whether keylength is a valid key length. More...  
virtual void  SetKey (const byte *key, size_t length, const NameValuePairs ¶ms=g_nullNameValuePairs) 
Sets or reset the key of this object. More...  
void  SetKeyWithRounds (const byte *key, size_t length, int rounds) 
Sets or reset the key of this object. More...  
void  SetKeyWithIV (const byte *key, size_t length, const byte *iv, size_t ivLength) 
Sets or reset the key of this object. More...  
void  SetKeyWithIV (const byte *key, size_t length, const byte *iv) 
Sets or reset the key of this object. More...  
virtual IV_Requirement  IVRequirement () const =0 
Minimal requirement for secure IVs. More...  
bool  IsResynchronizable () const 
Determines if the object can be resynchronized. More...  
bool  CanUseRandomIVs () const 
Determines if the object can use random IVs. More...  
bool  CanUsePredictableIVs () const 
Determines if the object can use random but possibly predictable IVs. More...  
bool  CanUseStructuredIVs () const 
Determines if the object can use structured IVs. More...  
unsigned int  DefaultIVLength () const 
Provides the default size of an IV. More...  
virtual unsigned int  MaxIVLength () const 
Provides the maximum size of an IV. More...  
Public Member Functions inherited from HashTransformation  
HashTransformation &  Ref () 
Provides a reference to this object. More...  
virtual void  Final (byte *digest) 
Computes the hash of the current message. More...  
unsigned int  TagSize () const 
Provides the tag size of the hash. More...  
virtual unsigned int  OptimalBlockSize () const 
Provides the input block size most efficient for this hash. More...  
virtual void  CalculateDigest (byte *digest, const byte *input, size_t length) 
Updates the hash with additional input and computes the hash of the current message. More...  
virtual bool  Verify (const byte *digest) 
Verifies the hash of the current message. More...  
virtual bool  VerifyDigest (const byte *digest, const byte *input, size_t length) 
Updates the hash with additional input and verifies the hash of the current message. More...  
virtual void  CalculateTruncatedDigest (byte *digest, size_t digestSize, const byte *input, size_t length) 
Updates the hash with additional input and computes the hash of the current message. More...  
virtual bool  TruncatedVerify (const byte *digest, size_t digestLength) 
Verifies the hash of the current message. More...  
virtual bool  VerifyTruncatedDigest (const byte *digest, size_t digestLength, const byte *input, size_t length) 
Updates the hash with additional input and verifies the hash of the current message. More...  
Public Member Functions inherited from Algorithm  
Algorithm (bool checkSelfTestStatus=true)  
Interface for all crypto algorithms. More...  
Public Member Functions inherited from Clonable  
virtual Clonable *  Clone () const 
Copies this object. More...  
VMAC message authentication code.
T_BlockCipher  block cipher 
T_DigestBitSize  digest size, in bits 
VMAC is a block cipherbased message authentication code algorithm using a universal hash proposed by Ted Krovetz and Wei Dai in April 2007. The algorithm was designed for high performance backed by a formal analysis.
The implementation is based on Ted Krovetz's public domain vmac.c and draftkrovetzvmac01.txt.