1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use toad_macros::rfc_7252_doc;
#[doc = rfc_7252_doc!("5.3.1")]
#[derive(Copy, Clone, Hash, PartialEq, PartialOrd, Debug, Eq, Ord)]
pub struct Token(pub tinyvec::ArrayVec<[u8; 8]>);
impl Token {
pub fn opaque(data: &[u8]) -> Token {
use blake2::digest::consts::U8;
use blake2::{Blake2b, Digest};
let mut digest = Blake2b::<U8>::new();
digest.update(data);
Token(Into::<[u8; 8]>::into(digest.finalize()).into())
}
pub fn as_bytes(&self) -> &[u8] {
&self.0
}
}