Crate ark_test_curves

Source

Re-exports§

pub use ark_ff;
pub use ark_ec;

Modules§

cubic_extension
fp
fp2
fp3
fp4
fp6_2over3
fp6_3over2
fp12_2over3over2
fp128
Prime field Fp where p = 2^127 - 1.
hashing
Provides a HashToCurve trait and implementations of this trait via different hashing strategies.
models
pairing
quadratic_extension
scalar_mul

Macros§

MontFp
Construct a Fp<MontBackend<T, N>, N> element from a literal string. This should be used primarily for constructing constant field elements; in a non-const context, Fp::from_str is preferable.

Structs§

CubicExtField
An element of a cubic extension field F_p[X]/(X^3 - P::NONRESIDUE) is represented as c0 + c1 * X + c2 * X^2, for c0, c1, c2 in P::BaseField.
Fp
Represents an element of the prime field F_p, where p == P::MODULUS. This type can represent elements in any field of size at most N * 64 bits.
Fp2ConfigWrapper
Wrapper for Fp2Config, allowing combination of the Fp2Config and QuadExtConfig traits.
Fp3ConfigWrapper
Wrapper for Fp3Config, allowing combination of the Fp3Config and CubicExtConfig traits.
Fp4ConfigWrapper
Fp6ConfigWrapper
Fp12ConfigWrapper
MontBackend
QuadExtField
An element of a quadratic extension field F_p[X]/(X^2 - P::NONRESIDUE) is represented as c0 + c1 * X, for c0, c1 in P::BaseField.

Enums§

LegendreSymbol
Indication of the field element’s quadratic residuosity

Traits§

AdditiveGroup
AffineRepr
The canonical representation of an elliptic curve group element. This should represent the affine coordinates of the point corresponding to this group element.
CubicExtConfig
Defines a Cubic extension field from a cubic non-residue.
CurveConfig
Elliptic curves can be represented via different “models” with varying efficiency properties. CurveConfig bundles together the types that are common to all models of the given curve, namely the BaseField over which the curve is defined, and the ScalarField defined by the appropriate prime-order subgroup of the curve.
CurveCycle
Wrapper trait representing a cycle of elliptic curves (E1, E2) such that the base field of E1 is the scalar field of E2, and the scalar field of E1 is the base field of E2.
CurveGroup
An opaque representation of an elliptic curve group element that is suitable for efficient group arithmetic.
FftField
The interface for fields that are able to be used in FFTs.
Field
The interface for a generic field. Types implementing Field support common field operations such as addition, subtraction, multiplication, and inverses.
Fp2Config
Trait that specifies constants and methods for defining degree-two extension fields.
Fp3Config
Trait that specifies constants and methods for defining degree-three extension fields.
Fp4Config
Fp6Config
Fp12Config
FpConfig
A trait that specifies the configuration of a prime field. Also specifies how to perform arithmetic on field elements.
MontConfig
A trait that specifies the constants and arithmetic procedures for Montgomery arithmetic over the prime field defined by MODULUS.
PairingFriendlyCycle
A cycle of curves where both curves are pairing-friendly.
PrimeField
The interface for a prime field, i.e. the field of integers modulo a prime $p$. In the following example we’ll use the prime field underlying the BLS12-381 G1 curve.
PrimeGroup
Represents (elements of) a group of prime order r.
QuadExtConfig
Defines a Quadratic extension field from a quadratic non-residue.
ScalarMul
VariableBaseMSM

Functions§

can_use_no_carry_mul_optimization
can_use_no_carry_square_optimization
characteristic_square_mod_6_is_one
inv
Compute -M^{-1} mod 2^64.
modulus_has_spare_bit
sqrt_precomputation

Type Aliases§

Fp2
Alias for instances of quadratic extension fields. Helpful for omitting verbose instantiations involving Fp2ConfigWrapper.
Fp3
Fp4
Fp6
Fp12
Fp64
Fp128
Fp192
Fp256
Fp320
Fp384
Fp448
Fp512
Fp576
Fp640
Fp704
Fp768
Fp832

Derive Macros§

MontConfig
Derive the MontConfig trait.