Developer Reference

Contents

HMAC_Init

Initializes user-supplied memory as
IppsHMACState
or
IppsHMACState_rmf
context for future use.

Syntax

IppStatus ippsHMAC_Init(const Ipp8u *
pKey
, int
keyLen
, IppsHMACState *
pCtx
,
IppHashAlgId
hashAlg
);
IppStatus ippsHMACInit_rmf(const Ipp8u*
pKey
, int
keyLen
, IppsHMACState_rmf*
pCtx
, const IppsHashMethod*
pMethod
);
Include Files
ippcp.h
Parameters
pKey
Pointer to the user-supplied key.
keyLen
Key length in bytes.
pCtx
Pointer to the
IppsHMACState
or
IppsHMACState_rmf
context being initialized.
hashAlg
Identifier of the hash algorithm.
pMethod
Pointer to the hash method.
Description
The function initializes the memory pointed to by
pCtx
as the
IppsHMACState
or
IppsHMACState_rmf
context. The function also sets up the initial chaining digest value according to the hash algorithm specified by the
hashAlg
or
pMethod
parameter and computes necessary key material from the supplied key
pKey
. The
hashAlg
parameter
can take one of the values listed in table Supported Hash Algorithms.
To get a value for the
pMethod
parameter, call one of the HashMethod functions.
This function has a
reduced memory footprint
version. To learn more, see Reduced Memory Footprint Functions.
Return Values
ippStsNoErr
Indicates no error. Any other value indicates an error or warning.
ippStsNullPtrErr
Indicates an error condition if any of the specified pointers is
NULL
.
ippStsLengthErr
Indicates an error condition if
keyLen
is less than one.
ippStsNotSupportedModeErr
Indicates an error condition if the
hashAlg
parameter does not match any
value of
IppHashAlg
listed in table Supported Hash Algorithms
.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804