Leancrypto 1.6.0
Post-Quantum Cryptographic Library
Loading...
Searching...
No Matches
lc_kyber.h File Reference
#include "ext_headers.h"
Include dependency graph for lc_kyber.h:

Go to the source code of this file.

Data Structures

struct  lc_kyber_sk
 Kyber secret key. More...
struct  lc_kyber_pk
 Kyber public key. More...
struct  lc_kyber_ct
 Kyber ciphertext. More...
struct  lc_kyber_ss
 Kyber shared secret. More...
struct  lc_kyber_x25519_sk
 Kyber secret key. More...
struct  lc_kyber_x25519_pk
 Kyber public key. More...
struct  lc_kyber_x25519_ct
 Kyber ciphertext. More...
struct  lc_kyber_x25519_ss
 Kyber shared secret. More...
struct  lc_kyber_x448_sk
 Kyber secret key. More...
struct  lc_kyber_x448_pk
 Kyber public key. More...
struct  lc_kyber_x448_ct
 Kyber ciphertext. More...
struct  lc_kyber_x448_ss
 Kyber shared secret. More...
union  lc_kyber_sk.key
union  lc_kyber_pk.key
union  lc_kyber_ct.key
union  lc_kyber_ss.key
union  lc_kyber_x25519_sk.key
union  lc_kyber_x25519_pk.key
union  lc_kyber_x25519_ct.key
union  lc_kyber_x25519_ss.key
union  lc_kyber_x448_sk.key
union  lc_kyber_x448_pk.key
union  lc_kyber_x448_ct.key
union  lc_kyber_x448_ss.key

Enumerations

enum  lc_kyber_type { LC_KYBER_UNKNOWN , LC_KYBER_1024 , LC_KYBER_768 , LC_KYBER_512 }

Functions

enum lc_kyber_type lc_kyber_sk_type (const struct lc_kyber_sk *sk)
 Obtain Kyber type from secret key.
enum lc_kyber_type lc_kyber_pk_type (const struct lc_kyber_pk *pk)
 Obtain Kyber type from public key.
enum lc_kyber_type lc_kyber_ct_type (const struct lc_kyber_ct *ct)
 Obtain Kyber type from Kyber ciphertext.
enum lc_kyber_type lc_kyber_ss_type (const struct lc_kyber_ss *ss)
 Obtain Kyber type from shared secret.
LC_PURE unsigned int lc_kyber_sk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber secret key.
LC_PURE unsigned int lc_kyber_pk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber public key.
LC_PURE unsigned int lc_kyber_ct_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber ciphertext.
LC_PURE unsigned int lc_kyber_ss_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber shared secret.
int lc_kyber_sk_load (struct lc_kyber_sk *sk, const uint8_t *src_key, size_t src_key_len)
 Load a Kyber secret key provided with a buffer into the leancrypto data structure.
int lc_kyber_pk_load (struct lc_kyber_pk *pk, const uint8_t *src_key, size_t src_key_len)
 Load a Kyber public key provided with a buffer into the leancrypto data structure.
int lc_kyber_ct_load (struct lc_kyber_ct *ct, const uint8_t *src_key, size_t src_key_len)
 Load a Kyber ciphertext key provided with a buffer into the leancrypto data structure.
int lc_kyber_ss_load (struct lc_kyber_ss *ss, const uint8_t *src_key, size_t src_key_len)
 Load a Kyber shared secret provided with a buffer into the leancrypto data structure.
int lc_kyber_pct (const struct lc_kyber_pk *pk, const struct lc_kyber_sk *sk)
 Pairwise consistency check as per FIPS 203 section 7.1.
int lc_kyber_sk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, struct lc_kyber_sk *sk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_pk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, struct lc_kyber_pk *pk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_ct_ptr (uint8_t **kyber_ct, size_t *kyber_ct_len, struct lc_kyber_ct *ct)
 Obtain the reference to the Kyber ciphertext and its length.
int lc_kyber_ss_ptr (uint8_t **kyber_ss, size_t *kyber_ss_len, struct lc_kyber_ss *ss)
 Obtain the reference to the Kyber shared secret and its length.
