Struct ring::aead::chacha20_poly1305_openssh::OpeningKey[][src]

pub struct OpeningKey { /* fields omitted */ }

A key for opening packets.

Implementations

impl OpeningKey[src]

pub fn new(key_material: &[u8; 64]) -> OpeningKey[src]

Constructs a new OpeningKey.

pub fn decrypt_packet_length(
    &self,
    sequence_number: u32,
    encrypted_packet_length: [u8; 4]
) -> [u8; 4]
[src]

Returns the decrypted, but unauthenticated, packet length.

Importantly, the result won’t be authenticated until open_in_place is called.

pub fn open_in_place<'a>(
    &self,
    sequence_number: u32,
    ciphertext_in_plaintext_out: &'a mut [u8],
    tag: &[u8; 16]
) -> Result<&'a [u8], Unspecified>
[src]

Opens (authenticates and decrypts) a packet.

ciphertext_in_plaintext_out must be of the form encrypted_packet_length||ciphertext where ciphertext is the encrypted plaintext. When the function succeeds the ciphertext is replaced by the plaintext and the result is Ok(plaintext), where plaintext is &ciphertext_in_plaintext_out[PACKET_LENGTH_LEN..]; otherwise the contents of ciphertext_in_plaintext_out are unspecified and must not be used.

Auto Trait Implementations

impl RefUnwindSafe for OpeningKey

impl Send for OpeningKey

impl Sync for OpeningKey

impl Unpin for OpeningKey

impl UnwindSafe for OpeningKey

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.