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(pem: impl AsRef<[u8]>) -> Result<Self>
pub fn from_openssh(pem: 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 sign(
&self,
namespace: &str,
hash_alg: HashAlg,
msg: &[u8]
) -> Result<SshSig>
Available on crate feature alloc only.
pub fn sign(
&self,
namespace: &str,
hash_alg: HashAlg,
msg: &[u8]
) -> Result<SshSig>
alloc only.Sign the given message using this private key, returning an SshSig.
These signatures can be produced using ssh-keygen -Y sign. They’re
encoded as PEM and begin with the following:
-----BEGIN SSH SIGNATURE-----See PROTOCOL.sshsig for more information.
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
pub fn fingerprint(&self, hash_alg: HashAlg) -> Fingerprint
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 · sourceconst fn clone_from(&mut self, source: &Self)
const 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 Decode for PrivateKey
impl Decode for PrivateKey
sourceimpl Encode for PrivateKey
impl Encode for PrivateKey
sourcefn encoded_len(&self) -> Result<usize>
fn encoded_len(&self) -> Result<usize>
sourcefn encode(&self, writer: &mut impl Writer) -> Result<()>
fn encode(&self, writer: &mut impl Writer) -> Result<()>
Writer.sourcefn encoded_len_prefixed(&self) -> Result<usize, Self::Error>
fn encoded_len_prefixed(&self) -> Result<usize, Self::Error>
uint32 length prefix. Read moresourceimpl 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.