Example program to test AES-GCM functionality. Used for a workshop

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

ecp_group Struct Reference

ecp_group Struct Reference

ECP group structure. More...

#include <ecp.h>

Data Fields

ecp_group_id id
mpi P
mpi A
mpi B
ecp_point G
mpi N
size_t pbits
size_t nbits
unsigned int h
int(* modp )(mpi *)
int(* t_pre )(ecp_point *, void *)
int(* t_post )(ecp_point *, void *)
void * t_data
ecp_pointT
size_t T_size

Detailed Description

ECP group structure.

We consider two types of curves equations: 1. Short Weierstrass y^2 = x^3 + A x + B mod P (SEC1 + RFC 4492) 2. Montgomery, y^2 = x^3 + A x^2 + x mod P (M255 + draft) In both cases, a generator G for a prime-order subgroup is fixed. In the short weierstrass, this subgroup is actually the whole curve, and its cardinal is denoted by N.

In the case of Short Weierstrass curves, our code requires that N is an odd prime. (Use odd in ecp_mul() and prime in ecdsa_sign() for blinding.)

In the case of Montgomery curves, we don't store A but (A + 2) / 4 which is the quantity actually used in the formulas. Also, nbits is not the size of N but the required size for private keys.

If modp is NULL, reduction modulo P is done using a generic algorithm. Otherwise, it must point to a function that takes an mpi in the range 0..2^(2*pbits)-1 and transforms it in-place in an integer of little more than pbits, so that the integer may be efficiently brought in the 0..P-1 range by a few additions or substractions. It must return 0 on success and non-zero on failure.

Definition at line 136 of file ecp.h.


Field Documentation

mpi A

1. A in the equation, or 2. (A + 2) / 4

Definition at line 140 of file ecp.h.

mpi B

1. B in the equation, or 2. unused

Definition at line 141 of file ecp.h.

generator of the (sub)group used

Definition at line 142 of file ecp.h.

unsigned int h

internal: 1 if the constants are static

Definition at line 146 of file ecp.h.

internal group identifier

Definition at line 138 of file ecp.h.

int(* modp)(mpi *)

function for fast reduction mod P

Definition at line 147 of file ecp.h.

mpi N

1. the order of G, or 2. unused

Definition at line 143 of file ecp.h.

size_t nbits

number of bits in 1. P, or 2. private keys

Definition at line 145 of file ecp.h.

mpi P

prime modulus of the base field

Definition at line 139 of file ecp.h.

size_t pbits

number of bits in P

Definition at line 144 of file ecp.h.

pre-computed points for ecp_mul_comb()

Definition at line 151 of file ecp.h.

void* t_data

unused

Definition at line 150 of file ecp.h.

int(* t_post)(ecp_point *, void *)

unused

Definition at line 149 of file ecp.h.

int(* t_pre)(ecp_point *, void *)

unused

Definition at line 148 of file ecp.h.

size_t T_size

number for pre-computed points

Definition at line 152 of file ecp.h.