int lc_kyber_keypair (struct lc_kyber_pk *pk, struct lc_kyber_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_kyber_type kyber_type)
 Generates public and private key for IND-CCA2-secure Kyber key encapsulation mechanism.
int lc_kyber_keypair_from_seed (struct lc_kyber_pk *pk, struct lc_kyber_sk *sk, const uint8_t *seed, size_t seedlen, enum lc_kyber_type kyber_type)
 Generates Kyber public and private key from a given seed.
int lc_kyber_enc (struct lc_kyber_ct *ct, struct lc_kyber_ss *ss, const struct lc_kyber_pk *pk)
 Key encapsulation.
int lc_kyber_enc_kdf (struct lc_kyber_ct *ct, uint8_t *ss, size_t ss_len, const struct lc_kyber_pk *pk)
 Key encapsulation with KDF applied to shared secret.
int lc_kyber_dec (struct lc_kyber_ss *ss, const struct lc_kyber_ct *ct, const struct lc_kyber_sk *sk)
 Key decapsulation.
int lc_kyber_dec_kdf (uint8_t *ss, size_t ss_len, const struct lc_kyber_ct *ct, const struct lc_kyber_sk *sk)
 Key decapsulation with KDF applied to shared secret.
int lc_kex_uake_initiator_init (struct lc_kyber_pk *pk_e_i, struct lc_kyber_ct *ct_e_i, struct lc_kyber_ss *tk, struct lc_kyber_sk *sk_e, const struct lc_kyber_pk *pk_r)
 Initialize unilaterally authenticated key exchange.
int lc_kex_uake_responder_ss (struct lc_kyber_ct *ct_e_r, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_pk *pk_e_i, const struct lc_kyber_ct *ct_e_i, const struct lc_kyber_sk *sk_r)
 Initiator's shared secret generation.
int lc_kex_uake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_ct *ct_e_r, const struct lc_kyber_ss *tk, const struct lc_kyber_sk *sk_e)
 Responder's shared secret generation.
int lc_kex_ake_initiator_init (struct lc_kyber_pk *pk_e_i, struct lc_kyber_ct *ct_e_i, struct lc_kyber_ss *tk, struct lc_kyber_sk *sk_e, const struct lc_kyber_pk *pk_r)
 Initialize authenticated key exchange.
int lc_kex_ake_responder_ss (struct lc_kyber_ct *ct_e_r_1, struct lc_kyber_ct *ct_e_r_2, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_pk *pk_e_i, const struct lc_kyber_ct *ct_e_i, const struct lc_kyber_sk *sk_r, const struct lc_kyber_pk *pk_i)
 Initiator's shared secret generation.
int lc_kex_ake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_ct *ct_e_r_1, const struct lc_kyber_ct *ct_e_r_2, const struct lc_kyber_ss *tk, const struct lc_kyber_sk *sk_e, const struct lc_kyber_sk *sk_i)
 Responder's shared secret generation.
enum lc_kyber_type lc_kyber_x25519_sk_type (const struct lc_kyber_x25519_sk *sk)
 Obtain Kyber type from secret key.
enum lc_kyber_type lc_kyber_x25519_pk_type (const struct lc_kyber_x25519_pk *pk)
 Obtain Kyber type from public key.
enum lc_kyber_type lc_kyber_x25519_ct_type (const struct lc_kyber_x25519_ct *ct)
 Obtain Kyber type from Kyber ciphertext.
enum lc_kyber_type lc_kyber_x25519_ss_type (const struct lc_kyber_x25519_ss *ss)
 Obtain Kyber type from shared secret.
