PQLR
Postquantum Crypto Library by QAPP
kem.h File Reference
#include <pqlr/common/alg.h>
#include <stddef.h>
#include <stdlib.h>

Go to the source code of this file.

Typedefs

typedef struct pqlr_kem_st * pqlr_kem
 PQLR KEM algorithm instance handle. More...
 

Functions

PQLR_API size_t pqlr_kem_num_algs (void)
 Obtains the number of available PQLR KEM algorithms. More...
 
PQLR_API size_t pqlr_kem_get_algs (const char **algs, size_t count)
 Fills the provided buffer with names of available KEM algorithms. More...
 
PQLR_API pqlr_kem pqlr_kem_new (const pqlr_alg alg)
 Creates pqlr_kem instance initialized by alg. More...
 
PQLR_API void pqlr_kem_free (pqlr_kem kem)
 Frees pqlr_kem instance and all corresponding resources. More...
 
PQLR_API pqlr_kem pqlr_kem_duplicate (const pqlr_kem kem)
 duplicates the context of pqlr_kem algorithm More...
 
PQLR_API uint32_t pqlr_kem_get_initiator_public_length (const pqlr_kem kem)
 Obtains initiator's public key length for the current pqlr_kem instance. More...
 
PQLR_API uint32_t pqlr_kem_get_initiator_secret_length (const pqlr_kem kem)
 Obtains initiator's secret key length for the current pqlr_kem instance. More...
 
PQLR_API uint32_t pqlr_kem_get_ciphertext_length (const pqlr_kem kem)
 Obtains ciphertext (request) length for the current pqlr_kem instance. More...
 
PQLR_API uint32_t pqlr_kem_get_shared_secret_length (const pqlr_kem kem)
 Obtains shared secret (key) length for the current pqlr_kem instance. More...
 
PQLR_API int pqlr_kem_keygen (const pqlr_kem kem, uint8_t *pk, uint8_t *sk)
 Initial step of key distribution. Generates a key pair for key distribution initiator. More...
 
PQLR_API int pqlr_kem_encap (const pqlr_kem kem, const uint8_t *pk, uint8_t *ciphertext, uint8_t *session_key)
 Second step of key distribution. Encapsulates key on the responder side. More...
 
PQLR_API int pqlr_kem_decap (const pqlr_kem kem, const uint8_t *sk, const uint8_t *ciphertext, uint8_t *session_key)
 Last step of key distribution. Decapsulates key on the initiator side. More...