52#ifndef QSC_ECNISTP384BASE_H
53#define QSC_ECNISTP384BASE_H
57QSC_CPLUSPLUS_ENABLED_START
77#define EC_NISTP384_SEED_SIZE 48U
80#define EC_NISTP384_PUBLICKEY_SIZE 96U
83#define EC_NISTP384_PRIVATEKEY_SIZE 144U
86#define EC_NISTP384_SIGNATURE_SIZE 96U
120int32_t
qsc_p384_keypair(uint8_t* publickey, uint8_t* privatekey,
const uint8_t* seed);
137int32_t
qsc_p384_sign(uint8_t* signedmsg,
size_t* smsglen,
const uint8_t* message,
size_t msglen,
const uint8_t* privatekey);
154int32_t
qsc_p384_sign_scalar(uint8_t* signedmsg,
size_t* smsglen,
const uint8_t* message,
size_t msglen,
const uint8_t* privatekey);
171bool qsc_p384_verify(uint8_t* message,
size_t* msglen,
const uint8_t* signedmsg,
size_t smsglen,
const uint8_t* publickey);
173QSC_CPLUSPLUS_ENABLED_END
int32_t qsc_p384_publickey_from_privatekey(uint8_t *publickey, const uint8_t *privatekey)
Derive a P-384 public key from a raw private scalar.
Definition ecdsap384base.c:1015
bool qsc_p384_verify(uint8_t *message, size_t *msglen, const uint8_t *signedmsg, size_t smsglen, const uint8_t *publickey)
Verify a P-384 signed message and recover the message bytes.
Definition ecdsap384base.c:1286
int32_t qsc_p384_keypair(uint8_t *publickey, uint8_t *privatekey, const uint8_t *seed)
Generate a P-384 public/private key pair from a 48-byte seed.
Definition ecdsap384base.c:1062
int32_t qsc_p384_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-384 private key scalar.
Definition ecdsap384base.c:1204
int32_t qsc_p384_sign(uint8_t *signedmsg, size_t *smsglen, const uint8_t *message, size_t msglen, const uint8_t *privatekey)
Sign a message using a P-384 private key.
Definition ecdsap384base.c:1119
Contains common definitions for the Quantum Secure Cryptographic (QSC) library.