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.