90#if defined(QSC_FALCON_S3SHAKE256F512)
96# define QSC_FALCON_PRIVATEKEY_SIZE 1281
102# define QSC_FALCON_PUBLICKEY_SIZE 897
108# define QSC_FALCON_SIGNATURE_SIZE 658
114# define QSC_FALCON_ALGNAME "FALCON-P512"
116#elif defined(QSC_FALCON_S5SHAKE256F1024)
122# define QSC_FALCON_PRIVATEKEY_SIZE 2305
128# define QSC_FALCON_PUBLICKEY_SIZE 1793
134# define QSC_FALCON_SIGNATURE_SIZE 1276
140# define QSC_FALCON_ALGNAME "FALCON-P1024"
143# error "The Falcon parameter set is invalid!"
173QSC_EXPORT_API bool qsc_falcon_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));
QSC_EXPORT_API bool qsc_falcon_generate_keypair(uint8_t *publickey, uint8_t *privatekey, bool(*rng_generate)(uint8_t *, size_t))
Generates a Falcon public/private key-pair.
Definition falcon.c:9
QSC_EXPORT_API bool qsc_falcon_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.
Definition falcon.c:45
QSC_EXPORT_API bool qsc_falcon_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.
Definition falcon.c:26
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.
#define QSC_EXPORT_API
API export macro for Microsoft compilers when importing from a DLL.
Definition qsccommon.h:645