[][src]Struct internet2::NoiseTranscoder

pub struct NoiseTranscoder {
    pub encryptor: NoiseEncryptor,
    pub decryptor: NoiseDecryptor,
}

Returned after a successful handshake to encrypt and decrypt communication with peer nodes. It should not normally be manually instantiated. Automatically handles key rotation. For decryption, it is recommended to call decrypt_message_stream for automatic buffering.

Fields

encryptor: NoiseEncryptordecryptor: NoiseDecryptor

Implementations

impl NoiseTranscoder[src]

pub fn new(
    sending_key: [u8; 32],
    receiving_key: [u8; 32],
    chaining_key: [u8; 32]
) -> Self
[src]

Instantiate a new Conduit with specified sending and receiving keys

pub fn encrypt_buf(&mut self, buffer: &[u8]) -> Result<Vec<u8>, Error>[src]

Encrypt data to be sent to peer

pub fn read_buf(&mut self, data: &[u8])[src]

pub fn decrypt_single_message(
    &mut self,
    new_data: Option<&[u8]>
) -> Result<Option<Vec<u8>>, Error>
[src]

Decrypt a single message. If data containing more than one message has been received, only the first message will be returned, and the rest stored in the internal buffer. If a message pending in the buffer still hasn't been decrypted, that message will be returned in lieu of anything new, even if new data is provided.

Trait Implementations

impl Bipolar for NoiseTranscoder[src]

type Left = Self::Encryptor

First separable type (like reader)

type Right = Self::Decryptor

Second separable type (like writer)

impl Decrypt for NoiseTranscoder[src]

type Error = HandshakeError

impl Encrypt for NoiseTranscoder[src]

impl Transcode for NoiseTranscoder[src]

Auto Trait Implementations

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> Same<T> for T

type Output = T

Should always be Self

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,