Trait kimchi::curve::KimchiCurve
source · pub trait KimchiCurve: CommitmentCurve + EndoCurve {
const NAME: &'static str;
// 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 Associated Constants§
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