Developer Reference

Contents

HMAC_Message

Computes the HMAC value of an entire message.

Syntax

IppStatus ippsHMAC_Message(const Ipp8u *
pMsg
, int
msgLen
, const Ipp8u *
pKey
, int
keyLen
, Ipp8u *
pMD
, int
mdLen
,
IppHashAlgId
hashAlg
);
IppStatus ippsHMACMessage_rmf(const Ipp8u *
pMsg
, int
msgLen
, const Ipp8u *
pKey
, int
keyLen
, Ipp8u *
pMAC
, int
macLen
, const ippsHashMethod *
pMethod
);
Include Files
ippcp.h
Parameters
pMsg
Pointer to the input message.
msgLen
Message length in bytes.
pKey
Pointer to the user-supplied key.
keyLen
Key length in bytes.
pMD
,
pMAC
Pointer to the resultant HMAC value.
mdLen
,
macLen
Specified HMAC length.
hashAlg
Identifier of the hash algorithm.
pMethod
Pointer to the hash method.
Description
The function takes the input secret key
pKey
of the specified key length
keyLen
and applies the keyed hash-based message authentication code scheme to transform the input message into the respective message authentication code
pMD
or
pMAC
of the specified length
mdLen
or
macLen
. The
hashAlg
and
pMethod
parameters define the hash algorithm applied. 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:
  • msgLen
    is less than zero
  • mdLen
    is less than one or greater than the length of the hash value
  • macLen
    is less than one or greater than the length of the hash value
ippsStsNotSupportedModeErr
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