Struct ssh_key::private::PrivateKey
source · [−]pub struct PrivateKey { /* private fields */ }Expand description
SSH private key.
Implementations
sourceimpl PrivateKey
impl PrivateKey
sourcepub fn new(key_data: KeypairData, comment: impl Into<String>) -> Result<Self>
Available on crate feature alloc only.
pub fn new(key_data: KeypairData, comment: impl Into<String>) -> Result<Self>
alloc only.Create a new unencrypted private key with the given keypair data and comment.
On no_std platforms, use PrivateKey::from(key_data) instead.
sourcepub fn from_openssh(input: impl AsRef<[u8]>) -> Result<Self>
pub fn from_openssh(input: impl AsRef<[u8]>) -> Result<Self>
Parse an OpenSSH-formatted PEM private key.
OpenSSH-formatted private keys begin with the following:
-----BEGIN OPENSSH PRIVATE KEY-----sourcepub fn from_bytes(bytes: &[u8]) -> Result<Self>
pub fn from_bytes(bytes: &[u8]) -> Result<Self>
Parse a raw binary SSH private key.
sourcepub fn encode_openssh<'o>(
&self,
line_ending: LineEnding,
out: &'o mut [u8]
) -> Result<&'o str>
pub fn encode_openssh<'o>(
&self,
line_ending: LineEnding,
out: &'o mut [u8]
) -> Result<&'o str>
Encode OpenSSH-formatted (PEM) private key.
sourcepub fn to_openssh(&self, line_ending: LineEnding) -> Result<Zeroizing<String>>
Available on crate feature alloc only.
pub fn to_openssh(&self, line_ending: LineEnding) -> Result<Zeroizing<String>>
alloc only.Encode an OpenSSH-formatted PEM private key, allocating a
self-zeroizing String for the result.
sourcepub fn to_bytes(&self) -> Result<Zeroizing<Vec<u8>>>
Available on crate feature alloc only.
pub fn to_bytes(&self) -> Result<Zeroizing<Vec<u8>>>
alloc only.Serialize SSH private key as raw bytes.
sourcepub fn read_openssh_file(path: &Path) -> Result<Self>
Available on crate feature std only.
pub fn read_openssh_file(path: &Path) -> Result<Self>
std only.Read private key from an OpenSSH-formatted PEM file.
sourcepub fn write_openssh_file(
&self,
path: &Path,
line_ending: LineEnding
) -> Result<()>
Available on crate feature std only.
pub fn write_openssh_file(
&self,
path: &Path,
line_ending: LineEnding
) -> Result<()>
std only.Write private key as an OpenSSH-formatted PEM file.
sourcepub fn decrypt(&self, password: impl AsRef<[u8]>) -> Result<Self>
Available on crate feature encryption only.
pub fn decrypt(&self, password: impl AsRef<[u8]>) -> Result<Self>
encryption only.Attempt to decrypt an encrypted private key using the provided password to derive an encryption key.
Returns Error::Decrypted if the private key is already decrypted.
sourcepub fn encrypt(
&self,
rng: impl CryptoRng + RngCore,
password: impl AsRef<[u8]>
) -> Result<Self>
Available on crate feature encryption only.
pub fn encrypt(
&self,
rng: impl CryptoRng + RngCore,
password: impl AsRef<[u8]>
) -> Result<Self>
encryption only.Encrypt an unencrypted private key using the provided password to derive an encryption key.
Uses the following algorithms:
- Cipher:
Cipher::Aes256Ctr - KDF:
Kdf::Bcrypt(i.e.bcrypt-pbkdf)
Returns Error::Encrypted if the private key is already encrypted.
sourcepub fn encrypt_with(
&self,
cipher: Cipher,
kdf: Kdf,
checkint: u32,
password: impl AsRef<[u8]>
) -> Result<Self>
Available on crate feature encryption only.
pub fn encrypt_with(
&self,
cipher: Cipher,
kdf: Kdf,
checkint: u32,
password: impl AsRef<[u8]>
) -> Result<Self>
encryption only.Encrypt an unencrypted private key using the provided cipher and KDF configuration.
Returns Error::Encrypted if the private key is already encrypted.
sourcepub fn fingerprint(&self, hash_alg: HashAlg) -> Fingerprint
Available on crate feature fingerprint only.
pub fn fingerprint(&self, hash_alg: HashAlg) -> Fingerprint
fingerprint only.Compute key fingerprint.
Use Default::default() to use the default hash function (SHA-256).
sourcepub fn is_encrypted(&self) -> bool
pub fn is_encrypted(&self) -> bool
Is this key encrypted?
sourcepub fn kdf(&self) -> &Kdf
pub fn kdf(&self) -> &Kdf
Key Derivation Function (KDF) used to encrypt this key.
Returns Kdf::None if this key is not encrypted.
sourcepub fn key_data(&self) -> &KeypairData
pub fn key_data(&self) -> &KeypairData
Keypair data.
sourcepub fn public_key(&self) -> &PublicKey
pub fn public_key(&self) -> &PublicKey
Get the PublicKey which corresponds to this private key.
sourcepub fn random(
rng: impl CryptoRng + RngCore,
algorithm: Algorithm
) -> Result<Self>
Available on crate feature rand_core only.
pub fn random(
rng: impl CryptoRng + RngCore,
algorithm: Algorithm
) -> Result<Self>
rand_core only.Generate a random key which uses the given algorithm.
Returns
Error::Algorithmif the algorithm is unsupported.
sourcepub fn set_comment(&mut self, comment: impl Into<String>)
Available on crate feature alloc only.
pub fn set_comment(&mut self, comment: impl Into<String>)
alloc only.Set the comment on the key.
Trait Implementations
sourceimpl Clone for PrivateKey
impl Clone for PrivateKey
sourcefn clone(&self) -> PrivateKey
fn clone(&self) -> PrivateKey
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresourceimpl ConstantTimeEq for PrivateKey
Available on crate feature subtle only.
impl ConstantTimeEq for PrivateKey
subtle only.sourceimpl Debug for PrivateKey
impl Debug for PrivateKey
sourceimpl From<&PrivateKey> for KeyData
impl From<&PrivateKey> for KeyData
sourcefn from(private_key: &PrivateKey) -> KeyData
fn from(private_key: &PrivateKey) -> KeyData
sourceimpl From<&PrivateKey> for PublicKey
impl From<&PrivateKey> for PublicKey
sourcefn from(private_key: &PrivateKey) -> PublicKey
fn from(private_key: &PrivateKey) -> PublicKey
sourceimpl From<DsaKeypair> for PrivateKey
Available on crate feature alloc only.
impl From<DsaKeypair> for PrivateKey
alloc only.sourcefn from(keypair: DsaKeypair) -> PrivateKey
fn from(keypair: DsaKeypair) -> PrivateKey
sourceimpl From<EcdsaKeypair> for PrivateKey
Available on crate feature ecdsa only.
impl From<EcdsaKeypair> for PrivateKey
ecdsa only.sourcefn from(keypair: EcdsaKeypair) -> PrivateKey
fn from(keypair: EcdsaKeypair) -> PrivateKey
sourceimpl From<Ed25519Keypair> for PrivateKey
impl From<Ed25519Keypair> for PrivateKey
sourcefn from(keypair: Ed25519Keypair) -> PrivateKey
fn from(keypair: Ed25519Keypair) -> PrivateKey
sourceimpl From<PrivateKey> for KeyData
impl From<PrivateKey> for KeyData
sourcefn from(private_key: PrivateKey) -> KeyData
fn from(private_key: PrivateKey) -> KeyData
sourceimpl From<PrivateKey> for PublicKey
impl From<PrivateKey> for PublicKey
sourcefn from(private_key: PrivateKey) -> PublicKey
fn from(private_key: PrivateKey) -> PublicKey
sourceimpl From<RsaKeypair> for PrivateKey
Available on crate feature alloc only.
impl From<RsaKeypair> for PrivateKey
alloc only.sourcefn from(keypair: RsaKeypair) -> PrivateKey
fn from(keypair: RsaKeypair) -> PrivateKey
sourceimpl From<SkEcdsaSha2NistP256> for PrivateKey
Available on crate features alloc and ecdsa only.
impl From<SkEcdsaSha2NistP256> for PrivateKey
alloc and ecdsa only.sourcefn from(keypair: SkEcdsaSha2NistP256) -> PrivateKey
fn from(keypair: SkEcdsaSha2NistP256) -> PrivateKey
sourceimpl From<SkEd25519> for PrivateKey
Available on crate feature alloc only.
impl From<SkEd25519> for PrivateKey
alloc only.sourcefn from(keypair: SkEd25519) -> PrivateKey
fn from(keypair: SkEd25519) -> PrivateKey
sourceimpl FromStr for PrivateKey
impl FromStr for PrivateKey
sourceimpl PartialEq<PrivateKey> for PrivateKey
Available on crate feature subtle only.
impl PartialEq<PrivateKey> for PrivateKey
subtle only.sourceimpl PemLabel for PrivateKey
impl PemLabel for PrivateKey
sourceimpl Signer<Signature> for PrivateKey
impl Signer<Signature> for PrivateKey
sourceimpl TryFrom<KeypairData> for PrivateKey
impl TryFrom<KeypairData> for PrivateKey
sourcefn try_from(key_data: KeypairData) -> Result<PrivateKey>
fn try_from(key_data: KeypairData) -> Result<PrivateKey>
impl Eq for PrivateKey
subtle only.