KeypairData

Enum KeypairData 

Source
#[non_exhaustive]
pub enum KeypairData { Dsa(DsaKeypair), Ecdsa(EcdsaKeypair), Ed25519(Ed25519Keypair), Encrypted(Vec<u8>), Rsa(RsaKeypair), SkEcdsaSha2NistP256(SkEcdsaSha2NistP256), SkEd25519(SkEd25519), Other(OpaqueKeypair), }
Expand description

Private key data: digital signature key pairs.

SSH private keys contain pairs of public and private keys for various supported digital signature algorithms.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Dsa(DsaKeypair)

Available on crate feature alloc only.

Digital Signature Algorithm (DSA) keypair.

§

Ecdsa(EcdsaKeypair)

Available on crate feature ecdsa only.

ECDSA keypair.

§

Ed25519(Ed25519Keypair)

Ed25519 keypair.

§

Encrypted(Vec<u8>)

Available on crate feature alloc only.

Encrypted private key (ciphertext).

§

Rsa(RsaKeypair)

Available on crate feature alloc only.

RSA keypair.

§

SkEcdsaSha2NistP256(SkEcdsaSha2NistP256)

Available on crate features alloc and ecdsa only.

Security Key (FIDO/U2F) using ECDSA/NIST P-256 as specified in PROTOCOL.u2f.

§

SkEd25519(SkEd25519)

Available on crate feature alloc only.

Security Key (FIDO/U2F) using Ed25519 as specified in PROTOCOL.u2f.

§

Other(OpaqueKeypair)

Available on crate feature alloc only.

Opaque keypair.

Implementations§

Source§

impl KeypairData

Source

pub fn algorithm(&self) -> Result<Algorithm>

Get the Algorithm for this private key.

Source

pub fn dsa(&self) -> Option<&DsaKeypair>

Available on crate feature alloc only.

Get DSA keypair if this key is the correct type.

Source

pub fn ecdsa(&self) -> Option<&EcdsaKeypair>

Available on crate feature ecdsa only.

Get ECDSA private key if this key is the correct type.

Source

pub fn ed25519(&self) -> Option<&Ed25519Keypair>

Get Ed25519 private key if this key is the correct type.

Source

pub fn encrypted(&self) -> Option<&[u8]>

Available on crate feature alloc only.

Get the encrypted ciphertext if this key is encrypted.

Source

pub fn rsa(&self) -> Option<&RsaKeypair>

Available on crate feature alloc only.

Get RSA keypair if this key is the correct type.

Source

pub fn sk_ecdsa_p256(&self) -> Option<&SkEcdsaSha2NistP256>

Available on crate features alloc and ecdsa only.

Get FIDO/U2F ECDSA/NIST P-256 private key if this key is the correct type.

Source

pub fn sk_ed25519(&self) -> Option<&SkEd25519>

Available on crate feature alloc only.

Get FIDO/U2F Ed25519 private key if this key is the correct type.

Source

pub fn other(&self) -> Option<&OpaqueKeypair>

Available on crate feature alloc only.

Get the custom, opaque private key if this key is the correct type.

Source

pub fn is_dsa(&self) -> bool

Available on crate feature alloc only.

Is this key a DSA key?

Source

pub fn is_ecdsa(&self) -> bool

Available on crate feature ecdsa only.

Is this key an ECDSA key?

Source

pub fn is_ed25519(&self) -> bool

Is this key an Ed25519 key?

Source

pub fn is_encrypted(&self) -> bool

Available on crate feature alloc only.

Is this key encrypted?

Source

pub fn is_rsa(&self) -> bool

Available on crate feature alloc only.

Is this key an RSA key?

Source

pub fn is_sk_ecdsa_p256(&self) -> bool

Available on crate features alloc and ecdsa only.

Is this key a FIDO/U2F ECDSA/NIST P-256 key?

Source

pub fn is_sk_ed25519(&self) -> bool

Available on crate feature alloc only.

Is this key a FIDO/U2F Ed25519 key?

Source

pub fn is_other(&self) -> bool

Available on crate feature alloc only.

Is this a key with a custom algorithm?