LC_PURE unsigned int lc_kyber_x25519_sk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber secret key.
LC_PURE unsigned int lc_kyber_x25519_pk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber public key.
LC_PURE unsigned int lc_kyber_x25519_ct_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber ciphertext.
LC_PURE unsigned int lc_kyber_x25519_ss_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber shared secret.
int lc_kyber_x25519_sk_load (struct lc_kyber_x25519_sk *sk, const uint8_t *kyber_src_key, size_t kyber_src_key_len, const uint8_t *x25519_src_key, size_t x25519_src_key_len)
int lc_kyber_x25519_pk_load (struct lc_kyber_x25519_pk *pk, const uint8_t *kyber_src_key, size_t kyber_src_key_len, const uint8_t *x25519_src_key, size_t x25519_src_key_len)
int lc_kyber_x25519_ct_load (struct lc_kyber_x25519_ct *ct, const uint8_t *kyber_src_ct, size_t kyber_src_ct_len, const uint8_t *x25519_rem_pub_key, size_t x25519_rem_pub_len)
int lc_kyber_x25519_ss_load (struct lc_kyber_x25519_ss *ss, const uint8_t *kyber_src_ss, size_t kyber_src_ss_len, const uint8_t *x25519_ss, size_t x25519_ss_len)
int lc_kyber_x25519_sk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, uint8_t **x25519_key, size_t *x25519_key_len, struct lc_kyber_x25519_sk *sk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_x25519_pk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, uint8_t **x25519_key, size_t *x25519_key_len, struct lc_kyber_x25519_pk *pk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_x25519_ct_ptr (uint8_t **kyber_ct, size_t *kyber_ct_len, uint8_t **x25519_key, size_t *x25519_key_len, struct lc_kyber_x25519_ct *ct)
 Obtain the reference to the Kyber ciphertext and its length.
int lc_kyber_x25519_ss_ptr (uint8_t **kyber_ss, size_t *kyber_ss_len, uint8_t **x25519_ss, size_t *x25519_ss_len, struct lc_kyber_x25519_ss *ss)
 Obtain the reference to the Kyber shared secret and its length.
int lc_kyber_x25519_keypair (struct lc_kyber_x25519_pk *pk, struct lc_kyber_x25519_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_kyber_type kyber_type)
 Generates public and private key for IND-CCA2-secure Kyber key encapsulation mechanism.
int lc_kyber_x25519_enc_kdf (struct lc_kyber_x25519_ct *ct, uint8_t *ss, size_t ss_len, const struct lc_kyber_x25519_pk *pk)
 Key encapsulation with KDF applied to shared secret.
int lc_kyber_x25519_dec_kdf (uint8_t *ss, size_t ss_len, const struct lc_kyber_x25519_ct *ct, const struct lc_kyber_x25519_sk *sk)
 Key decapsulation with KDF applied to shared secret.
int lc_kex_x25519_uake_initiator_init (struct lc_kyber_x25519_pk *pk_e_i, struct lc_kyber_x25519_ct *ct_e_i, struct lc_kyber_x25519_ss *tk, struct lc_kyber_x25519_sk *sk_e, const struct lc_kyber_x25519_pk *pk_r)
 Initialize unilaterally authenticated key exchange.
int lc_kex_x25519_uake_responder_ss (struct lc_kyber_x25519_ct *ct_e_r, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x25519_pk *pk_e_i, const struct lc_kyber_x25519_ct *ct_e_i, const struct lc_kyber_x25519_sk *sk_r)
 Initiator's shared secret generation.
int lc_kex_x25519_uake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x25519_ct *ct_e_r, const struct lc_kyber_x25519_ss *tk, const struct lc_kyber_x25519_sk *sk_e)
 Responder's shared secret generation.
int lc_kex_x25519_ake_initiator_init (struct lc_kyber_x25519_pk *pk_e_i, struct lc_kyber_x25519_ct *ct_e_i, struct lc_kyber_x25519_ss *tk, struct lc_kyber_x25519_sk *sk_e, const struct lc_kyber_x25519_pk *pk_r)
 Initialize authenticated key exchange.
int lc_kex_x25519_ake_responder_ss (struct lc_kyber_x25519_ct *ct_e_r_1, struct lc_kyber_x25519_ct *ct_e_r_2, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x25519_pk *pk_e_i, const struct lc_kyber_x25519_ct *ct_e_i, const struct lc_kyber_x25519_sk *sk_r, const struct lc_kyber_x25519_pk *pk_i)
 Initiator's shared secret generation.
int lc_kex_x25519_ake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x25519_ct *ct_e_r_1, const struct lc_kyber_x25519_ct *ct_e_r_2, const struct lc_kyber_x25519_ss *tk, const struct lc_kyber_x25519_sk *sk_e, const struct lc_kyber_x25519_sk *sk_i)
 Responder's shared secret generation.
