|
iPXE
|
An elliptic curve. More...
#include <crypto.h>
Data Fields | |
| const char * | name |
| Curve name. | |
| size_t | pointsize |
| Point (and public key) size. | |
| size_t | keysize |
| Scalar (and private key) size. | |
| const void * | base |
| Generator base point. | |
| const void * | order |
| Order of the generator (if prime). | |
| int(* | is_infinity )(struct elliptic_curve *curve, const void *point) |
| Check if this is the point at infinity. | |
| int(* | multiply )(struct elliptic_curve *curve, const void *base, const void *scalar, void *result) |
| Multiply scalar by curve point. | |
| int(* | add )(struct elliptic_curve *curve, const void *addend, const void *augend, void *result) |
| Add curve points (as a one-off operation). | |
| void * | priv |
| Algorithm private data. | |
| const char* elliptic_curve::name |
Curve name.
Definition at line 248 of file crypto.h.
Referenced by weierstrass_add_raw(), weierstrass_done_raw(), weierstrass_exec(), weierstrass_init_curve(), weierstrass_init_raw(), weierstrass_is_infinity(), weierstrass_multiply(), and weierstrass_verify_raw().
| size_t elliptic_curve::pointsize |
Point (and public key) size.
Definition at line 250 of file crypto.h.
Referenced by ecdsa_alloc(), ecdsa_match(), ecdsa_sign_rs(), ecdsa_verify_rs(), elliptic_add_okx(), elliptic_agree(), elliptic_curve_okx(), elliptic_multiply_okx(), and elliptic_share().
| size_t elliptic_curve::keysize |
Scalar (and private key) size.
Definition at line 252 of file crypto.h.
Referenced by ecdsa_alloc(), ecdsa_init_values(), ecdsa_sign_rs(), ecdsa_verify_rs(), elliptic_agree(), elliptic_curve_okx(), elliptic_multiply_okx(), and elliptic_share().
| const void* elliptic_curve::base |
Generator base point.
Definition at line 254 of file crypto.h.
Referenced by ecdsa_sign_rs(), ecdsa_verify_rs(), elliptic_curve_okx(), elliptic_multiply_okx(), and elliptic_share().
| const void* elliptic_curve::order |
Order of the generator (if prime).
Definition at line 256 of file crypto.h.
Referenced by ecdsa_init_values(), and elliptic_curve_okx().
| int(* elliptic_curve::is_infinity) (struct elliptic_curve *curve, const void *point) |
Check if this is the point at infinity.
| curve | Elliptic curve |
| point | Curve point |
| is_infinity | This is the point at infinity |
The point at infinity cannot be represented in affine coordinates. Each curve must choose a representation of the point at infinity (e.g. all zeroes).
Definition at line 267 of file crypto.h.
Referenced by elliptic_is_infinity().
| int(* elliptic_curve::multiply) (struct elliptic_curve *curve, const void *base, const void *scalar, void *result) |
| int(* elliptic_curve::add) (struct elliptic_curve *curve, const void *addend, const void *augend, void *result) |
Add curve points (as a one-off operation).
| curve | Elliptic curve |
| addend | Curve point to add |
| augend | Curve point to add |
| result | Curve point to hold result |
| rc | Return status code |
Definition at line 287 of file crypto.h.
Referenced by elliptic_add().
| void* elliptic_curve::priv |
Algorithm private data.
Definition at line 290 of file crypto.h.
Referenced by weierstrass_add_ladder(), weierstrass_add_once(), weierstrass_add_raw(), weierstrass_done_raw(), weierstrass_exec(), weierstrass_init_curve(), weierstrass_init_raw(), weierstrass_is_infinity(), weierstrass_multiply(), and weierstrass_verify_raw().