ippsMLKEM_Encaps#
Uses the encapsulation key to generate a shared secret key and an associated ciphertext.
Syntax#
IppStatus ippsMLKEM_Encaps(const Ipp8u* pEncKey, Ipp8u* pCipherText, Ipp8u* pSharedSecret,
IppsMLKEMState* pMLKEMCtx, Ipp8u* pScratchBuffer,
IppBitSupplier rndFunc, void* pRndParam);
Include Files#
ippcp.h
Parameters#
pEncKey |
Pointer to the encapsulation key of |
pCipherText |
Pointer to the produced ciphertext of |
pSharedSecret |
Pointer to the produced shared secret of |
pMLKEMCtx |
Pointer to the ML-KEM context. |
pScratchBuffer |
Pointer to the working buffer of size queried ippsMLKEM_EncapsBufferGetSize. |
rndFunc |
Optional function pointer to generate random numbers, can be |
pRndParam |
Optional parameters for |
Description#
The function generates a shared secret key and an associated ciphertext using the provided encapsulation key. The size of the output parameters depends on the selected scheme type and can be obtained using ippsMLKEM_GetInfo function. The working buffer should be allocated with the size not less than provided by ippsMLKEM_EncapsBufferGetSize function.
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.
Note
Important
The API family is supported in experimental mode. To use the functions, users need to define
the IPPCP_PREVIEW_ML_KEM
macro before including the ippcp.h
header file. See
Preview Features for more details.
Return Values#
ippStsNoErr |
Indicates no error. Any other value indicates an error or warning. |
ippStsNullPtrErr |
Any of the input pointers is |
ippStsContextMatchErr |
|
ippStsMemAllocErr |
An internal functional error. If this output status appears, update to the latest version of the library or contact Intel. |
ippStsNotSupportedModeErr |
Unsupported |
ippStsErr |
Random bit sequence can’t be generated. |
An error that may be returned by |
Problems with the user-defined random number generator. |