LMS Signature Generation#
Performs the LMS signature generation.
Syntax#
IppStatus ippsLMSSign (const Ipp8u* pMsg,
const Ipp32s msgLen,
IppsLMSPrivateKeyState* pPrvKey,
IppsLMSSignatureState* pSign,
IppBitSupplier rndFunc,
void* pRndParam,
Ipp8u* pBuffer);
Include Files#
ippcp.h
Parameters#
pMsg |
Pointer to the message that is signed. |
msgLen |
Message length in bytes. |
pPrvKey |
Pointer to the initialized |
pSign |
Pointer to the initialized |
rndFunc |
Pointer to the random number generator function that is used for private key generation.
The function should be defined as:
|
pRndParam |
Pointer to the user-defined parameter for the random number generator function. It can be a NULL pointer. |
pBuffer |
Pointer to the temporary buffer. Size is greater or equal to the value returned by the ippsLMSSignBufferGetSize function. |
Description#
This function signs the message with the LMS algorithm.
This function uses internally the random number generator (RNG) provided by
the user through the rndFunc parameter, please see
User’s Implementation of a RNG
for more information regarding creation the customer’s defined RNG object.
If rndFunc is NULL, the internal default random number generator
based on RDRAND hardware instruction is used.
pSign is an output parameter.
Note
Important
You need to enable the IPPCP_PREVIEW_LMS macro to use the feature.
For more information, see Preview Features.
Return Values#
ippStsNoErr |
Indicates no error. All single operations executed without errors. Any other value indicates an error or warning. |
ippStsNullPtrErr |
Any of the input parameters is a NULL pointer. |
ippStsContextMatchErr |
|
ippStsBadArgErr |
wrong LMS or LMOTS parameters. |
ippStsOutOfRangeErr |
private key will not be valid any longer after executing the function
and new keys need to be generated again using |
ippStsLengthErr |
|