52#ifndef QSC_ECDHP256BASE_H
53#define QSC_ECDHP256BASE_H
59QSC_CPLUSPLUS_ENABLED_START
81#define QSC_ECDHP256_PUBLICKEY_SIZE 64U
86#define QSC_ECDHP256_PRIVATEKEY_SIZE 32U
91#define QSC_ECDHP256_SHAREDSECRET_SIZE 32U
96#define QSC_ECDHP256_SEED_SIZE 32U
110int32_t qsc_crypto_scalarmult_secp256r1_base(uint8_t* publickey,
const uint8_t* privatekey);
126int32_t qsc_crypto_scalarmult_secp256r1(uint8_t* secret,
const uint8_t* privatekey,
const uint8_t* publickey);
134void qsc_p256_public_from_private(uint8_t* publickey,
const uint8_t* privatekey);
147void qsc_p256_generate_keypair(uint8_t* publickey, uint8_t* privatekey,
bool (*rng_generate)(uint8_t*,
size_t));
156void qsc_p256_generate_seeded_keypair(uint8_t* publickey, uint8_t* privatekey,
const uint8_t* seed);
172bool qsc_p256_key_exchange(uint8_t* secret,
const uint8_t* publickey,
const uint8_t* privatekey);
174QSC_CPLUSPLUS_ENABLED_END
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.