netstack/security/
connection_token.rs1const CONNECTION_TOKEN_SIZE: usize = 32;
2
3#[derive(Debug, Eq, PartialEq, Hash, Clone)]
4pub struct ConnectionToken([u8; CONNECTION_TOKEN_SIZE]);
5
6impl ConnectionToken {
7 pub fn from_slice(slice: &[u8]) -> Result<Self, ()> {
8 if slice.len() != CONNECTION_TOKEN_SIZE {
9 return Err(());
11 }
12
13 let mut bytes = [0; CONNECTION_TOKEN_SIZE];
14 for i in 0..CONNECTION_TOKEN_SIZE {
15 bytes[i] = slice[i];
16 }
17
18 Ok(Self(bytes))
19 }
20
21 pub fn from_bytes(bytes: [u8; CONNECTION_TOKEN_SIZE]) -> Self {
22 Self(bytes)
23 }
24
25 pub fn get_bytes(&self) -> &[u8] {
26 &self.0
27 }
28}