ipmi_rs/connection/impls/rmcp/v2_0/crypto/
authentication.rs

1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
2pub enum AuthenticationAlgorithm {
3    RakpNone,
4    RakpHmacSha1,
5    RakpHmacMd5,
6    RakpHmacSha256,
7}
8
9impl From<AuthenticationAlgorithm> for u8 {
10    fn from(value: AuthenticationAlgorithm) -> Self {
11        match value {
12            AuthenticationAlgorithm::RakpNone => 0x00,
13            AuthenticationAlgorithm::RakpHmacSha1 => 0x01,
14            AuthenticationAlgorithm::RakpHmacMd5 => 0x02,
15            AuthenticationAlgorithm::RakpHmacSha256 => 0x03,
16        }
17    }
18}
19
20impl TryFrom<u8> for AuthenticationAlgorithm {
21    type Error = ();
22
23    fn try_from(value: u8) -> Result<Self, Self::Error> {
24        let value = match value {
25            0x00 => Self::RakpNone,
26            0x01 => Self::RakpHmacSha1,
27            0x02 => Self::RakpHmacMd5,
28            0x03 => Self::RakpHmacSha256,
29            _ => return Err(()),
30        };
31
32        Ok(value)
33    }
34}