25#ifndef BR_BEARSSL_EC_H__
26#define BR_BEARSSL_EC_H__
149#define BR_EC_sect163k1 1
152#define BR_EC_sect163r1 2
155#define BR_EC_sect163r2 3
158#define BR_EC_sect193r1 4
161#define BR_EC_sect193r2 5
164#define BR_EC_sect233k1 6
167#define BR_EC_sect233r1 7
170#define BR_EC_sect239k1 8
173#define BR_EC_sect283k1 9
176#define BR_EC_sect283r1 10
179#define BR_EC_sect409k1 11
182#define BR_EC_sect409r1 12
185#define BR_EC_sect571k1 13
188#define BR_EC_sect571r1 14
191#define BR_EC_secp160k1 15
194#define BR_EC_secp160r1 16
197#define BR_EC_secp160r2 17
200#define BR_EC_secp192k1 18
203#define BR_EC_secp192r1 19
206#define BR_EC_secp224k1 20
209#define BR_EC_secp224r1 21
212#define BR_EC_secp256k1 22
215#define BR_EC_secp256r1 23
218#define BR_EC_secp384r1 24
221#define BR_EC_secp521r1 25
224#define BR_EC_brainpoolP256r1 26
227#define BR_EC_brainpoolP384r1 27
230#define BR_EC_brainpoolP512r1 28
233#define BR_EC_curve25519 29
236#define BR_EC_curve448 30
292 const unsigned char *(*generator)(
int curve,
size_t *len);
306 const unsigned char *(*order)(
int curve,
size_t *len);
318 size_t (*xoff)(
int curve,
size_t *len);
350 uint32_t (*mul)(
unsigned char *G,
size_t Glen,
351 const unsigned char *x,
size_t xlen,
int curve);
366 size_t (*mulgen)(
unsigned char *R,
367 const unsigned char *x,
size_t xlen,
int curve);
412 uint32_t (*muladd)(
unsigned char *A,
const unsigned char *B,
size_t len,
413 const unsigned char *x,
size_t xlen,
414 const unsigned char *y,
size_t ylen,
int curve);
601 const br_hash_class *hf,
const void *hash_value,
627 const void *hash,
size_t hash_len,
643 const br_hash_class *hf,
const void *hash_value,
659 const br_hash_class *hf,
const void *hash_value,
676 const void *hash,
size_t hash_len,
693 const void *hash,
size_t hash_len,
709 const br_hash_class *hf,
const void *hash_value,
725 const br_hash_class *hf,
const void *hash_value,
742 const void *hash,
size_t hash_len,
759 const void *hash,
size_t hash_len,
808#define BR_EC_KBUF_PRIV_MAX_SIZE 72
816#define BR_EC_KBUF_PUB_MAX_SIZE 145
846 void *kbuf,
int curve);
Type for an EC implementation.
Definition bearssl_ec.h:270
uint32_t supported_curves
Supported curves.
Definition bearssl_ec.h:279
Structure for an EC private key.
Definition bearssl_ec.h:258
size_t xlen
Private key length (in bytes).
Definition bearssl_ec.h:264
unsigned char * x
Private key (integer, unsigned big-endian encoding).
Definition bearssl_ec.h:262
int curve
Identifier for the curve used by this key.
Definition bearssl_ec.h:260
Structure for an EC public key.
Definition bearssl_ec.h:241
size_t qlen
Length of public curve point (in bytes).
Definition bearssl_ec.h:247
unsigned char * q
Public curve point (uncompressed format).
Definition bearssl_ec.h:245
int curve
Identifier for the curve used by this key.
Definition bearssl_ec.h:243