52#ifndef QSC_ECNISTP256BASE_H
53#define QSC_ECNISTP256BASE_H
57QSC_CPLUSPLUS_ENABLED_START
80#define EC_NISTP256_SEED_SIZE 32U
86#define EC_NISTP256_PUBLICKEY_SIZE 64U
92#define EC_NISTP256_PRIVATEKEY_SIZE 96U
98#define EC_NISTP256_SIGNATURE_SIZE 64U
104#define EC_NISTP256_SHAREDSECRET_SIZE 32U
137int32_t
qsc_p256_keypair(uint8_t* publickey, uint8_t* privatekey,
const uint8_t* seed);
155int32_t
qsc_p256_sign(uint8_t* signedmsg,
size_t* smsglen,
const uint8_t* message,
size_t msglen,
const uint8_t* privatekey);
173int32_t
qsc_p256_sign_scalar(uint8_t* signedmsg,
size_t* smsglen,
const uint8_t* message,
size_t msglen,
const uint8_t* privatekey);
190bool qsc_p256_verify(uint8_t* message,
size_t* msglen,
const uint8_t* signedmsg,
size_t smsglen,
const uint8_t* publickey);
192QSC_CPLUSPLUS_ENABLED_END
int32_t qsc_p256_sign_scalar(uint8_t *signedmsg, size_t *smsglen, const uint8_t *message, size_t msglen, const uint8_t *privatekey)
Sign a message using a P-256 private key (RFC 6979 deterministic k using scalar d).
Definition ecdsap256base.c:1332
int32_t qsc_p256_publickey_from_privatekey(uint8_t *publickey, const uint8_t *privatekey)
Derive a P-256 public key from a raw private scalar.
Definition ecdsap256base.c:1115
int32_t qsc_p256_sign(uint8_t *signedmsg, size_t *smsglen, const uint8_t *message, size_t msglen, const uint8_t *privatekey)
Sign a message using a P-256 private key.
Definition ecdsap256base.c:1236
bool qsc_p256_verify(uint8_t *message, size_t *msglen, const uint8_t *signedmsg, size_t smsglen, const uint8_t *publickey)
Verify a P-256 signed message and recover the message bytes.
Definition ecdsap256base.c:1427
int32_t qsc_p256_keypair(uint8_t *publickey, uint8_t *privatekey, const uint8_t *seed)
Generate a P-256 public/private key pair from a 32-byte seed.
Definition ecdsap256base.c:1173
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.