pub struct RsaPublicKey<T>where
T: UnsignedModularInt,{ /* private fields */ }Expand description
Represents the public part of an RSA key.
Implementations§
Source§impl<T: UnsignedModularInt + Clone> RsaPublicKey<T>
impl<T: UnsignedModularInt + Clone> RsaPublicKey<T>
Sourcepub fn encrypt<R: CryptoRngCore, P: PaddingScheme<T>>(
&self,
rng: &mut R,
padding: P,
msg: &[u8],
storage: &mut [u8],
) -> Result<()>
pub fn encrypt<R: CryptoRngCore, P: PaddingScheme<T>>( &self, rng: &mut R, padding: P, msg: &[u8], storage: &mut [u8], ) -> Result<()>
Encrypt the given message.
Sourcepub fn verify<S: SignatureScheme<T>>(
&self,
scheme: S,
hashed: &[u8],
sig: &[u8],
) -> Result<()>
pub fn verify<S: SignatureScheme<T>>( &self, scheme: S, hashed: &[u8], sig: &[u8], ) -> Result<()>
Verify a signed message.
hashed must be the result of hashing the input using the hashing function
passed in through hash.
If the message is valid Ok(()) is returned, otherwise an Err indicating failure.
Source§impl<T: UnsignedModularInt> RsaPublicKey<T>
impl<T: UnsignedModularInt> RsaPublicKey<T>
Sourcepub const MIN_PUB_EXPONENT: u64 = 2u64
pub const MIN_PUB_EXPONENT: u64 = 2u64
Minimum value of the public exponent e.
Sourcepub const MAX_PUB_EXPONENT: u64 = 8_589_934_591u64
pub const MAX_PUB_EXPONENT: u64 = 8_589_934_591u64
Maximum value of the public exponent e.
Sourcepub fn new(n: T, e: T) -> Result<Self>
pub fn new(n: T, e: T) -> Result<Self>
Create a new public key from its components.
This function accepts public keys with a modulus size up to 4096-bits,
i.e. RsaPublicKey::MAX_SIZE.
Sourcepub fn new_with_max_size(n: T, e: T, max_size: usize) -> Result<Self>
pub fn new_with_max_size(n: T, e: T, max_size: usize) -> Result<Self>
Create a new public key from its components.
Sourcepub fn new_unchecked(n: T, e: T) -> Self
pub fn new_unchecked(n: T, e: T) -> Self
Create a new public key, bypassing checks around the modulus and public exponent size.
This method is not recommended, and only intended for unusual use cases.
Most applications should use RsaPublicKey::new or
RsaPublicKey::new_with_max_size instead.
Trait Implementations§
Source§impl<T: UnsignedModularInt> AsRef<RsaPublicKey<T>> for RsaPrivateKey<T>
impl<T: UnsignedModularInt> AsRef<RsaPublicKey<T>> for RsaPrivateKey<T>
Source§fn as_ref(&self) -> &RsaPublicKey<T>
fn as_ref(&self) -> &RsaPublicKey<T>
Source§impl<D, T> AsRef<RsaPublicKey<T>> for VerifyingKey<D, T>where
T: UnsignedModularInt,
impl<D, T> AsRef<RsaPublicKey<T>> for VerifyingKey<D, T>where
T: UnsignedModularInt,
Source§fn as_ref(&self) -> &RsaPublicKey<T>
fn as_ref(&self) -> &RsaPublicKey<T>
Source§impl<D, T> AsRef<RsaPublicKey<T>> for VerifyingKey<D, T>where
D: Digest,
T: UnsignedModularInt,
impl<D, T> AsRef<RsaPublicKey<T>> for VerifyingKey<D, T>where
D: Digest,
T: UnsignedModularInt,
Source§fn as_ref(&self) -> &RsaPublicKey<T>
fn as_ref(&self) -> &RsaPublicKey<T>
Source§impl<T> Clone for RsaPublicKey<T>where
T: UnsignedModularInt + Clone,
impl<T> Clone for RsaPublicKey<T>where
T: UnsignedModularInt + Clone,
Source§fn clone(&self) -> RsaPublicKey<T>
fn clone(&self) -> RsaPublicKey<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T> Debug for RsaPublicKey<T>where
T: UnsignedModularInt + Debug,
impl<T> Debug for RsaPublicKey<T>where
T: UnsignedModularInt + Debug,
Source§impl<'de, T> Deserialize<'de> for RsaPublicKey<T>where
T: UnsignedModularInt,
impl<'de, T> Deserialize<'de> for RsaPublicKey<T>where
T: UnsignedModularInt,
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<T: UnsignedModularInt> From<&RsaPrivateKey<T>> for RsaPublicKey<T>
impl<T: UnsignedModularInt> From<&RsaPrivateKey<T>> for RsaPublicKey<T>
Source§fn from(private_key: &RsaPrivateKey<T>) -> Self
fn from(private_key: &RsaPrivateKey<T>) -> Self
Source§impl<T: UnsignedModularInt> From<RsaPrivateKey<T>> for RsaPublicKey<T>
impl<T: UnsignedModularInt> From<RsaPrivateKey<T>> for RsaPublicKey<T>
Source§fn from(private_key: RsaPrivateKey<T>) -> Self
fn from(private_key: RsaPrivateKey<T>) -> Self
Source§impl<D, T> From<RsaPublicKey<T>> for VerifyingKey<D, T>
impl<D, T> From<RsaPublicKey<T>> for VerifyingKey<D, T>
Source§fn from(key: RsaPublicKey<T>) -> Self
fn from(key: RsaPublicKey<T>) -> Self
Source§impl<D, T> From<RsaPublicKey<T>> for VerifyingKey<D, T>where
D: Digest,
T: UnsignedModularInt,
impl<D, T> From<RsaPublicKey<T>> for VerifyingKey<D, T>where
D: Digest,
T: UnsignedModularInt,
Source§fn from(key: RsaPublicKey<T>) -> Self
fn from(key: RsaPublicKey<T>) -> Self
Source§impl<D, T> From<VerifyingKey<D, T>> for RsaPublicKey<T>where
T: UnsignedModularInt,
impl<D, T> From<VerifyingKey<D, T>> for RsaPublicKey<T>where
T: UnsignedModularInt,
Source§fn from(key: VerifyingKey<D, T>) -> Self
fn from(key: VerifyingKey<D, T>) -> Self
Source§impl<D, T> From<VerifyingKey<D, T>> for RsaPublicKey<T>where
D: Digest,
T: UnsignedModularInt,
impl<D, T> From<VerifyingKey<D, T>> for RsaPublicKey<T>where
D: Digest,
T: UnsignedModularInt,
Source§fn from(key: VerifyingKey<D, T>) -> Self
fn from(key: VerifyingKey<D, T>) -> Self
Source§impl<T: UnsignedModularInt> Hash for RsaPublicKey<T>
impl<T: UnsignedModularInt> Hash for RsaPublicKey<T>
Source§impl<T: UnsignedModularInt> PartialEq for RsaPublicKey<T>
impl<T: UnsignedModularInt> PartialEq for RsaPublicKey<T>
Source§impl<T: UnsignedModularInt> PublicKeyParts<T> for RsaPublicKey<T>
impl<T: UnsignedModularInt> PublicKeyParts<T> for RsaPublicKey<T>
Source§impl<T> Serialize for RsaPublicKey<T>where
T: UnsignedModularInt,
impl<T> Serialize for RsaPublicKey<T>where
T: UnsignedModularInt,
Source§impl<T> TryFrom<SubjectPublicKeyInfo<AnyRef<'_>, BitStringRef<'_>>> for RsaPublicKey<T>where
T: UnsignedModularInt,
impl<T> TryFrom<SubjectPublicKeyInfo<AnyRef<'_>, BitStringRef<'_>>> for RsaPublicKey<T>where
T: UnsignedModularInt,
impl<T: UnsignedModularInt> Eq for RsaPublicKey<T>
Auto Trait Implementations§
impl<T> Freeze for RsaPublicKey<T>where
T: Freeze,
impl<T> RefUnwindSafe for RsaPublicKey<T>where
T: RefUnwindSafe,
impl<T> Send for RsaPublicKey<T>where
T: Send,
impl<T> Sync for RsaPublicKey<T>where
T: Sync,
impl<T> Unpin for RsaPublicKey<T>where
T: Unpin,
impl<T> UnwindSafe for RsaPublicKey<T>where
T: UnwindSafe,
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§impl<T> DecodePublicKey for T
impl<T> DecodePublicKey for T
Source§impl<T> DecodeRsaPublicKey for T
impl<T> DecodeRsaPublicKey for T
Source§fn from_pkcs1_der(public_key: &[u8]) -> Result<T, Error>
fn from_pkcs1_der(public_key: &[u8]) -> Result<T, Error>
RsaPublicKey
(binary format).Source§fn read_pkcs1_der_file(path: impl AsRef<Path>) -> Result<Self, Error>
fn read_pkcs1_der_file(path: impl AsRef<Path>) -> Result<Self, Error>
RsaPublicKey from an ASN.1 DER-encoded file on the local
filesystem (binary format).