Initialize LMS Key Pair State

Initialize LMS Key Pair State#

Syntax#

IppStatus ippsLMSInitKeyPair (const IppsLMSAlgoType OIDAlgo,
                              Ipp32s extraBufSize,
                              IppsLMSPrivateKeyState* pPrvKey,
                              IppsLMSPublicKeyState* pPubKey);

Include Files#

ippcp.h

Parameters#

OIDAlgo

LMS Algorithm ID. It defines a set of LMS parameters. See Supported LMS Algorithms for more information.

extraBufSize

Size of extra buffer allocated as part of the private key state. It is useful for storing tree nodes that are near the root. The larger this value, the less execution time for signature generation.

pPrvKey

Pointer to the IppsLMSPrivateKeyState context. Size is greater or equal to the value returned by the ippsLMSPrivateKeyStateGetSize function.

pPubKey

Pointer to the IppsLMSPublicKeyState context. Size is greater or equal to the value returned by the ippsLMSPublicKeyStateGetSize function.

Note

extraBufSize must be a multiple of the OTS parameter n. If it is not, the value will be reduced to the nearest lower multiple of n. Example: if extraBufSize == 3 * n + 2 then extraBufSize == 3 * n will be used inside the implementation and the function will output the ippStsSizeWrn warning status.

Description#

This function initializes states for private and public keys.

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

pPrvKey or pPubKey is a NULL pointer.

ippStsLengthErr

extraBufSize < 0.

ippStsBadArgErr

OIDAlgo.lmotsOIDAlgo < the minimum value for IppsLMOTSAlgo, OIDAlgo.lmotsOIDAlgo > the maximum value for IppsLMOTSAlgo, OIDAlgo.prmLmsAlg < the minimum value for IppsLMSAlgo or OIDAlgo.prmLmsAlg > the maximum value for IppsLMSAlgo.