pub trait Group {
type Scalar;
type Element;
type TranscriptHash;
Show 13 methods
// Required methods
fn name() -> &'static str;
fn const_m() -> Self::Element;
fn const_n() -> Self::Element;
fn const_s() -> Self::Element;
fn hash_to_scalar(s: &[u8]) -> Self::Scalar;
fn random_scalar<T>(cspring: &mut T) -> Self::Scalar
where T: RngCore + CryptoRng;
fn scalar_neg(s: &Self::Scalar) -> Self::Scalar;
fn element_to_bytes(e: &Self::Element) -> Vec<u8> ⓘ;
fn bytes_to_element(b: &[u8]) -> Option<Self::Element>;
fn element_length() -> usize;
fn basepoint_mult(s: &Self::Scalar) -> Self::Element;
fn scalarmult(e: &Self::Element, s: &Self::Scalar) -> Self::Element;
fn add(a: &Self::Element, b: &Self::Element) -> Self::Element;
}
Expand description
Group trait.
Required Associated Types§
sourcetype TranscriptHash
type TranscriptHash
Transcript hash
Required Methods§
sourcefn hash_to_scalar(s: &[u8]) -> Self::Scalar
fn hash_to_scalar(s: &[u8]) -> Self::Scalar
Hash to scalar
sourcefn random_scalar<T>(cspring: &mut T) -> Self::Scalarwhere
T: RngCore + CryptoRng,
fn random_scalar<T>(cspring: &mut T) -> Self::Scalarwhere T: RngCore + CryptoRng,
Generate a random scalar
sourcefn scalar_neg(s: &Self::Scalar) -> Self::Scalar
fn scalar_neg(s: &Self::Scalar) -> Self::Scalar
Scalar negation
sourcefn bytes_to_element(b: &[u8]) -> Option<Self::Element>
fn bytes_to_element(b: &[u8]) -> Option<Self::Element>
Convert bytes to base field element
sourcefn element_length() -> usize
fn element_length() -> usize
Length of a base field element
sourcefn basepoint_mult(s: &Self::Scalar) -> Self::Element
fn basepoint_mult(s: &Self::Scalar) -> Self::Element
Fixed-base scalar multiplication
sourcefn scalarmult(e: &Self::Element, s: &Self::Scalar) -> Self::Element
fn scalarmult(e: &Self::Element, s: &Self::Scalar) -> Self::Element
Variable-base scalar multiplication