1pub(crate) const PROFILE: &str = "moq-e2ee-00";
3
4pub(crate) const PATH_LABEL: &[u8] = b"moq-e2ee-00 path";
6
7pub(crate) const NAME_LABEL: &[u8] = b"moq-e2ee-00 name";
9
10pub(crate) const KEY_LABEL: &[u8] = b"moq-e2ee-00 key";
12
13pub(crate) const TAG_LEN: usize = 16;
15
16pub(crate) const KEY_LEN: usize = 16;
18
19pub(crate) const NAME_LEN: usize = 16;
21
22pub(crate) const NAME_TEXT_LEN: usize = 22;
24
25pub const SECRET_LEN: usize = 32;
27
28pub(crate) const MAX_U53: u64 = 9_007_199_254_740_991;
30
31pub(crate) const MAX_INVOCATIONS: u64 = 16_777_216;
33
34pub(crate) const MAX_PLAINTEXT_BYTES: u64 = 68_719_476_736;
36
37pub(crate) const MAX_GROUPED_PAYLOAD: usize = 32 * 1024 * 1024;
39
40pub const MAX_GROUPED_PLAINTEXT: usize = MAX_GROUPED_PAYLOAD - TAG_LEN;
42
43pub(crate) const MAX_DATAGRAM_BODY: usize = 1200;
45
46pub(crate) const MAX_DATAGRAM_HEADER: usize = 24;
48
49pub(crate) const MAX_DATAGRAM_PAYLOAD: usize = MAX_DATAGRAM_BODY - MAX_DATAGRAM_HEADER;
51
52pub const MAX_DATAGRAM_PLAINTEXT: usize = MAX_DATAGRAM_PAYLOAD - TAG_LEN;
54
55pub(crate) const DATAGRAM_WINDOW: u64 = 1024;
57
58pub(crate) const MAX_BYTES: usize = 0xffff;
60
61pub(crate) fn check_u53(value: u64) -> crate::Result<()> {
62 if value > MAX_U53 {
63 Err(crate::Error::Identity)
64 } else {
65 Ok(())
66 }
67}
68
69pub(crate) fn check_bytes(len: usize) -> crate::Result<()> {
70 if len > MAX_BYTES {
71 Err(crate::Error::Identity)
72 } else {
73 Ok(())
74 }
75}