Trait group::GroupEncoding[][src]

pub trait GroupEncoding: Sized {
    type Repr: Copy + Default + Send + Sync + 'static + AsRef<[u8]> + AsMut<[u8]>;
    fn from_bytes(bytes: &Self::Repr) -> CtOption<Self>;
fn from_bytes_unchecked(bytes: &Self::Repr) -> CtOption<Self>;
fn to_bytes(&self) -> Self::Repr; }

Associated Types

The encoding of group elements.

The Default implementation is not required to return a valid point encoding. The bound is present to enable encodings to be constructed generically:

let mut encoding = <G as GroupEncoding>::Repr::default();
encoding.as_mut().copy_from_slice(buf);

It is recommended that the default should be the all-zeroes encoding.

Required methods

Attempts to deserialize a group element from its encoding.

Attempts to deserialize a group element, not checking if the element is valid.

This is dangerous to call unless you trust the bytes you are reading; otherwise, API invariants may be broken. Please consider using GroupEncoding::from_bytes instead.

Converts this element into its byte encoding. This may or may not support encoding the identity.

Implementors