pub struct PublicKey {
pub key_type: KeyType,
pub kind: PublicKeyKind,
pub comment: Option<String>,
}
Expand description
A type which represents an OpenSSH public key.
Fields§
§key_type: KeyType
Key type.
kind: PublicKeyKind
The kind of public key.
comment: Option<String>
Associated comment, if any.
Implementations§
source§impl PublicKey
impl PublicKey
sourcepub fn from_path<P: AsRef<Path>>(path: P) -> Result<PublicKey>
pub fn from_path<P: AsRef<Path>>(path: P) -> Result<PublicKey>
Reads an OpenSSH public key from a given path.
§Examples
let key = sshkeys::PublicKey::from_path("/path/to/id_ed25519.pub")?;
sourcepub fn from_string(contents: &str) -> Result<PublicKey>
pub fn from_string(contents: &str) -> Result<PublicKey>
Reads an OpenSSH public key from a given string.
§Examples
let key = sshkeys::PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkbe7gwx7s0dlApEEzpUyOAPrzPLy4czEZw/sh8m8rd me@home").unwrap();
let fp = key.fingerprint();
assert_eq!(fp.hash, "ciQkdxjFUhk2E2vRkWJD9kB8pi+EneOkaCJJHNWzPC4");
sourcepub fn from_bytes<T: ?Sized + AsRef<[u8]>>(data: &T) -> Result<PublicKey>
pub fn from_bytes<T: ?Sized + AsRef<[u8]>>(data: &T) -> Result<PublicKey>
Reads a public key from a given byte sequence.
The byte sequence is expected to be the base64 decoded body of the public key.
§Example
let data = vec![0, 0, 0, 11, 115, 115, 104, 45,
101, 100, 50, 53, 53, 49, 57,
0, 0, 0, 32, 121, 27, 123, 184,
48, 199, 187, 52, 118, 80, 41, 16,
76, 233, 83, 35, 128, 62, 188,
207, 47, 46, 28, 204, 70, 112,
254, 200, 124, 155, 202, 221];
let key = sshkeys::PublicKey::from_bytes(&data).unwrap();
let fp = key.fingerprint();
assert_eq!(fp.hash, "ciQkdxjFUhk2E2vRkWJD9kB8pi+EneOkaCJJHNWzPC4");
sourcepub fn bits(&self) -> usize
pub fn bits(&self) -> usize
Returns the number of bits of the public key.
§Example
let key = sshkeys::PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkbe7gwx7s0dlApEEzpUyOAPrzPLy4czEZw/sh8m8rd me@home").unwrap();
assert_eq!(key.bits(), 256);
sourcepub fn encode(&self) -> Vec<u8>
pub fn encode(&self) -> Vec<u8>
Encodes the public key in an OpenSSH compatible format.
§Example
let key = sshkeys::PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkbe7gwx7s0dlApEEzpUyOAPrzPLy4czEZw/sh8m8rd me@home").unwrap();
assert_eq!(key.encode(), vec![0, 0, 0, 11, 115, 115, 104, 45, 101, 100, 50, 53, 53, 49, 57, 0, 0, 0, 32, 121, 27, 123, 184, 48, 199, 187, 52, 118, 80, 41, 16, 76, 233, 83, 35, 128, 62, 188, 207, 47, 46, 28, 204, 70, 112, 254, 200, 124, 155, 202, 221]);
sourcepub fn fingerprint(&self) -> Fingerprint
pub fn fingerprint(&self) -> Fingerprint
Computes the fingerprint of the public key using the default OpenSSH fingerprint representation with SHA256.
§Example
let key = sshkeys::PublicKey::from_path("/path/to/id_ed25519.pub")?;
let fp = key.fingerprint();
println!("{}", fp.hash);
sourcepub fn fingerprint_with(&self, kind: FingerprintKind) -> Fingerprint
pub fn fingerprint_with(&self, kind: FingerprintKind) -> Fingerprint
Computes the fingerprint of the public key using a given fingerprint representation.
§Example
let key = sshkeys::PublicKey::from_path("/path/to/id_ed25519.pub").unwrap();
let sha512fp = key.fingerprint_with(sshkeys::FingerprintKind::Sha512);
println!("{}", sha512fp.hash);
sourcepub fn write<W: Write>(&self, w: &mut W) -> Result<()>
pub fn write<W: Write>(&self, w: &mut W) -> Result<()>
Writes the public key to a given writer.
§Example
use std::fs::File;
let key = sshkeys::PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...")?;
let mut file = File::create("/path/to/id_ed25519.pub")?;
key.write(&mut file).unwrap();
Trait Implementations§
source§impl PartialEq for PublicKey
impl PartialEq for PublicKey
impl StructuralPartialEq for PublicKey
Auto Trait Implementations§
impl Freeze for PublicKey
impl RefUnwindSafe for PublicKey
impl Send for PublicKey
impl Sync for PublicKey
impl Unpin for PublicKey
impl UnwindSafe for PublicKey
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
Mutably borrows from an owned value. Read more