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

pub struct OpeningKey { /* fields omitted */ }

A key for opening packets.

Methods

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 Send for OpeningKey

impl Sync for OpeningKey

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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