[][src]Trait group::Group

pub trait Group: Clone + Copy + Debug + Eq + Sized + Send + Sync + 'static + Sum + for<'a> Sum<&'a Self> + Neg<Output = Self> + GroupOps + GroupOpsOwned + ScalarMul<Self::Scalar> + ScalarMulOwned<Self::Scalar> {
    type Scalar: PrimeField;
    fn random(rng: impl RngCore) -> Self;
fn identity() -> Self;
fn generator() -> Self;
fn is_identity(&self) -> Choice;
#[must_use] fn double(&self) -> Self; }

This trait represents an element of a cryptographic group.

Associated Types

type Scalar: PrimeField

Scalars modulo the order of this group's scalar field.

Loading content...

Required methods

fn random(rng: impl RngCore) -> Self

Returns an element chosen uniformly at random from the non-identity elements of this group.

This function is non-deterministic, and samples from the user-provided RNG.

fn identity() -> Self

Returns the additive identity, also known as the "neutral element".

fn generator() -> Self

Returns a fixed generator of the prime-order subgroup.

fn is_identity(&self) -> Choice

Determines if this point is the identity.

#[must_use]fn double(&self) -> Self

Doubles this element.

Loading content...

Implementors

Loading content...