|
static enum lc_kyber_type | lc_kyber_sk_type (const struct lc_kyber_sk *sk) |
| Obtain Kyber type from secret key.
|
|
static enum lc_kyber_type | lc_kyber_pk_type (const struct lc_kyber_pk *pk) |
| Obtain Kyber type from public key.
|
|
static enum lc_kyber_type | lc_kyber_ct_type (const struct lc_kyber_ct *ct) |
| Obtain Kyber type from Kyber ciphertext.
|
|
static enum lc_kyber_type | lc_kyber_ss_type (const struct lc_kyber_ss *ss) |
| Obtain Kyber type from shared secret.
|
|
static LC_PURE unsigned int | lc_kyber_sk_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber secret key.
|
|
static LC_PURE unsigned int | lc_kyber_pk_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber public key.
|
|
static LC_PURE unsigned int | lc_kyber_ct_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber ciphertext.
|
|
static LC_PURE unsigned int | lc_kyber_ss_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber shared secret.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static int | lc_kyber_enc (struct lc_kyber_ct *ct, struct lc_kyber_ss *ss, const struct lc_kyber_pk *pk) |
| Key encapsulation.
|
|
static 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.
|
|
static int | lc_kyber_dec (struct lc_kyber_ss *ss, const struct lc_kyber_ct *ct, const struct lc_kyber_sk *sk) |
| Key decapsulation.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static int | lc_kyber_ies_enc (const struct lc_kyber_pk *pk, struct lc_kyber_ct *ct, const uint8_t *plaintext, uint8_t *ciphertext, size_t datalen, const uint8_t *aad, size_t aadlen, uint8_t *tag, size_t taglen, struct lc_aead_ctx *aead) |
| KyberIES encryption oneshot.
|
|
static int | lc_kyber_ies_enc_init (struct lc_aead_ctx *aead, const struct lc_kyber_pk *pk, struct lc_kyber_ct *ct, const uint8_t *aad, size_t aadlen) |
| KyberIES encryption stream operation initialization.
|
|
static int | lc_kyber_ies_enc_update (struct lc_aead_ctx *aead, const uint8_t *plaintext, uint8_t *ciphertext, size_t datalen) |
| KyberIES encryption stream operation add more data.
|
|
static int | lc_kyber_ies_enc_final (struct lc_aead_ctx *aead, uint8_t *tag, size_t taglen) |
| KyberIES encryption stream operation finalization / integrity test.
|
|
static int | lc_kyber_ies_dec (const struct lc_kyber_sk *sk, const struct lc_kyber_ct *ct, const uint8_t *ciphertext, uint8_t *plaintext, size_t datalen, const uint8_t *aad, size_t aadlen, const uint8_t *tag, size_t taglen, struct lc_aead_ctx *aead) |
| KyberIES decryption oneshot.
|
|
static int | lc_kyber_ies_dec_init (struct lc_aead_ctx *aead, const struct lc_kyber_sk *sk, const struct lc_kyber_ct *ct, const uint8_t *aad, size_t aadlen) |
| KyberIES decryption stream operation initialization.
|
|
static int | lc_kyber_ies_dec_update (struct lc_aead_ctx *aead, const uint8_t *ciphertext, uint8_t *plaintext, size_t datalen) |
| KyberIES decryption stream operation add more data.
|
|
static int | lc_kyber_ies_dec_final (struct lc_aead_ctx *aead, const uint8_t *tag, size_t taglen) |
| KyberIES decryption stream operation finalization / integrity test.
|
|
static enum lc_kyber_type | lc_kyber_x25519_sk_type (const struct lc_kyber_x25519_sk *sk) |
| Obtain Kyber type from secret key.
|
|
static enum lc_kyber_type | lc_kyber_x25519_pk_type (const struct lc_kyber_x25519_pk *pk) |
| Obtain Kyber type from public key.
|
|
static enum lc_kyber_type | lc_kyber_x25519_ct_type (const struct lc_kyber_x25519_ct *ct) |
| Obtain Kyber type from Kyber ciphertext.
|
|
static enum lc_kyber_type | lc_kyber_x25519_ss_type (const struct lc_kyber_x25519_ss *ss) |
| Obtain Kyber type from shared secret.
|
|
static LC_PURE unsigned int | lc_kyber_x25519_sk_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber secret key.
|
|
static LC_PURE unsigned int | lc_kyber_x25519_pk_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber public key.
|
|
static LC_PURE unsigned int | lc_kyber_x25519_ct_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber ciphertext.
|
|
static LC_PURE unsigned int | lc_kyber_x25519_ss_size (enum lc_kyber_type kyber_type) |
| Return the size of the Kyber shared secret.
|
|
static 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) |
|
static 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) |
|
static 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) |
|
static 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) |
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static 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.
|
|
static int | lc_kyber_x25519_ies_enc (const struct lc_kyber_x25519_pk *pk, struct lc_kyber_x25519_ct *ct, const uint8_t *plaintext, uint8_t *ciphertext, size_t datalen, const uint8_t *aad, size_t aadlen, uint8_t *tag, size_t taglen, struct lc_aead_ctx *aead) |
| KyberIES encryption oneshot.
|
|
static int | lc_kyber_x25519_ies_enc_init (struct lc_aead_ctx *aead, const struct lc_kyber_x25519_pk *pk, struct lc_kyber_x25519_ct *ct, const uint8_t *aad, size_t aadlen) |
| KyberIES encryption stream operation initialization.
|
|
static int | lc_kyber_x25519_ies_enc_update (struct lc_aead_ctx *aead, const uint8_t *plaintext, uint8_t *ciphertext, size_t datalen) |
| KyberIES encryption stream operation add more data.
|
|
static int | lc_kyber_x25519_ies_enc_final (struct lc_aead_ctx *aead, uint8_t *tag, size_t taglen) |
| KyberIES encryption stream operation finalization / integrity test.
|
|
static int | lc_kyber_x25519_ies_dec (const struct lc_kyber_x25519_sk *sk, const struct lc_kyber_x25519_ct *ct, const uint8_t *ciphertext, uint8_t *plaintext, size_t datalen, const uint8_t *aad, size_t aadlen, const uint8_t *tag, size_t taglen, struct lc_aead_ctx *aead) |
| KyberIES decryption oneshot.
|
|
static int | lc_kyber_x25519_ies_dec_init (struct lc_aead_ctx *aead, const struct lc_kyber_x25519_sk *sk, const struct lc_kyber_x25519_ct *ct, const uint8_t *aad, size_t aadlen) |
| KyberIES decryption stream operation initialization.
|
|
static int | lc_kyber_x25519_ies_dec_update (struct lc_aead_ctx *aead, const uint8_t *ciphertext, uint8_t *plaintext, size_t datalen) |
| KyberIES decryption stream operation add more data.
|
|
static int | lc_kyber_x25519_ies_dec_final (struct lc_aead_ctx *aead, const uint8_t *tag, size_t taglen) |
| KyberIES decryption stream operation finalization / integrity test.
|
|