Skip to main content

PublicKey

Struct PublicKey 

Source
pub struct PublicKey<C: Curve> { /* private fields */ }
Expand description

An ECDSA public key over the given curve.

Implementations§

Source§

impl<C: Curve> PublicKey<C>

Source

pub fn from_x962_uncompressed(x962: &[u8]) -> Option<Self>

Parse a public key in uncompressed X9.62 format. (This is the common format for elliptic curve points beginning with an 0x04 byte.)

Source

pub fn to_x962_uncompressed(&self) -> Buffer

Serialize this key as uncompressed X9.62 format.

Source

pub fn from_x962_compressed(x962: &[u8]) -> Option<Self>

Parse a public key in compressed X9.62 point format.

Source

pub fn to_x962_compressed(&self) -> Buffer

Serialize this key as compressed X9.62 format.

WARNING: compressed form is rarely used and is not as well supported as the uncompressed form.

Source

pub fn from_der_subject_public_key_info(spki: &[u8]) -> Option<Self>

Parse a public key in SubjectPublicKeyInfo format. (This is found in, e.g., X.509 certificates.)

Source

pub fn to_der_subject_public_key_info(&self) -> Buffer

Serialize this key in SubjectPublicKeyInfo format.

Source

pub fn verify( &self, signed_msg: &[u8], signature: &[u8], ) -> Result<(), InvalidSignatureError>

Verify signature as a valid ASN.1-based signature of a digest of signed_msg with this public key. SHA-256 will be used to produce the digest if the curve of this public key is P-256. SHA-384 will be used to produce the digest if the curve of this public key is P-384.

Source

pub fn verify_already_hashed( &self, hashed_msg: &[u8], signature: &[u8], ) -> Result<(), InvalidSignatureError>

Verify signature as a valid ASN.1-based signature of hashed_msg with this public key. hashed_msg must already have been hashed with a secure hash function: passing unhashed data here breaks the security properties of the signature scheme. If you have unhashed data, use verify instead.

This function exists because sometimes the “wrong” hash function is used with a key. A key should not be used with different hash functions and there is an obvious correspondence between NIST’s standard elliptic curves and the SHA-2 family of hash functions that implicitly defines the correct hash function to use with a given key. But, if mistakes have been made, this function is here for you.

Source

pub fn verify_p1363( &self, signed_msg: &[u8], signature: &[u8], ) -> Result<(), InvalidSignatureError>

Verify signature as a valid P1363-based signature of a digest of signed_msg with this public key. SHA-256 will be used to produce the digest if the curve of this public key is P-256. SHA-384 will be used to produce the digest if the curve of this public key is P-384.

Auto Trait Implementations§

§

impl<C> Freeze for PublicKey<C>

§

impl<C> RefUnwindSafe for PublicKey<C>
where C: RefUnwindSafe,

§

impl<C> Send for PublicKey<C>

§

impl<C> Sync for PublicKey<C>

§

impl<C> Unpin for PublicKey<C>
where C: Unpin,

§

impl<C> UnsafeUnpin for PublicKey<C>

§

impl<C> UnwindSafe for PublicKey<C>
where C: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.