PQLR
Postquantum Crypto Library by QAPP
ml_kem.h File Reference
#include <pqlr/common/pqlr.h>
#include <pqlr/common/api.h>
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef struct ml_kem_st * ml_kem_t
 ML-KEM algorithm instance handle. More...
 

Enumerations

enum  ml_kem_parameterset_t { ml_kem_512 , ml_kem_768 , ml_kem_1024 , ml_kem_last }
 Possible ML-KEM parameters sets. More...
 

Functions

PQLR_API ml_kem_t ml_kem_new (ml_kem_parameterset_t parameterset)
 Creates ML-KEM instance initialized by parameterset. More...
 
PQLR_API void ml_kem_free (ml_kem_t ml_kem)
 Frees ML-KEM instance and all corresponding resources. More...
 
PQLR_API uint32_t ml_kem_get_initiator_public_length (ml_kem_t ml_kem)
 Obtains initiator's public key length for the current ML-KEM instance. More...
 
PQLR_API uint32_t ml_kem_get_initiator_secret_length (ml_kem_t ml_kem)
 Obtains initiator's secret key length for the current ML-KEM instance. More...
 
PQLR_API uint32_t ml_kem_get_ciphertext_length (ml_kem_t ml_kem)
 Obtains ciphertext length for the current ML-KEM instance. More...
 
PQLR_API uint32_t ml_kem_get_shared_secret_length (ml_kem_t ml_kem)
 Obtains shared secret length for the current ML-KEM instance. More...
 
PQLR_API pqlr_t ml_kem_to_pqlr (ml_kem_t ml_kem)
 Gets pqlr instance linked to this ML-KEM instance. More...
 
PQLR_API ml_kem_t ml_kem_duplicate (const ml_kem_t ml_kem)
 Duplicates context of ML-KEM instance. More...
 
PQLR_API void ml_kem_keygen (const ml_kem_t ml_kem, uint8_t *public_key, uint8_t *secret_key)
 Initial step of key distribution. Generates a key pair for key distribution initiator. More...
 
PQLR_API void ml_kem_key_encap (const ml_kem_t ml_kem, const uint8_t *public_key, uint8_t *ciphertext, uint8_t *session_key)
 Key encapsulation. More...
 
PQLR_API void ml_kem_key_decap (const ml_kem_t ml_kem, const uint8_t *secret_key, const uint8_t *ciphertext, uint8_t *session_key)
 Key decapsulation. More...