57QSC_CPLUSPLUS_ENABLED_START
103#if defined(QSC_EDDSA_S1EC25519)
109# define QSC_EDDSA_SIGNATURE_SIZE 64U
115# define QSC_EDDSA_PRIVATEKEY_SIZE 64U
121# define QSC_EDDSA_PUBLICKEY_SIZE 32U
127# define QSC_EDDSA_SEED_SIZE 32U
133# define QSC_EDDSA_ALGNAME "EDDSA-25519"
135#elif defined(QSC_EDDH_S3EC448)
141# define QSC_EDDSA_SIGNATURE_SIZE 114U
147# define QSC_EDDSA_PRIVATEKEY_SIZE 114U
153# define QSC_EDDSA_PUBLICKEY_SIZE 57U
159# define QSC_EDDSA_SEED_SIZE 57ULL
165# define QSC_EDDSA_ALGNAME "EDDSA-448"
168# error "No EDDSA parameter set defined. Define QSC_EDDSA_S1EC25519 or QSC_EDDSA_S3EC448."
180QSC_EXPORT_API void qsc_eddsa_generate_keypair(uint8_t* publickey, uint8_t* privatekey,
bool (*rng_generate)(uint8_t*,
size_t));
191QSC_EXPORT_API void qsc_eddsa_generate_seeded_keypair(uint8_t* publickey, uint8_t* privatekey,
const uint8_t* seed);
204QSC_EXPORT_API void qsc_eddsa_sign(uint8_t* signedmsg,
size_t* smsglen,
const uint8_t* message,
size_t msglen,
const uint8_t* privatekey);
217QSC_EXPORT_API bool qsc_eddsa_verify(uint8_t* message,
size_t* msglen,
const uint8_t* signedmsg,
size_t smsglen,
const uint8_t* publickey);
219QSC_CPLUSPLUS_ENABLED_END
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