|
Leancrypto 1.6.0
Post-Quantum Cryptographic Library
|
#include "ext_headers.h"Go to the source code of this file.
Data Structures | |
| struct | lc_sphincs_sk |
| Sphincs secret key. More... | |
| struct | lc_sphincs_pk |
| Sphincs public key. More... | |
| struct | lc_sphincs_sig |
| Sphincs signature. More... | |
| union | lc_sphincs_sk.key |
| union | lc_sphincs_pk.key |
| union | lc_sphincs_sig.sig |
Enumerations | |
| enum | lc_sphincs_type { LC_SPHINCS_UNKNOWN , LC_SPHINCS_SHAKE_256s , LC_SPHINCS_SHAKE_256f , LC_SPHINCS_SHAKE_192s , LC_SPHINCS_SHAKE_192f , LC_SPHINCS_SHAKE_128s , LC_SPHINCS_SHAKE_128f } |
Functions | |
| int | lc_sphincs_ctx_alloc (struct lc_sphincs_ctx **ctx) |
| Allocates Sphincs context on heap. | |
| void | lc_sphincs_ctx_zero_free (struct lc_sphincs_ctx *ctx) |
| Zeroizes and frees Sphincs context on heap. | |
| void | lc_sphincs_ctx_zero (struct lc_sphincs_ctx *ctx) |
| Zeroizes Sphincs context either on heap or on stack. | |
| void | lc_sphincs_ctx_internal (struct lc_sphincs_ctx *ctx) |
| Mark the Sphincs context to execute SLH-DSA.Sign_internal / SLH-DSA.Verify_internal. | |
| void | lc_sphincs_ctx_hash (struct lc_sphincs_ctx *ctx, const struct lc_hash *hash) |
| Set the hash type that was used for pre-hashing the message. The message digest is used with the HashSLH-DSA. The message digest is to be provided via the message pointer in the sign/verify APIs. | |
| void | lc_sphincs_ctx_userctx (struct lc_sphincs_ctx *ctx, const uint8_t *userctx, size_t userctxlen) |
| Specify the optional user context string to be applied with the Sphincs signature operation. | |
| enum lc_sphincs_type | lc_sphincs_sk_type (const struct lc_sphincs_sk *sk) |
| Obtain Sphincs type from secret key. | |
| enum lc_sphincs_type | lc_sphincs_pk_type (const struct lc_sphincs_pk *pk) |
| Obtain Sphincs type from public key. | |
| enum lc_sphincs_type | lc_sphincs_sig_type (const struct lc_sphincs_sig *sig) |
| Obtain Sphincs type from signature. | |
| LC_PURE unsigned int | lc_sphincs_sk_size (enum lc_sphincs_type sphincs_type) |
| Return the size of the Sphincs secret key. | |
| LC_PURE unsigned int | lc_sphincs_pk_size (enum lc_sphincs_type sphincs_type) |
| Return the size of the Sphincs public key. | |
| LC_PURE unsigned int | lc_sphincs_sig_size (enum lc_sphincs_type sphincs_type) |
| Return the size of the Sphincs signature. | |
| int | lc_sphincs_sk_load (struct lc_sphincs_sk *sk, const uint8_t *src_key, size_t src_key_len) |
| Load a Sphincs secret key provided with a buffer into the leancrypto data structure. | |
| int | lc_sphincs_sk_set_keytype_fast (struct lc_sphincs_sk *sk) |
| Set Sphincs key type to fast. | |
| int | lc_sphincs_sk_set_keytype_small (struct lc_sphincs_sk *sk) |
| Set Sphincs key type to small. | |
| int | lc_sphincs_pk_load (struct lc_sphincs_pk *pk, const uint8_t *src_key, size_t src_key_len) |
| Load a Sphincs public key provided with a buffer into the leancrypto data structure. | |
| int | lc_sphincs_pk_set_keytype_fast (struct lc_sphincs_pk *pk) |
| Set Sphincs key type to fast. | |
| int | lc_sphincs_pk_set_keytype_small (struct lc_sphincs_pk *pk) |
| Set Sphincs key type to small. | |
| int | lc_sphincs_sig_load (struct lc_sphincs_sig *sig, const uint8_t *src_sig, size_t src_sig_len) |
| Load a Sphincs signature provided with a buffer into the leancrypto data structure. | |
| int | lc_sphincs_sk_ptr (uint8_t **sphincs_key, size_t *sphincs_key_len, struct lc_sphincs_sk *sk) |
| Obtain the reference to the Sphincs key and its length. | |
| int | lc_sphincs_pk_ptr (uint8_t **sphincs_key, size_t *sphincs_key_len, struct lc_sphincs_pk *pk) |
| Obtain the reference to the Sphincs key and its length. | |
| int | lc_sphincs_sig_ptr (uint8_t **sphincs_sig, size_t *sphincs_sig_len, struct lc_sphincs_sig *sig) |
| Obtain the reference to the Sphincs signature and its length. | |
| int | lc_sphincs_keypair (struct lc_sphincs_pk *pk, struct lc_sphincs_sk *sk, struct lc_rng_ctx *rng_ctx, enum lc_sphincs_type sphincs_type) |
| Generates Sphincs public and private key. | |
| int | lc_sphincs_keypair_from_seed (struct lc_sphincs_pk *pk, struct lc_sphincs_sk *sk, const uint8_t *seed, size_t seedlen, enum lc_sphincs_type sphincs_type) |
| Generates Sphincs public and private key from a given seed. | |
| int | lc_sphincs_pct (const struct lc_sphincs_pk *pk, const struct lc_sphincs_sk *sk) |
| Pairwise consistency check as per FIPS 140 IG. | |
| int | lc_sphincs_sign (struct lc_sphincs_sig *sig, const uint8_t *m, size_t mlen, const struct lc_sphincs_sk *sk, struct lc_rng_ctx *rng_ctx) |
| Computes signature in one shot. | |
| int | lc_sphincs_sign_ctx (struct lc_sphincs_sig *sig, struct lc_sphincs_ctx *ctx, const uint8_t *m, size_t mlen, const struct lc_sphincs_sk *sk, struct lc_rng_ctx *rng_ctx) |
| Computes signature woth user context in one shot. | |
| int | lc_sphincs_sign_init (struct lc_sphincs_ctx *ctx, const struct lc_sphincs_sk *sk) |
| Initializes a signature operation. | |
| int | lc_sphincs_sign_update (struct lc_sphincs_ctx *ctx, const uint8_t *m, size_t mlen) |
| Add more data to an already initialized signature state. | |
| int | lc_sphincs_sign_final (struct lc_sphincs_sig *sig, struct lc_sphincs_ctx *ctx, const struct lc_sphincs_sk *sk, struct lc_rng_ctx *rng_ctx) |
| Computes signature. | |
| int | lc_sphincs_verify (const struct lc_sphincs_sig *sig, const uint8_t *m, size_t mlen, const struct lc_sphincs_pk *pk) |
| Verifies signature in one shot. | |
| int | lc_sphincs_verify_ctx (const struct lc_sphincs_sig *sig, struct lc_sphincs_ctx *ctx, const uint8_t *m, size_t mlen, const struct lc_sphincs_pk *pk) |
| Verifies signature with Sphincs context in one shot. | |
| int | lc_sphincs_verify_init (struct lc_sphincs_ctx *ctx, const struct lc_sphincs_pk *pk) |
| Initializes a signature verification operation. | |
| int | lc_sphincs_verify_update (struct lc_sphincs_ctx *ctx, const uint8_t *m, size_t mlen) |
| Add more data to an already initialized signature state. | |
| int | lc_sphincs_verify_final (const struct lc_sphincs_sig *sig, struct lc_sphincs_ctx *ctx, const struct lc_sphincs_pk *pk) |
| Verifies signature. | |
| struct lc_sphincs_sk |
Sphincs secret key.
Definition at line 127 of file lc_sphincs.h.
| Data Fields | ||
|---|---|---|
| union lc_sphincs_sk.key | key | |
| enum lc_sphincs_type | sphincs_type | |
| struct lc_sphincs_pk |
Sphincs public key.
Definition at line 154 of file lc_sphincs.h.
| Data Fields | ||
|---|---|---|
| union lc_sphincs_pk.key | key | |
| enum lc_sphincs_type | sphincs_type | |
| struct lc_sphincs_sig |
Sphincs signature.
Definition at line 181 of file lc_sphincs.h.
| Data Fields | ||
|---|---|---|
| union lc_sphincs_sig.sig | sig | |
| enum lc_sphincs_type | sphincs_type | |
| union lc_sphincs_sk.key |
Definition at line 129 of file lc_sphincs.h.
| union lc_sphincs_pk.key |
Definition at line 156 of file lc_sphincs.h.
| union lc_sphincs_sig.sig |
Definition at line 183 of file lc_sphincs.h.
| enum lc_sphincs_type |
Definition at line 66 of file lc_sphincs.h.
| int lc_sphincs_pct | ( | const struct lc_sphincs_pk * | pk, |
| const struct lc_sphincs_sk * | sk ) |
Pairwise consistency check as per FIPS 140 IG.
This call should be invoked after generating a key pair in FIPS mode
| [in] | pk | Public key |
| [in] | sk | Secret key |