Skip to main content

RsaPublicKey

Struct RsaPublicKey 

Source
pub struct RsaPublicKey { /* private fields */ }
Expand description

Public key for the core RSA primitive.

Implementations§

Source§

impl RsaPublicKey

Source

pub fn exponent(&self) -> &BigUint

Return the public exponent.

Source

pub fn modulus(&self) -> &BigUint

Return the modulus n = p * q.

Source

pub fn encrypt_raw(&self, message: &BigUint) -> BigUint

Apply the raw public operation m^e mod n.

This is textbook RSA’s deterministic trapdoor permutation. It performs no padding or randomness, so equal messages produce equal ciphertexts; that lack of semantic security is exactly why OAEP exists on top of the raw arithmetic.

In this crate’s generated keys, e is chosen near 65_537 (0x10001), a sparse exponent with two set bits. That is why this operation is often much faster than private-key decrypt_raw.

Source§

impl RsaPublicKey

Source

pub fn to_pkcs1_der(&self) -> Vec<u8>

Encode the public key as the PKCS #1 RSAPublicKey structure in DER.

Source

pub fn to_spki_der(&self) -> Vec<u8>

Encode the public key as SubjectPublicKeyInfo in DER.

Source

pub fn to_pkcs1_pem(&self) -> String

Encode the public key as the PKCS #1 RSA PUBLIC KEY PEM label.

Source

pub fn to_spki_pem(&self) -> String

Encode the public key as PUBLIC KEY PEM (SubjectPublicKeyInfo).

Source

pub fn to_xml(&self) -> String

Encode the public key as the crate’s flat XML form.

This is a convenience export that mirrors the in-memory Rust fields directly. Standards-based interchange should still prefer PKCS #1 or SPKI.

Source

pub fn from_pkcs1_der(der: &[u8]) -> Option<Self>

Decode a PKCS #1 RSAPublicKey structure from DER.

Source

pub fn from_spki_der(der: &[u8]) -> Option<Self>

Decode SubjectPublicKeyInfo from DER.

Source

pub fn from_pkcs1_pem(pem: &str) -> Option<Self>

Decode a PKCS #1 RSA PUBLIC KEY PEM document.

Source

pub fn from_spki_pem(pem: &str) -> Option<Self>

Decode a PUBLIC KEY PEM document (SubjectPublicKeyInfo).

Source

pub fn from_xml(xml: &str) -> Option<Self>

Decode the public key from the crate’s flat XML form.

Trait Implementations§

Source§

impl Clone for RsaPublicKey

Source§

fn clone(&self) -> RsaPublicKey

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RsaPublicKey

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RsaPublicKey

Source§

fn eq(&self, other: &RsaPublicKey) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for RsaPublicKey

Source§

impl StructuralPartialEq for RsaPublicKey

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.