enum lc_kyber_type lc_kyber_x448_sk_type (const struct lc_kyber_x448_sk *sk)
 Obtain Kyber type from secret key.
enum lc_kyber_type lc_kyber_x448_pk_type (const struct lc_kyber_x448_pk *pk)
 Obtain Kyber type from public key.
enum lc_kyber_type lc_kyber_x448_ct_type (const struct lc_kyber_x448_ct *ct)
 Obtain Kyber type from Kyber ciphertext.
enum lc_kyber_type lc_kyber_x448_ss_type (const struct lc_kyber_x448_ss *ss)
 Obtain Kyber type from shared secret.
LC_PURE unsigned int lc_kyber_x448_sk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber secret key.
LC_PURE unsigned int lc_kyber_x448_pk_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber public key.
LC_PURE unsigned int lc_kyber_x448_ct_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber ciphertext.
LC_PURE unsigned int lc_kyber_x448_ss_size (enum lc_kyber_type kyber_type)
 Return the size of the Kyber shared secret.
int lc_kyber_x448_sk_load (struct lc_kyber_x448_sk *sk, const uint8_t *kyber_src_key, size_t kyber_src_key_len, const uint8_t *x448_src_key, size_t x448_src_key_len)
int lc_kyber_x448_pk_load (struct lc_kyber_x448_pk *pk, const uint8_t *kyber_src_key, size_t kyber_src_key_len, const uint8_t *x448_src_key, size_t x448_src_key_len)
int lc_kyber_x448_ct_load (struct lc_kyber_x448_ct *ct, const uint8_t *kyber_src_ct, size_t kyber_src_ct_len, const uint8_t *x448_rem_pub_key, size_t x448_rem_pub_len)
int lc_kyber_x448_ss_load (struct lc_kyber_x448_ss *ss, const uint8_t *kyber_src_ss, size_t kyber_src_ss_len, const uint8_t *x448_ss, size_t x448_ss_len)
int lc_kyber_x448_sk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, uint8_t **x448_key, size_t *x448_key_len, struct lc_kyber_x448_sk *sk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_x448_pk_ptr (uint8_t **kyber_key, size_t *kyber_key_len, uint8_t **x448_key, size_t *x448_key_len, struct lc_kyber_x448_pk *pk)
 Obtain the reference to the Kyber key and its length.
int lc_kyber_x448_ct_ptr (uint8_t **kyber_ct, size_t *kyber_ct_len, uint8_t **x448_key, size_t *x448_key_len, struct lc_kyber_x448_ct *ct)
 Obtain the reference to the Kyber ciphertext and its length.
int lc_kyber_x448_ss_ptr (uint8_t **kyber_ss, size_t *kyber_ss_len, uint8_t **x448_ss, size_t *x448_ss_len, struct lc_kyber_x448_ss *ss)
 Obtain the reference to the Kyber shared secret and its length.
int lc_kyber_x448_keypair (struct lc_kyber_x448_pk *pk, struct lc_kyber_x448_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_kyber_type kyber_type)
 Generates public and private key for IND-CCA2-secure Kyber key encapsulation mechanism.
int lc_kyber_x448_enc_kdf (struct lc_kyber_x448_ct *ct, uint8_t *ss, size_t ss_len, const struct lc_kyber_x448_pk *pk)
 Key encapsulation with KDF applied to shared secret.
int lc_kyber_x448_dec_kdf (uint8_t *ss, size_t ss_len, const struct lc_kyber_x448_ct *ct, const struct lc_kyber_x448_sk *sk)
 Key decapsulation with KDF applied to shared secret.
int lc_kex_x448_uake_initiator_init (struct lc_kyber_x448_pk *pk_e_i, struct lc_kyber_x448_ct *ct_e_i, struct lc_kyber_x448_ss *tk, struct lc_kyber_x448_sk *sk_e, const struct lc_kyber_x448_pk *pk_r)
 Initialize unilaterally authenticated key exchange.
int lc_kex_x448_uake_responder_ss (struct lc_kyber_x448_ct *ct_e_r, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x448_pk *pk_e_i, const struct lc_kyber_x448_ct *ct_e_i, const struct lc_kyber_x448_sk *sk_r)
 Initiator's shared secret generation.
