pub trait EncodedPoint: Sized + Send + Sync + AsRef<[u8]> + AsMut<[u8]> + Clone + Copy + 'static {
    type Affine: CurveAffine;

    fn empty() -> Self;
    fn size() -> usize;
    fn into_affine(&self) -> Result<Self::Affine, GroupDecodingError>;
    fn into_affine_unchecked(&self) -> Result<Self::Affine, GroupDecodingError>;
    fn from_affine(affine: Self::Affine) -> Self;
}
Expand description

An encoded elliptic curve point, which should essentially wrap a [u8; N].

Required Associated Types

Required Methods

Creates an empty representation.

Returns the number of bytes consumed by this representation.

Converts an EncodedPoint into a CurveAffine element, if the encoding represents a valid element.

Converts an EncodedPoint into a CurveAffine element, without guaranteeing that the encoding represents a valid element. This is useful when the caller knows the encoding is valid already.

If the encoding is invalid, this can break API invariants, so caution is strongly encouraged.

Creates an EncodedPoint from an affine point, as long as the point is not the point at infinity.

Implementors