XMSS Signature Generation

XMSS Signature Generation#

Performs the XMSS signature generation.

Syntax#

IppStatus ippsXMSSSign (const Ipp8u* pMsg,
                        const Ipp32s msgLen,
                        IppsXMSSPrivateKeyState* pPrvKey,
                        IppsXMSSSignatureState* pSign,
                        Ipp8u* pBuffer);

Include Files#

ippcp.h

Parameters#

pMsg

Pointer to the array of messages that are signed.

msgLen

Message length.

pPrvKey

Pointer to the initialized IppsXMSSPrivateKeyState context. Size is greater or equal to the value returned by ippsXMSSPrivateKeyStateGetSize.

pSign

Pointer to the IppsXMSSSignatureState context. Size is greater or equal to the value returned by ippsXMSSSignatureStateGetSize.

pBuffer

Pointer to the temporary buffer. Size is greater or equal to the value returned by ippsXMSSSignBufferGetSize.

Description#

This function signs the message with the XMSS algorithm.

pSign is an output parameter.

Note

Important

This is a Preview Feature. You need to enable the IPPCP_PREVIEW_XMSS macro to use the feature.

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.

ippStsLengthErr

msgLen < 1 or msgLen < IPP_MAX_32S - (n + 5 * n + len + key_gen_size), where n, len are WOTS+ parameters`` and key_gen_size is the value returned by ippsXMSSKeyGenBufferGetSize.

ippStsOutOfRangeErr

Index of the current secret key is greater than the number of secret keys.