
ISARA Radiate™ Quantum-safe Library Version 3.1
Quantum-safe cryptographic primitives and algorithms.
iqr_hss.h
Go to the documentation of this file.
48 // ---------------------------------------------------------------------------------------------------------------------------------
50 // ---------------------------------------------------------------------------------------------------------------------------------
55 // ---------------------------------------------------------------------------------------------------------------------------------
57 // ---------------------------------------------------------------------------------------------------------------------------------
77 // ---------------------------------------------------------------------------------------------------------------------------------
79 // ---------------------------------------------------------------------------------------------------------------------------------
110 // ---------------------------------------------------------------------------------------------------------------------------------
112 // ---------------------------------------------------------------------------------------------------------------------------------
142 // ---------------------------------------------------------------------------------------------------------------------------------
144 // ---------------------------------------------------------------------------------------------------------------------------------
167 iqr_retval iqr_HSSCreateParams(const iqr_Context *ctx, const iqr_HSSTreeStrategy *strategy, const iqr_HSSVariant *variant,
191 iqr_retval iqr_HSSCreateParamsFromSignature(const iqr_Context *ctx, const uint8_t *sig, size_t sig_size, iqr_HSSParams **params);
209 // ---------------------------------------------------------------------------------------------------------------------------------
211 // ---------------------------------------------------------------------------------------------------------------------------------
245 iqr_retval iqr_HSSCreateKeyPair(const iqr_HSSParams *params, const iqr_RNG *rng, iqr_HSSPublicKey **public_key,
272 iqr_retval iqr_HSSImportPrivateKey(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size,
289 iqr_retval iqr_HSSExportPrivateKey(const iqr_HSSPrivateKey *private_key, uint8_t *buf, size_t buf_size);
311 iqr_retval iqr_HSSImportPublicKey(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size, iqr_HSSPublicKey **public_key);
325 iqr_retval iqr_HSSExportPublicKey(const iqr_HSSPublicKey *public_key, uint8_t *buf, size_t buf_size);
347 iqr_retval iqr_HSSImportState(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size, iqr_HSSPrivateKeyState **state);
361 iqr_retval iqr_HSSExportState(const iqr_HSSPrivateKeyState *state, uint8_t *buf, size_t buf_size);
404 // ---------------------------------------------------------------------------------------------------------------------------------
406 // ---------------------------------------------------------------------------------------------------------------------------------
436 iqr_retval iqr_HSSDetachState(const iqr_HSSPrivateKey *private_key, iqr_HSSPrivateKeyState *state, uint32_t num_sigs,
439 // ---------------------------------------------------------------------------------------------------------------------------------
441 // ---------------------------------------------------------------------------------------------------------------------------------
479 // ---------------------------------------------------------------------------------------------------------------------------------
481 // ---------------------------------------------------------------------------------------------------------------------------------
507 iqr_retval iqr_HSSGetSignatureCount(const iqr_HSSPrivateKeyState *state, uint32_t *remaining_sigs);
545 iqr_retval iqr_HSSSign(const iqr_HSSPrivateKey *private_key, const uint8_t *message, size_t message_size,
568 iqr_retval iqr_HSSVerify(const iqr_HSSPublicKey *public_key, const uint8_t *message, size_t message_size, const uint8_t *sig,
const IQR_EXTERN iqr_HSSTreeStrategy IQR_HSS_FULL_TREE_STRATEGY
Strategy for systems with unlimited memory.
Definition: iqr_hss.h:102
ISARA Radiate Quantum-Safe Library's Random Number Generator object APIs.
const IQR_EXTERN iqr_HSSVariant IQR_HSS_2E15_SMALL
Provide 215 (32,768) signatures in a single tree, Small variant.
Definition: iqr_hss.h:138
IQR_API iqr_retval iqr_HSSGetPublicKeySize(const iqr_HSSParams *params, size_t *public_key_size)
IQR_API iqr_retval iqr_HSSImportState(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size, iqr_HSSPrivateKeyState **state)
IQR_API iqr_retval iqr_HSSGetPrivateKeySize(const iqr_HSSParams *params, size_t *private_key_size)
IQR_API iqr_retval iqr_HSSExportPublicKey(const iqr_HSSPublicKey *public_key, uint8_t *buf, size_t buf_size)
IQR_API iqr_retval iqr_HSSVerify(const iqr_HSSPublicKey *public_key, const uint8_t *message, size_t message_size, const uint8_t *sig, size_t sig_size)
IQR_API iqr_retval iqr_HSSCreateParams(const iqr_Context *ctx, const iqr_HSSTreeStrategy *strategy, const iqr_HSSVariant *variant, iqr_HSSParams **params)
IQR_API iqr_retval iqr_HSSGetStateSize(const iqr_HSSParams *params, size_t *state_size)
IQR_API iqr_retval iqr_HSSCreateParamsFromSignature(const iqr_Context *ctx, const uint8_t *sig, size_t sig_size, iqr_HSSParams **params)
IQR_API_UNENFORCED_RETURN iqr_retval iqr_HSSDestroyPrivateKey(iqr_HSSPrivateKey **private_key)
IQR_API_UNENFORCED_RETURN iqr_retval iqr_HSSDestroyState(iqr_HSSPrivateKeyState **state)
IQR_API_UNENFORCED_RETURN iqr_retval iqr_HSSDestroyPublicKey(iqr_HSSPublicKey **public_key)
const IQR_EXTERN iqr_HSSVariant IQR_HSS_2E15_FAST
Provide 215 (32,768) signatures in a single tree, Fast variant.
Definition: iqr_hss.h:134
ISARA Radiate Quantum-Safe Library's return values.
IQR_API_UNENFORCED_RETURN iqr_retval iqr_HSSDestroyParams(iqr_HSSParams **params)
ISARA Radiate Quantum-Safe Library's API declarations.
IQR_API iqr_retval iqr_HSSCreateKeyPair(const iqr_HSSParams *params, const iqr_RNG *rng, iqr_HSSPublicKey **public_key, iqr_HSSPrivateKey **private_key, iqr_HSSPrivateKeyState **state)
const IQR_EXTERN iqr_HSSTreeStrategy IQR_HSS_MEMORY_CONSTRAINED_STRATEGY
Strategy for memory-constrained systems.
Definition: iqr_hss.h:98
IQR_API iqr_retval iqr_HSSExportPrivateKey(const iqr_HSSPrivateKey *private_key, uint8_t *buf, size_t buf_size)
ISARA Radiate Quantum-Safe Library's Hash object API.
IQR_API iqr_retval iqr_HSSExportState(const iqr_HSSPrivateKeyState *state, uint8_t *buf, size_t buf_size)
const IQR_EXTERN iqr_HSSTreeStrategy IQR_HSS_VERIFY_ONLY_STRATEGY
Strategy for systems that only need to verify signatures.
Definition: iqr_hss.h:106
IQR_API iqr_retval iqr_HSSGetSignatureSize(const iqr_HSSParams *params, size_t *sig_size)
IQR_API iqr_retval iqr_HSSImportPrivateKey(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size, iqr_HSSPrivateKey **private_key)
IQR_API iqr_retval iqr_HSSImportPublicKey(const iqr_HSSParams *params, const uint8_t *buf, size_t buf_size, iqr_HSSPublicKey **public_key)
IQR_API iqr_retval iqr_HSSSign(const iqr_HSSPrivateKey *private_key, const uint8_t *message, size_t message_size, iqr_HSSPrivateKeyState *state, uint8_t *sig, size_t sig_size)
IQR_API iqr_retval iqr_HSSDetachState(const iqr_HSSPrivateKey *private_key, iqr_HSSPrivateKeyState *state, uint32_t num_sigs, iqr_HSSPrivateKeyState **detached_state)
IQR_API iqr_retval iqr_HSSGetSignatureCount(const iqr_HSSPrivateKeyState *state, uint32_t *remaining_sigs)
struct iqr_HSSPrivateKeyState_struct iqr_HSSPrivateKeyState
Definition: iqr_hss.h:60