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: KeyTypeKey type.
kind: PublicKeyKindThe kind of public key.
comment: Option<String>Associated comment, if any.
Implementations
Reads an OpenSSH public key from a given path.
Examples
let key = PublicKey::from_path("/path/to/id_ed25519.pub");Reads an OpenSSH public key from a given string.
Examples
let key = PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkbe7gwx7s0dlApEEzpUyOAPrzPLy4czEZw/sh8m8rd me@home").unwrap();
let fp = key.fingerprint();
assert_eq!(fp.hash, "ciQkdxjFUhk2E2vRkWJD9kB8pi+EneOkaCJJHNWzPC4");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 = PublicKey::from_bytes(&data).unwrap();
let fp = key.fingerprint();
assert_eq!(fp.hash, "ciQkdxjFUhk2E2vRkWJD9kB8pi+EneOkaCJJHNWzPC4");Returns the number of bits of the public key.
Example
let key = PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHkbe7gwx7s0dlApEEzpUyOAPrzPLy4czEZw/sh8m8rd me@home").unwrap();
assert_eq!(key.bits(), 256);Encodes the public key in an OpenSSH compatible format.
Example
let key = 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]);Computes the fingerprint of the public key using the default OpenSSH fingerprint representation with SHA256.
Example
let key = PublicKey::from_path("/path/to/id_ed25519.pub").unwrap();
let fp = key.fingerprint();
println!("{}", fp.hash);Computes the fingerprint of the public key using a given fingerprint representation.
Example
let key = PublicKey::from_path("/path/to/id_ed25519.pub").unwrap();
let sha512fp = key.fingerprint_with(FingerprintKind::Sha512);
println!("{}", sha512fp.hash);Writes the public key to a given writer.
Example
use std::fs::File;
let key = PublicKey::from_string("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...").unwrap();
let mut file = File::create("/path/to/id_ed25519.pub").unwrap();
key.write(&mut file).unwrap();Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for PublicKey
impl UnwindSafe for PublicKey
Blanket Implementations
Mutably borrows from an owned value. Read more