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