Struct sshkeys::PublicKey [−][src]
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
impl PublicKey
[src]
pub fn from_path<P: AsRef<Path>>(path: P) -> Result<PublicKey>
[src]
Reads an OpenSSH public key from a given path.
Examples
let key = sshkeys::PublicKey::from_path("/path/to/id_ed25519.pub")?;
pub fn from_string(contents: &str) -> Result<PublicKey>
[src]
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");
pub fn from_bytes<T: ?Sized + AsRef<[u8]>>(data: &T) -> Result<PublicKey>
[src]
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");
pub fn bits(&self) -> usize
[src]
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);
pub fn encode(&self) -> Vec<u8>
[src]
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]);
pub fn fingerprint(&self) -> Fingerprint
[src]
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);
pub fn fingerprint_with(&self, kind: FingerprintKind) -> Fingerprint
[src]
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);
pub fn write<W: Write>(&self, w: &mut W) -> Result<()>
[src]
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
impl Debug for PublicKey
[src]
impl Display for PublicKey
[src]
impl PartialEq<PublicKey> for PublicKey
[src]
impl StructuralPartialEq for PublicKey
[src]
Auto Trait Implementations
impl RefUnwindSafe for PublicKey
impl Send for PublicKey
impl Sync for PublicKey
impl Unpin for PublicKey
impl UnwindSafe for PublicKey
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,