Struct sec1::point::EncodedPoint
source · pub struct EncodedPoint<Size>where
Size: ModulusSize,{ /* private fields */ }
Expand description
SEC1 encoded curve point.
This type is an enum over the compressed and uncompressed encodings, useful for cases where either encoding can be supported, or conversions between the two forms.
Implementations§
source§impl<Size> EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> EncodedPoint<Size>where
Size: ModulusSize,
sourcepub fn from_bytes(input: impl AsRef<[u8]>) -> Result<Self>
pub fn from_bytes(input: impl AsRef<[u8]>) -> Result<Self>
Decode elliptic curve point (compressed or uncompressed) from the
Elliptic-Curve-Point-to-Octet-String
encoding described in
SEC 1: Elliptic Curve Cryptography (Version 2.0) section
2.3.3 (page 10).
sourcepub fn from_untagged_bytes(
bytes: &GenericArray<u8, Size::UntaggedPointSize>,
) -> Self
pub fn from_untagged_bytes( bytes: &GenericArray<u8, Size::UntaggedPointSize>, ) -> Self
Decode elliptic curve point from raw uncompressed coordinates, i.e.
encoded as the concatenated x || y
coordinates with no leading SEC1
tag byte (which would otherwise be 0x04
for an uncompressed point).
sourcepub fn from_affine_coordinates(
x: &GenericArray<u8, Size>,
y: &GenericArray<u8, Size>,
compress: bool,
) -> Self
pub fn from_affine_coordinates( x: &GenericArray<u8, Size>, y: &GenericArray<u8, Size>, compress: bool, ) -> Self
Encode an elliptic curve point from big endian serialized coordinates (with optional point compression)
sourcepub fn identity() -> Self
pub fn identity() -> Self
Return EncodedPoint
representing the additive identity
(a.k.a. point at infinity)
sourcepub fn as_bytes(&self) -> &[u8]
pub fn as_bytes(&self) -> &[u8]
Get byte slice containing the serialized EncodedPoint
.
sourcepub fn to_bytes(&self) -> Box<[u8]>
pub fn to_bytes(&self) -> Box<[u8]>
Get boxed byte slice containing the serialized EncodedPoint
sourcepub fn is_compact(&self) -> bool
pub fn is_compact(&self) -> bool
Is this EncodedPoint
compact?
sourcepub fn is_compressed(&self) -> bool
pub fn is_compressed(&self) -> bool
Is this EncodedPoint
compressed?
sourcepub fn is_identity(&self) -> bool
pub fn is_identity(&self) -> bool
Is this EncodedPoint
the additive identity? (a.k.a. point at infinity)
sourcepub fn compress(&self) -> Self
pub fn compress(&self) -> Self
Compress this EncodedPoint
, returning a new EncodedPoint
.
sourcepub fn tag(&self) -> Tag
pub fn tag(&self) -> Tag
Get the SEC1 tag for this EncodedPoint
sourcepub fn coordinates(&self) -> Coordinates<'_, Size>
pub fn coordinates(&self) -> Coordinates<'_, Size>
Get the Coordinates
for this EncodedPoint
.
sourcepub fn x(&self) -> Option<&GenericArray<u8, Size>>
pub fn x(&self) -> Option<&GenericArray<u8, Size>>
Get the x-coordinate for this EncodedPoint
.
Returns None
if this point is the identity point.
sourcepub fn y(&self) -> Option<&GenericArray<u8, Size>>
pub fn y(&self) -> Option<&GenericArray<u8, Size>>
Get the y-coordinate for this EncodedPoint
.
Returns None
if this point is compressed or the identity point.
Trait Implementations§
source§impl<Size> AsRef<[u8]> for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> AsRef<[u8]> for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> Clone for EncodedPoint<Size>
impl<Size> Clone for EncodedPoint<Size>
source§fn clone(&self) -> EncodedPoint<Size>
fn clone(&self) -> EncodedPoint<Size>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<Size> ConditionallySelectable for EncodedPoint<Size>
impl<Size> ConditionallySelectable for EncodedPoint<Size>
source§impl<Size> Debug for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Debug for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> Default for EncodedPoint<Size>
impl<Size> Default for EncodedPoint<Size>
source§fn default() -> EncodedPoint<Size>
fn default() -> EncodedPoint<Size>
source§impl<'de, Size> Deserialize<'de> for EncodedPoint<Size>where
Size: ModulusSize,
impl<'de, Size> Deserialize<'de> for EncodedPoint<Size>where
Size: ModulusSize,
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
source§impl<Size> Display for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Display for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> FromStr for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> FromStr for EncodedPoint<Size>where
Size: ModulusSize,
Decode a SEC1-encoded point from hexadecimal.
Upper and lower case hexadecimal are both accepted, however mixed case is rejected.
source§impl<Size> LowerHex for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> LowerHex for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> Ord for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Ord for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> PartialEq for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> PartialEq for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> PartialOrd for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> PartialOrd for EncodedPoint<Size>where
Size: ModulusSize,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<Size> Serialize for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Serialize for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> TryFrom<&[u8]> for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> TryFrom<&[u8]> for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> UpperHex for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> UpperHex for EncodedPoint<Size>where
Size: ModulusSize,
source§impl<Size> Zeroize for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Zeroize for EncodedPoint<Size>where
Size: ModulusSize,
impl<Size> Copy for EncodedPoint<Size>
impl<Size: ModulusSize> Eq for EncodedPoint<Size>
Auto Trait Implementations§
impl<Size> Freeze for EncodedPoint<Size>
impl<Size> RefUnwindSafe for EncodedPoint<Size>
impl<Size> Send for EncodedPoint<Size>
impl<Size> Sync for EncodedPoint<Size>
impl<Size> Unpin for EncodedPoint<Size>
impl<Size> UnwindSafe for EncodedPoint<Size>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)