Trait group::cofactor::CofactorGroup
source ·
[−]pub trait CofactorGroup: Group + GroupEncoding + GroupOps<Self::Subgroup> + GroupOpsOwned<Self::Subgroup> {
type Subgroup: PrimeGroup<Scalar = Self::Scalar> + Into<Self>;
fn clear_cofactor(&self) -> Self::Subgroup;
fn into_subgroup(self) -> CtOption<Self::Subgroup>;
fn is_small_order(&self) -> Choice { ... }
fn is_torsion_free(&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
type Subgroup: PrimeGroup<Scalar = Self::Scalar> + Into<Self>
type Subgroup: PrimeGroup<Scalar = Self::Scalar> + Into<Self>
The large prime-order subgroup in which cryptographic operations are performed.
If Self implements PrimeGroup, then Self::Subgroup may be Self.
Required methods
fn clear_cofactor(&self) -> Self::Subgroup
fn clear_cofactor(&self) -> Self::Subgroup
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.
fn into_subgroup(self) -> CtOption<Self::Subgroup>
fn into_subgroup(self) -> CtOption<Self::Subgroup>
Returns self if it is contained in the prime-order subgroup.
If Self implements PrimeGroup, this returns Some(self).
Provided methods
fn is_small_order(&self) -> Choice
fn is_small_order(&self) -> Choice
Determines if this element is of small order.
Returns:
trueifselfis in the torsion subgroup.falseifselfis not in the torsion subgroup.
fn is_torsion_free(&self) -> Choice
fn is_torsion_free(&self) -> Choice
Determines if this element is “torsion free”, i.e., is contained in the prime-order subgroup.
Returns:
trueifselfhas zero torsion component and is in the prime-order subgroup.falseifselfhas non-zero torsion component and is not in the prime-order subgroup.
