DAA is widely used in applications to detect both intentional and accidental unauthorized data modifications. DAA specification can be found in [FIPS PUB 113].
The Intel IPP Data Authentication (DAA) primitive functions are designed for applications to use various DAA schemes based on the set of symmetric cryptography functions described in the Symmetric Cryptography Primitive Functions.
The implementation of each DAA scheme is presented as a set of primitive functions.
The full list of Intel IPP DAA Functions is given is Table “Intel IPP Data Authentication Functions”.
Function Base Name |
Operation |
---|---|
Gets the size of the IppsDAADESState context. |
|
Initializes user-supplied memory as IppsDAADESState context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of IppsDAATDESState context. |
|
Initializes user-supplied memory as IppsDAATDESState context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of the IppsDAARijndael128State context. |
|
Initialize user-supplied memory as IppsDAARijndael128State context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of the IppsDAARijndael192State context. |
|
Initializes user-supplied memory as IppsDAARijndael192State context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of the IppsDAARijndael256State context. |
|
Initializes user-supplied memory as IppsDAARijndael256State context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of the IppsDAABlowfishState context. |
|
Initializes user-supplied memory as IppsDAABlowfishState context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
|
Gets the size of the IppsDAATwofishState context. |
|
Initializes user-supplied memory as IppsDAATwofishState context for future use. |
|
Digests the current input message stream of the specified length. |
|
Completes computation of the DAC value. |
|
Computes the DAC value of the message. |
The primitive implementing a DAA scheme uses the context as the operational vehicle to carry all necessary variables to manage computation of the chaining digest value. For example, the primitive implementing the DAA scheme based on the Rijndael128 block cipher uses ippsDAARijndael128 context.
The function Init (DAARijndael128Init, DAADESInit, and others) initializes the context and sets up the specified initialization vectors. Once initialized, the function Update (DAARijndael128Update, DAADESUpdate, and others) digests the input message stream with the selected hash algorithm till it exhausts all message blocks. The function Final (DAARijndael128Final, DAADESFinal, and others) is designed to pad the partial message block into a final message block with the specified padding scheme, and further uses the hash algorithm to transform the final block into a message digest value.
The following example illustrates how the application code can apply an implemented DAA based on the Rijndael128 block cipher to digest the input message stream:
Call the function DAARijndael128GetSize to get the size required to configure the ippsDAARijndael128State context.
Ensure that the required memory space is properly allocated. With the allocated memory, call the function DAARijndael128Init to set up the initial context state.
Keep calling the function DAARijndael128Update to digest incoming message stream in the queue till its completion.
Call the function DAARijndael128Final for padding the final partial block applying Rijndael128 block cipher and transforming ciphertext block into resultant DAA value.
Call the operating system memory free service function to release the IppsDAARijndaelState context.
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.