The FIPS 205 implementation of the Sphincs+ Asymmetric Signature Scheme. More...
#include "common.h"
Go to the source code of this file.
Functions | |
QSC_EXPORT_API void | qsc_sphincsplus_generate_keypair (uint8_t *publickey, uint8_t *privatekey, bool(*rng_generate)(uint8_t *, size_t)) |
Generates a Sphincs+ public/private key-pair. | |
QSC_EXPORT_API void | qsc_sphincsplus_sign (uint8_t *signedmsg, size_t *smsglen, const uint8_t *message, size_t msglen, const uint8_t *privatekey, bool(*rng_generate)(uint8_t *, size_t)) |
Takes the message as input and returns an array containing the signature followed by the message. | |
QSC_EXPORT_API bool | qsc_sphincsplus_verify (uint8_t *message, size_t *msglen, const uint8_t *signedmsg, size_t smsglen, const uint8_t *publickey) |
Verifies a signature-message pair with the public key. | |
The FIPS 205 implementation of the Sphincs+ Asymmetric Signature Scheme.
This header defines the primary public API for the FIPS 205 Sphincs+ asymmetric signature scheme implementation. It provides functions for generating key pairs, signing messages, and verifying signatures. The implementation is based on the C reference branch of SPHINCS+ from the FIPS 205 implementation.
QSC_EXPORT_API void qsc_sphincsplus_generate_keypair | ( | uint8_t * | publickey, |
uint8_t * | privatekey, | ||
bool(* | rng_generate )(uint8_t *, size_t) ) |
Generates a Sphincs+ public/private key-pair.
publickey | [uint8_t*] Pointer to the public verification-key array |
privatekey | [uint8_t*] Pointer to the private signature-key array |
rng_generate | [(uint8_t*, size_t)] Pointer to the random generator |
QSC_EXPORT_API void qsc_sphincsplus_sign | ( | uint8_t * | signedmsg, |
size_t * | smsglen, | ||
const uint8_t * | message, | ||
size_t | msglen, | ||
const uint8_t * | privatekey, | ||
bool(* | rng_generate )(uint8_t *, size_t) ) |
Takes the message as input and returns an array containing the signature followed by the message.
signedmsg | [uint8_t*] Pointer to the signed-message array |
smsglen | [size_t*] Pointer to the signed message length |
message | [const uint8_t*] Pointer to the message array |
msglen | [size_t] The message length |
privatekey | [const uint8_t*] Pointer to the private signature-key array |
rng_generate | [(uint8_t*, size_t)] Pointer to the random generator |
QSC_EXPORT_API bool qsc_sphincsplus_verify | ( | uint8_t * | message, |
size_t * | msglen, | ||
const uint8_t * | signedmsg, | ||
size_t | smsglen, | ||
const uint8_t * | publickey ) |
Verifies a signature-message pair with the public key.
message | [uint8_t*] Pointer to the message array to be signed |
msglen | [size_t*] Pointer to the message length |
signedmsg | [const uint8_t*] Pointer to the signed message array |
smsglen | [size_t] The signed message length |
publickey | [const uint8_t*] Pointer to the public verification-key array |