pub trait KimchiCurve:
CommitmentCurve
+ EndoCurve
+ NamedCurve {
// Required methods
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>;
fn other_curve_sponge_params( ) -> &'static ArithmeticSpongeParams<Self::BaseField>;
fn endos() -> &'static (Self::BaseField, Self::ScalarField);
fn other_curve_endo() -> &'static Self::ScalarField;
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField);
}Expand description
Represents additional information that a curve needs in order to be used with Kimchi
Required Methods§
Sourcefn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
Provides the sponge params to be used with this curve.
Sourcefn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
fn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
Provides the sponge params to be used with the other curve.
Sourcefn endos() -> &'static (Self::BaseField, Self::ScalarField)
fn endos() -> &'static (Self::BaseField, Self::ScalarField)
Provides the coefficients for the curve endomorphism, called (q,r) in some places.
Sourcefn other_curve_endo() -> &'static Self::ScalarField
fn other_curve_endo() -> &'static Self::ScalarField
Provides the coefficient for the curve endomorphism over the other field, called q in some places.
Sourcefn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
Accessor for the other curve’s prime subgroup generator, as coordinates
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl KimchiCurve for Affine<LegacyPallasParameters>
impl KimchiCurve for Affine<LegacyPallasParameters>
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
fn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
fn endos() -> &'static (Self::BaseField, Self::ScalarField)
fn other_curve_endo() -> &'static Self::ScalarField
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
Source§impl KimchiCurve for Affine<PallasParameters>
impl KimchiCurve for Affine<PallasParameters>
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
fn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
fn endos() -> &'static (Self::BaseField, Self::ScalarField)
fn other_curve_endo() -> &'static Self::ScalarField
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
Source§impl KimchiCurve for Affine<LegacyVestaParameters>
impl KimchiCurve for Affine<LegacyVestaParameters>
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
fn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
fn endos() -> &'static (Self::BaseField, Self::ScalarField)
fn other_curve_endo() -> &'static Self::ScalarField
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
Source§impl KimchiCurve for Affine<VestaParameters>
impl KimchiCurve for Affine<VestaParameters>
fn sponge_params() -> &'static ArithmeticSpongeParams<Self::ScalarField>
fn other_curve_sponge_params() -> &'static ArithmeticSpongeParams<Self::BaseField>
fn endos() -> &'static (Self::BaseField, Self::ScalarField)
fn other_curve_endo() -> &'static Self::ScalarField
fn other_curve_generator() -> (Self::ScalarField, Self::ScalarField)
Source§impl KimchiCurve for Affine<Config>
Available on crate feature bn254 only.
impl KimchiCurve for Affine<Config>
Available on crate feature
bn254 only.