Trait ethers::core::k256::elliptic_curve::group::cofactor::CofactorGroup[]

pub trait CofactorGroup: Group + GroupEncoding + GroupOps<Self::Subgroup, Self> + GroupOpsOwned<Self::Subgroup, Self> {
    type Subgroup: PrimeGroup + Into<Self>;
    fn clear_cofactor(&self) -> Self::Subgroup;
fn into_subgroup(self) -> CtOption<Self::Subgroup>;
fn is_torsion_free(&self) -> Choice; fn is_small_order(&self) -> Choice { ... } }
Expand description

This trait represents an element of a cryptographic group with a large prime-order subgroup and a comparatively-small cofactor.

Associated Types

The large prime-order subgroup in which cryptographic operations are performed. If Self implements PrimeGroup, then Self::Subgroup may be Self.

Required methods

Maps self to the prime-order subgroup by multiplying this element by some k-multiple of the cofactor.

The value k does not vary between inputs for a given implementation, but may vary between different implementations of CofactorGroup because some groups have more efficient methods of clearing the cofactor when k is allowed to be different than 1.

If Self implements PrimeGroup, this returns self.

Returns self if it is contained in the prime-order subgroup.

If Self implements PrimeGroup, this returns Some(self).

Determines if this element is “torsion free”, i.e., is contained in the prime-order subgroup.

Returns:

  • true if self has trivial torsion and is in the prime-order subgroup.
  • false if self has non-zero torsion component and is not in the prime-order subgroup.

Provided methods

Determines if this element is of small order.

Returns:

  • true if self is in the torsion subgroup.
  • false if self is not in the torsion subgroup.

Implementors