Get Size Of LMS Keys and Signature States

Get Size Of LMS Keys and Signature States#

Get the size (bytes) for following LMS states: public key, private key and signature.

Syntax#

IppStatus ippsLMSPublicKeyStateGetSize (Ipp32s* pSize, const IppsLMSAlgoType OIDAlgo);

IppStatus ippsLMSPrivateKeyStateGetSize (Ipp32s* pSize, const IppsLMSAlgoType OIDAlgo, Ipp32s extraBufSize);

IppStatus ippsLMSSignatureStateGetSize (Ipp32s* pSize, const IppsLMSAlgoType OIDAlgo);

Include Files#

ippcp.h

Parameters#

pSize

Pointer to the state size.

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.

OIDAlgo

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

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#

ippsLMSPublicKeyStateGetSize gets the size of the public key state that is defined by OIDAlgo.

ippsLMSPrivateKeyStateGetSize gets the size of the private key state.

ippsLMSSignatureStateGetSize gets the size of the signature state.

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

pSize is a NULL pointer.

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.

ippStsLengthErr

extraBufSize < 0.

ippStsSizeWrn

extraBufSize is not a multiple of the OTS parameter n.