iPXE
elliptic_curve Struct Reference

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.

Detailed Description

An elliptic curve.

Definition at line 246 of file crypto.h.

Field Documentation

◆ name

◆ pointsize

size_t elliptic_curve::pointsize

◆ keysize

size_t elliptic_curve::keysize

◆ base

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().

◆ order

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().

◆ is_infinity

int(* elliptic_curve::is_infinity) (struct elliptic_curve *curve, const void *point)

Check if this is the point at infinity.

Parameters
curveElliptic curve
pointCurve point
Return values
is_infinityThis 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().

◆ multiply

int(* elliptic_curve::multiply) (struct elliptic_curve *curve, const void *base, const void *scalar, void *result)

Multiply scalar by curve point.

Parameters
curveElliptic curve
baseBase point
scalarScalar multiple
resultResult point to fill in
Return values
rcReturn status code

Definition at line 277 of file crypto.h.

Referenced by elliptic_multiply().

◆ add

int(* elliptic_curve::add) (struct elliptic_curve *curve, const void *addend, const void *augend, void *result)

Add curve points (as a one-off operation).

Parameters
curveElliptic curve
addendCurve point to add
augendCurve point to add
resultCurve point to hold result
Return values
rcReturn status code

Definition at line 287 of file crypto.h.

Referenced by elliptic_add().

◆ priv


The documentation for this struct was generated from the following file: