Expand description

Chip implementations for the ECC gadgets.

Re-exports

pub use constants::*;

Modules

Constants required for the ECC chip.

Structs

An EccInstructions chip that uses 10 advice columns.

Configuration for EccChip.

A curve point represented in affine (x, y) coordinates, or the identity represented as (0, 0). Each coordinate is assigned to a cell.

A full-width scalar used for fixed-base scalar multiplication. This is decomposed into 85 3-bit windows in little-endian order, i.e. windows = [k_0, k_1, …, k_84] (for a 255-bit scalar) where scalar = k_0 + k_1 * (2^3) + ... + k_84 * (2^3)^84 and each k_i is in the range [0..2^3).

A signed short scalar used for fixed-base scalar multiplication. A short scalar must have magnitude in the range [0..2^64), with a sign of either 1 or -1. This is decomposed into 3-bit windows in little-endian order using a running sum z, where z_{i+1} = (z_i - a_i) / (2^3) for element α = a_0 + (2^3) a_1 + … + (2^{3(n-1)}) a_{n-1}. Each a_i is in the range [0..2^3).

A non-identity point represented in affine (x, y) coordinates. Each coordinate is assigned to a cell.

Enums

Type marker representing a base field element being used as a scalar in fixed-base scalar multiplication.

Type marker representing a full-width scalar for use in fixed-base scalar multiplication.

An enumeration of the possible types of scalars used in variable-base multiplication.

Type marker representing a signed 64-bit scalar for use in fixed-base scalar multiplication.

Traits

Returns information about a fixed point that is required by EccChip.

A trait representing the kind of scalar used with a particular FixedPoint.