int lc_kex_x448_uake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x448_ct *ct_e_r, const struct lc_kyber_x448_ss *tk, const struct lc_kyber_x448_sk *sk_e)
 Responder's shared secret generation.
int lc_kex_x448_ake_initiator_init (struct lc_kyber_x448_pk *pk_e_i, struct lc_kyber_x448_ct *ct_e_i, struct lc_kyber_x448_ss *tk, struct lc_kyber_x448_sk *sk_e, const struct lc_kyber_x448_pk *pk_r)
 Initialize authenticated key exchange.
int lc_kex_x448_ake_responder_ss (struct lc_kyber_x448_ct *ct_e_r_1, struct lc_kyber_x448_ct *ct_e_r_2, uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x448_pk *pk_e_i, const struct lc_kyber_x448_ct *ct_e_i, const struct lc_kyber_x448_sk *sk_r, const struct lc_kyber_x448_pk *pk_i)
 Initiator's shared secret generation.
int lc_kex_x448_ake_initiator_ss (uint8_t *shared_secret, size_t shared_secret_len, const uint8_t *kdf_nonce, size_t kdf_nonce_len, const struct lc_kyber_x448_ct *ct_e_r_1, const struct lc_kyber_x448_ct *ct_e_r_2, const struct lc_kyber_x448_ss *tk, const struct lc_kyber_x448_sk *sk_e, const struct lc_kyber_x448_sk *sk_i)
 Responder's shared secret generation.

Data Structure Documentation

◆ lc_kyber_sk

struct lc_kyber_sk

Kyber secret key.

Definition at line 84 of file lc_kyber.h.

Data Fields
union lc_kyber_sk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_pk

struct lc_kyber_pk

Kyber public key.

Definition at line 102 of file lc_kyber.h.

Data Fields
union lc_kyber_pk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_ct

struct lc_kyber_ct

Kyber ciphertext.

Definition at line 120 of file lc_kyber.h.

Data Fields
union lc_kyber_ct.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_ss

struct lc_kyber_ss

Kyber shared secret.

Definition at line 138 of file lc_kyber.h.

Data Fields
union lc_kyber_ss.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x25519_sk

struct lc_kyber_x25519_sk

Kyber secret key.

Definition at line 998 of file lc_kyber.h.

Data Fields
union lc_kyber_x25519_sk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x25519_pk

struct lc_kyber_x25519_pk

Kyber public key.

Definition at line 1016 of file lc_kyber.h.

Data Fields
union lc_kyber_x25519_pk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x25519_ct

struct lc_kyber_x25519_ct

Kyber ciphertext.

Definition at line 1034 of file lc_kyber.h.

Data Fields
union lc_kyber_x25519_ct.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x25519_ss

struct lc_kyber_x25519_ss

Kyber shared secret.

Definition at line 1052 of file lc_kyber.h.

Data Fields
union lc_kyber_x25519_ss.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x448_sk

struct lc_kyber_x448_sk

Kyber secret key.

Definition at line 1740 of file lc_kyber.h.

Data Fields
union lc_kyber_x448_sk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x448_pk

struct lc_kyber_x448_pk

Kyber public key.

Definition at line 1758 of file lc_kyber.h.

Data Fields
union lc_kyber_x448_pk.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x448_ct

struct lc_kyber_x448_ct

Kyber ciphertext.

Definition at line 1776 of file lc_kyber.h.

Data Fields
union lc_kyber_x448_ct.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_x448_ss

struct lc_kyber_x448_ss

Kyber shared secret.

Definition at line 1794 of file lc_kyber.h.

Data Fields
union lc_kyber_x448_ss.key key
enum lc_kyber_type kyber_type

◆ lc_kyber_sk.key

union lc_kyber_sk.key

Definition at line 86 of file lc_kyber.h.

◆ lc_kyber_pk.key

union lc_kyber_pk.key

Definition at line 104 of file lc_kyber.h.

◆ lc_kyber_ct.key

union lc_kyber_ct.key

Definition at line 122 of file lc_kyber.h.

◆ lc_kyber_ss.key

union lc_kyber_ss.key

Definition at line 140 of file lc_kyber.h.

◆ lc_kyber_x25519_sk.key

