pub struct Reader<'a> { /* private fields */ }
Expand description

A Reader is used for reading from a byte sequence representing an encoded OpenSSH public key or certificate.

Implementations

Creates a new Reader instance from the given byte sequence.

Example
let data = vec![0, 0, 0, 42];
let mut reader = sshkeys::Reader::new(&data);
let num = reader.read_u32().unwrap();
assert_eq!(num, 42);

Sets the Reader current offset to a given position.

Example
let data = vec![0, 0, 0, 42];
let mut reader = sshkeys::Reader::new(&data);
let num = reader.read_u32().unwrap();
assert_eq!(num, 42);
reader.set_offset(0);
let num_42_again = reader.read_u32().unwrap();
assert_eq!(num_42_again, 42);

Reads a byte buffer from the wrapped byte sequence and returns it as a Vec<u8>. The buffer is represented by it’s length as u32 value followed by the actual bytes to read.

Example
let data = vec![0, 0, 0, 13, 97, 32, 116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 103];
let mut reader = sshkeys::Reader::new(&data);
let bytes = reader.read_bytes().unwrap();
assert_eq!(bytes, [97, 32, 116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 103]);

Reads an mpint value from the wrapped byte sequence.

Drops the leading byte if it’s value is zero according to the RFC 4251, section 5.

Example
let data = vec![0, 0, 0, 3, 1, 0, 1];
let mut reader = sshkeys::Reader::new(&data);
let mpint = reader.read_mpint().unwrap();
assert_eq!(mpint, [1, 0, 1]);

Reads a string value from the wrapped byte sequence and returns it as a String. The value that we read should be a valid UTF-8.

Example
let data = vec![0, 0, 0, 13, 97, 32, 116, 101, 115, 116, 32, 115, 116, 114, 105, 110, 103];
let mut reader = sshkeys::Reader::new(&data);
let result = reader.read_string().unwrap();
assert_eq!(result, "a test string");

Reads an u32 value from the wrapped byte sequence and returns it.

Example
let data = vec![0, 0, 0, 42];
let mut reader = sshkeys::Reader::new(&data);
let num = reader.read_u32().unwrap();
assert_eq!(num, 42);

Reads an u64 value from the wrapped byte sequence and returns it.

Example
let data = vec![0, 0, 0, 0, 0, 0, 0, 42];
let mut reader = sshkeys::Reader::new(&data);
let num = reader.read_u64().unwrap();
assert_eq!(num, 42);

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Should always be Self

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.