Leancrypto 0.12.0
Post-Quantum Cryptographic Library
|
#include "ext_headers.h"
Go to the source code of this file.
Data Structures | |
struct | lc_dilithium_sk |
Dilithium secret key. More... | |
struct | lc_dilithium_pk |
Dilithium public key. More... | |
struct | lc_dilithium_sig |
Dilithium signature. More... | |
struct | lc_dilithium_ed25519_sk |
Dilithium secret key. More... | |
struct | lc_dilithium_ed25519_pk |
Dilithium public key. More... | |
struct | lc_dilithium_ed25519_sig |
Dilithium signature. More... | |
union | lc_dilithium_sk.key |
union | lc_dilithium_pk.key |
union | lc_dilithium_sig.sig |
union | lc_dilithium_ed25519_sk.key |
union | lc_dilithium_ed25519_pk.key |
union | lc_dilithium_ed25519_sig.sig |
Enumerations | |
enum | lc_dilithium_type { LC_DILITHIUM_UNKNOWN , LC_DILITHIUM_87 , LC_DILITHIUM_65 , LC_DILITHIUM_44 } |
Functions | |
static int | lc_dilithium_ctx_alloc (struct lc_dilithium_ctx **ctx) |
Allocates Dilithium context on heap. | |
static void | lc_dilithium_ctx_zero_free (struct lc_dilithium_ctx *ctx) |
Zeroizes and frees Dilithium context on heap. | |
static void | lc_dilithium_ctx_zero (struct lc_dilithium_ctx *ctx) |
Zeroizes Dilithium context either on heap or on stack. | |
static enum lc_dilithium_type | lc_dilithium_sk_type (const struct lc_dilithium_sk *sk) |
Obtain Dilithium type from secret key. | |
static enum lc_dilithium_type | lc_dilithium_pk_type (const struct lc_dilithium_pk *pk) |
Obtain Dilithium type from public key. | |
static enum lc_dilithium_type | lc_dilithium_sig_type (const struct lc_dilithium_sig *sig) |
Obtain Dilithium type from signature. | |
static LC_PURE unsigned int | lc_dilithium_sk_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium secret key. | |
static LC_PURE unsigned int | lc_dilithium_pk_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium public key. | |
static LC_PURE unsigned int | lc_dilithium_sig_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium signature. | |
static int | lc_dilithium_sk_load (struct lc_dilithium_sk *sk, const uint8_t *src_key, size_t src_key_len) |
Load a Dilithium secret key provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_pk_load (struct lc_dilithium_pk *pk, const uint8_t *src_key, size_t src_key_len) |
Load a Dilithium public key provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_sig_load (struct lc_dilithium_sig *sig, const uint8_t *src_sig, size_t src_sig_len) |
Load a Dilithium signature provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_sk_ptr (uint8_t **dilithium_key, size_t *dilithium_key_len, struct lc_dilithium_sk *sk) |
Obtain the reference to the Dilithium key and its length. | |
static int | lc_dilithium_pk_ptr (uint8_t **dilithium_key, size_t *dilithium_key_len, struct lc_dilithium_pk *pk) |
Obtain the reference to the Dilithium key and its length. | |
static int | lc_dilithium_sig_ptr (uint8_t **dilithium_sig, size_t *dilithium_sig_len, struct lc_dilithium_sig *sig) |
Obtain the reference to the Dilithium signature and its length. | |
static int | lc_dilithium_keypair (struct lc_dilithium_pk *pk, struct lc_dilithium_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_dilithium_type dilithium_type) |
Generates Dilithium public and private key. | |
static int | lc_dilithium_keypair_from_seed (struct lc_dilithium_pk *pk, struct lc_dilithium_sk *sk, const uint8_t *seed, size_t seedlen, enum lc_dilithium_type dilithium_type) |
Generates Dilithium public and private key from a given seed. | |
static int | lc_dilithium_sign (struct lc_dilithium_sig *sig, const uint8_t *m, size_t mlen, const struct lc_dilithium_sk *sk, struct lc_rng_ctx *rng_ctx) |
Computes signature in one shot. | |
static int | lc_dilithium_sign_init (struct lc_dilithium_ctx *ctx, const struct lc_dilithium_sk *sk) |
Initializes a signature operation. | |
static int | lc_dilithium_sign_update (struct lc_dilithium_ctx *ctx, const uint8_t *m, size_t mlen) |
Add more data to an already initialized signature state. | |
static int | lc_dilithium_sign_final (struct lc_dilithium_sig *sig, struct lc_dilithium_ctx *ctx, const struct lc_dilithium_sk *sk, struct lc_rng_ctx *rng_ctx) |
Computes signature. | |
static int | lc_dilithium_verify (const struct lc_dilithium_sig *sig, const uint8_t *m, size_t mlen, const struct lc_dilithium_pk *pk) |
Verifies signature in one shot. | |
static int | lc_dilithium_verify_init (struct lc_dilithium_ctx *ctx, const struct lc_dilithium_pk *pk) |
Initializes a signature verification operation. | |
static int | lc_dilithium_verify_update (struct lc_dilithium_ctx *ctx, const uint8_t *m, size_t mlen) |
Add more data to an already initialized signature state. | |
static int | lc_dilithium_verify_final (const struct lc_dilithium_sig *sig, struct lc_dilithium_ctx *ctx, const struct lc_dilithium_pk *pk) |
Verifies signature. | |
static int | lc_dilithium_ed25519_ctx_alloc (struct lc_dilithium_ed25519_ctx **ctx) |
Allocates Dilithium-ED25519 context on heap. | |
static void | lc_dilithium_ed25519_ctx_zero_free (struct lc_dilithium_ed25519_ctx *ctx) |
Zeroizes and frees Dilithium-ED25519 context on heap. | |
static void | lc_dilithium_ed25519_ctx_zero (struct lc_dilithium_ed25519_ctx *ctx) |
Zeroizes Dilithium-ED25519 context either on heap or on stack. | |
static enum lc_dilithium_type | lc_dilithium_ed25519_sk_type (const struct lc_dilithium_ed25519_sk *sk) |
Obtain Dilithium type from secret key. | |
static enum lc_dilithium_type | lc_dilithium_ed25519_pk_type (const struct lc_dilithium_ed25519_pk *pk) |
Obtain Dilithium type from public key. | |
static enum lc_dilithium_type | lc_dilithium_ed25519_sig_type (const struct lc_dilithium_ed25519_sig *sig) |
Obtain Dilithium type from signature. | |
static LC_PURE unsigned int | lc_dilithium_ed25519_sk_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium secret key. | |
static LC_PURE unsigned int | lc_dilithium_ed25519_pk_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium public key. | |
static LC_PURE unsigned int | lc_dilithium_ed25519_sig_size (enum lc_dilithium_type dilithium_type) |
Return the size of the Dilithium signature. | |
static int | lc_dilithium_ed25519_sk_load (struct lc_dilithium_ed25519_sk *sk, const uint8_t *dilithium_src_key, size_t dilithium_src_key_len, const uint8_t *ed25519_src_key, size_t ed25519_src_key_len) |
Load a Dilithium secret key provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_ed25519_pk_load (struct lc_dilithium_ed25519_pk *pk, const uint8_t *dilithium_src_key, size_t dilithium_src_key_len, const uint8_t *ed25519_src_key, size_t ed25519_src_key_len) |
Load a Dilithium public key provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_ed25519_sig_load (struct lc_dilithium_ed25519_sig *sig, const uint8_t *dilithium_src_sig, size_t dilithium_src_sig_len, const uint8_t *ed25519_src_sig, size_t ed25519_src_sig_len) |
Load a Dilithium signature provided with a buffer into the leancrypto data structure. | |
static int | lc_dilithium_ed25519_sk_ptr (uint8_t **dilithium_key, size_t *dilithium_key_len, uint8_t **ed25519_key, size_t *ed25519_key_len, struct lc_dilithium_ed25519_sk *sk) |
Obtain the reference to the Dilithium key and its length. | |
static int | lc_dilithium_ed25519_pk_ptr (uint8_t **dilithium_key, size_t *dilithium_key_len, uint8_t **ed25519_key, size_t *ed25519_key_len, struct lc_dilithium_ed25519_pk *pk) |
Obtain the reference to the Dilithium key and its length. | |
static int | lc_dilithium_ed25519_sig_ptr (uint8_t **dilithium_sig, size_t *dilithium_sig_len, uint8_t **ed25519_sig, size_t *ed25519_sig_len, struct lc_dilithium_ed25519_sig *sig) |
Obtain the reference to the Dilithium signature and its length. | |
static int | lc_dilithium_ed25519_keypair (struct lc_dilithium_ed25519_pk *pk, struct lc_dilithium_ed25519_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_dilithium_type dilithium_type) |
Generates Dilithium public and private key. | |
static int | lc_dilithium_ed25519_sign (struct lc_dilithium_ed25519_sig *sig, const uint8_t *m, size_t mlen, const struct lc_dilithium_ed25519_sk *sk, struct lc_rng_ctx *rng_ctx) |
Computes signature in one shot. | |
static int | lc_dilithium_ed25519_sign_init (struct lc_dilithium_ed25519_ctx *ctx, const struct lc_dilithium_ed25519_sk *sk) |
Initializes signature operation in stream mode. | |
static int | lc_dilithium_ed25519_sign_update (struct lc_dilithium_ed25519_ctx *ctx, const uint8_t *m, size_t mlen) |
Updates signature in stream mode. | |
static int | lc_dilithium_ed25519_sign_final (struct lc_dilithium_ed25519_sig *sig, struct lc_dilithium_ed25519_ctx *ctx, const struct lc_dilithium_ed25519_sk *sk, struct lc_rng_ctx *rng_ctx) |
Computes signature in stream mode. | |
static int | lc_dilithium_ed25519_verify (const struct lc_dilithium_ed25519_sig *sig, const uint8_t *m, size_t mlen, const struct lc_dilithium_ed25519_pk *pk) |
Verifies signature in one shot. | |
static int | lc_dilithium_ed25519_verify_init (struct lc_dilithium_ed25519_ctx *ctx, const struct lc_dilithium_ed25519_pk *pk) |
Initializes signature verification operation in stream mode. | |
static int | lc_dilithium_ed25519_verify_update (struct lc_dilithium_ed25519_ctx *ctx, const uint8_t *m, size_t mlen) |
Updates signature verification in stream mode. | |
static int | lc_dilithium_ed25519_verify_final (const struct lc_dilithium_ed25519_sig *sig, struct lc_dilithium_ed25519_ctx *ctx, const struct lc_dilithium_ed25519_pk *pk) |
Verifies signature in stream mode. | |
struct lc_dilithium_sk |
Dilithium secret key.
Definition at line 99 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_sk.key | key |
struct lc_dilithium_pk |
Dilithium public key.
Definition at line 117 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_pk.key | key |
struct lc_dilithium_sig |
Dilithium signature.
Definition at line 135 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_sig.sig | sig |
struct lc_dilithium_ed25519_sk |
Dilithium secret key.
Definition at line 1162 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_ed25519_sk.key | key |
struct lc_dilithium_ed25519_pk |
Dilithium public key.
Definition at line 1180 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_ed25519_pk.key | key |
struct lc_dilithium_ed25519_sig |
Dilithium signature.
Definition at line 1198 of file lc_dilithium.h.
Data Fields | ||
---|---|---|
enum lc_dilithium_type | dilithium_type | |
union lc_dilithium_ed25519_sig.sig | sig |
union lc_dilithium_sk.key |
Definition at line 101 of file lc_dilithium.h.
union lc_dilithium_pk.key |
Definition at line 119 of file lc_dilithium.h.
union lc_dilithium_sig.sig |
Definition at line 137 of file lc_dilithium.h.
union lc_dilithium_ed25519_sk.key |
Definition at line 1164 of file lc_dilithium.h.
union lc_dilithium_ed25519_pk.key |
Definition at line 1182 of file lc_dilithium.h.
union lc_dilithium_ed25519_sig.sig |
Definition at line 1200 of file lc_dilithium.h.
enum lc_dilithium_type |
Enumerator | |
---|---|
LC_DILITHIUM_UNKNOWN | Unknown key type |
LC_DILITHIUM_87 | Dilithium 87 |
LC_DILITHIUM_65 | Dilithium 65 |
LC_DILITHIUM_44 | Dilithium 44 |
Definition at line 54 of file lc_dilithium.h.