Source

pub fn decode_as(reader: &mut impl Reader, algorithm: Algorithm) -> Result<Self>

Decode KeypairData for the specified algorithm.

Trait Implementations§

Source§

impl Clone for KeypairData

Source§

fn clone(&self) -> KeypairData

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl ConstantTimeEq for KeypairData

Source§

fn ct_eq(&self, other: &Self) -> Choice

Determine if two items are equal. Read more
Source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
Source§

impl Debug for KeypairData

Source§

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

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

impl Decode for KeypairData

Source§

type Error = Error

Type returned in the event of a decoding error.
Source§

fn decode(reader: &mut impl Reader) -> Result<Self>

Attempt to decode a value of this type using the provided Reader.
Source§

impl Encode for KeypairData

Source§

fn encoded_len(&self) -> Result<usize>

Get the length of this type encoded in bytes, prior to Base64 encoding.
Source§

fn encode(&self, writer: &mut impl Writer) -> Result<()>

Encode this value using the provided Writer.
Source§

fn encoded_len_prefixed(&self) -> Result<usize, Error>

Return the length of this type after encoding when prepended with a uint32 length prefix.
Source§

fn encode_prefixed(&self, writer: &mut impl Writer) -> Result<(), Error>

Encode this value, first prepending a uint32 length prefix set to Encode::encoded_len.
Source§

impl From<DsaKeypair> for KeypairData

Available on crate feature alloc only.
Source§

fn from(keypair: DsaKeypair) -> KeypairData

Converts to this type from the input type.
Source§

impl From<EcdsaKeypair> for KeypairData

Available on crate feature ecdsa only.
Source§

fn from(keypair: EcdsaKeypair) -> KeypairData

Converts to this type from the input type.
Source§

impl From<Ed25519Keypair> for KeypairData

Source§

fn from(keypair: Ed25519Keypair) -> KeypairData

Converts to this type from the input type.
Source§

impl From<RsaKeypair> for KeypairData

Available on crate feature alloc only.
Source§

fn from(keypair: RsaKeypair) -> KeypairData

Converts to this type from the input type.
Source§

impl From<SkEcdsaSha2NistP256> for KeypairData

Available on crate features alloc and ecdsa only.
Source§

fn from(keypair: SkEcdsaSha2NistP256) -> KeypairData

Converts to this type from the input type.
Source§

impl From<SkEd25519> for KeypairData

Available on crate feature alloc only.
Source§

fn from(keypair: SkEd25519) -> KeypairData

Converts to this type from the input type.
Source§

impl PartialEq for KeypairData

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Signer<Signature> for KeypairData

Available on crate feature alloc only.
Source§

fn try_sign(&self, message: &[u8]) -> Result<Signature>

Attempt to sign the given message, returning a digital signature on success, or an error if something went wrong. Read more
Source§

fn sign(&self, msg: &[u8]) -> S

Sign the given message and return a digital signature
Source§

impl TryFrom<&KeypairData> for KeyData

Source§

type Error = Error

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

fn try_from(keypair_data: &KeypairData) -> Result<KeyData>

Performs the conversion.
Source§

impl TryFrom<KeypairData> for PrivateKey

Source§

type Error = Error

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

fn try_from(key_data: KeypairData) -> Result<PrivateKey>

Performs the conversion.
Source§

impl Eq for KeypairData

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<S, T> SignerMut<S> for T
where T: Signer<S>,

Source§

fn try_sign(&mut self, msg: &[u8]) -> Result<S, Error>

Attempt to sign the given message, updating the state, and returning a digital signature on success, or an error if something went wrong. Read more
Source§

fn sign(&mut self, msg: &[u8]) -> S

Sign the given message, update the state, and return a digital signature.
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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 200 bytes

Size for each variant:

  • Dsa: 88 bytes
  • Ecdsa: 200 bytes
  • Ed25519: 65 bytes
  • Encrypted: 32 bytes
  • Rsa: 104 bytes
  • SkEcdsaSha2NistP256: 160 bytes
  • SkEd25519: 120 bytes
  • Other: 80 bytes