metalssh 0.0.1

Experimental SSH implementation
//! Message authentication code (MAC) algorithms.

use crate::types::Result;
use crate::wire::Packet;

pub mod none;

pub trait Mac {
    const MAC_LENGTH: usize;

    /// Signs an SSH packet in place.
    fn sign_packet<'buf, B>(&self, packet: &'buf mut Packet<&'buf mut B>) -> Result<()>
    where
        B: AsRef<[u8]> + AsMut<[u8]> + ?Sized;

    /// Verifies an SSH packet.
    fn verify_packet<'buf, B>(&self, packet: &'buf Packet<&'buf B>) -> Result<()>
    where
        B: AsRef<[u8]> + ?Sized;
}