union lc_kyber_x25519_sk.key

Definition at line 1000 of file lc_kyber.h.

◆ lc_kyber_x25519_pk.key

union lc_kyber_x25519_pk.key

Definition at line 1018 of file lc_kyber.h.

◆ lc_kyber_x25519_ct.key

union lc_kyber_x25519_ct.key

Definition at line 1036 of file lc_kyber.h.

◆ lc_kyber_x25519_ss.key

union lc_kyber_x25519_ss.key

Definition at line 1054 of file lc_kyber.h.

◆ lc_kyber_x448_sk.key

union lc_kyber_x448_sk.key

Definition at line 1742 of file lc_kyber.h.

◆ lc_kyber_x448_pk.key

union lc_kyber_x448_pk.key

Definition at line 1760 of file lc_kyber.h.

◆ lc_kyber_x448_ct.key

union lc_kyber_x448_ct.key

Definition at line 1778 of file lc_kyber.h.

◆ lc_kyber_x448_ss.key

union lc_kyber_x448_ss.key

Definition at line 1796 of file lc_kyber.h.

Enumeration Type Documentation

◆ lc_kyber_type

Enumerator
LC_KYBER_UNKNOWN 
LC_KYBER_1024 

Unknown key type

LC_KYBER_768 

Kyber 1024

LC_KYBER_512 

Kyber 768

Definition at line 46 of file lc_kyber.h.

Function Documentation

◆ lc_kyber_pct()

int lc_kyber_pct ( const struct lc_kyber_pk * pk,
const struct lc_kyber_sk * sk )

Pairwise consistency check as per FIPS 203 section 7.1.

This call should be invoked when importing an encapsulation and decapsulation key pair.

Parameters
[in]pkPublic key (ek)
[in]skSecret key (dk)
Returns
0 on success, < 0 on error

◆ lc_kyber_x25519_ct_load()

int lc_kyber_x25519_ct_load ( struct lc_kyber_x25519_ct * ct,
const uint8_t * kyber_src_ct,
size_t kyber_src_ct_len,
const uint8_t * x25519_rem_pub_key,
size_t x25519_rem_pub_len )

◆ lc_kyber_x25519_pk_load()

int lc_kyber_x25519_pk_load ( struct lc_kyber_x25519_pk * pk,
const uint8_t * kyber_src_key,
size_t kyber_src_key_len,
const uint8_t * x25519_src_key,
size_t x25519_src_key_len )

◆ lc_kyber_x25519_sk_load()

int lc_kyber_x25519_sk_load ( struct lc_kyber_x25519_sk * sk,
const uint8_t * kyber_src_key,
size_t kyber_src_key_len,
const uint8_t * x25519_src_key,
size_t x25519_src_key_len )

◆ lc_kyber_x25519_ss_load()

int lc_kyber_x25519_ss_load ( struct lc_kyber_x25519_ss * ss,
const uint8_t * kyber_src_ss,
size_t kyber_src_ss_len,
const uint8_t * x25519_ss,
size_t x25519_ss_len )

◆ lc_kyber_x448_ct_load()

int lc_kyber_x448_ct_load ( struct lc_kyber_x448_ct * ct,
const uint8_t * kyber_src_ct,
size_t kyber_src_ct_len,
const uint8_t * x448_rem_pub_key,
size_t x448_rem_pub_len )

◆ lc_kyber_x448_pk_load()

int lc_kyber_x448_pk_load ( struct lc_kyber_x448_pk * pk,
const uint8_t * kyber_src_key,
size_t kyber_src_key_len,
const uint8_t * x448_src_key,
size_t x448_src_key_len )

◆ lc_kyber_x448_sk_load()

int lc_kyber_x448_sk_load ( struct lc_kyber_x448_sk * sk,
const uint8_t * kyber_src_key,
size_t kyber_src_key_len,
const uint8_t * x448_src_key,
size_t x448_src_key_len )

◆ lc_kyber_x448_ss_load()

int lc_kyber_x448_ss_load ( struct lc_kyber_x448_ss * ss,
const uint8_t * kyber_src_ss,
size_t kyber_src_ss_len,
const uint8_t * x448_ss,
size_t x448_ss_len )