pub const FIELD_COMMANDS: u8 = 0x09;
pub const DESTINATION_LENGTH: usize = 16;
pub const SIGNATURE_LENGTH: usize = 64;
pub const TIMESTAMP_SIZE: usize = 8;
pub const STRUCT_OVERHEAD: usize = 8;
pub const LXMF_OVERHEAD: usize =
(2 * DESTINATION_LENGTH) + SIGNATURE_LENGTH + TIMESTAMP_SIZE + STRUCT_OVERHEAD;
pub const RETICULUM_MTU: usize = 500;
pub const RETICULUM_TRUNCATED_HASH_LENGTH_BYTES: usize = 16;
pub const RETICULUM_HEADER_MINSIZE: usize = 2 + 1 + RETICULUM_TRUNCATED_HASH_LENGTH_BYTES;
pub const RETICULUM_HEADER_MAXSIZE: usize = 2 + 1 + (RETICULUM_TRUNCATED_HASH_LENGTH_BYTES * 2);
pub const RETICULUM_IFAC_MIN_SIZE: usize = 1;
pub const RETICULUM_MDU: usize = RETICULUM_MTU - RETICULUM_HEADER_MAXSIZE - RETICULUM_IFAC_MIN_SIZE;
pub const RETICULUM_TOKEN_OVERHEAD: usize = 48;
pub const RETICULUM_AES_BLOCKSIZE: usize = 16;
pub const RETICULUM_KEYSIZE_DIV_16: usize = 32;
pub const ENCRYPTED_MDU: usize =
((RETICULUM_MDU - RETICULUM_TOKEN_OVERHEAD - RETICULUM_KEYSIZE_DIV_16)
/ RETICULUM_AES_BLOCKSIZE)
* RETICULUM_AES_BLOCKSIZE
- 1;
pub const PLAIN_MDU: usize = RETICULUM_MDU;
pub const LINK_PACKET_MDU: usize = ((RETICULUM_MTU
- RETICULUM_IFAC_MIN_SIZE
- RETICULUM_HEADER_MINSIZE
- RETICULUM_TOKEN_OVERHEAD)
/ RETICULUM_AES_BLOCKSIZE)
* RETICULUM_AES_BLOCKSIZE
- 1;
pub const ENCRYPTED_PACKET_MDU: usize = ENCRYPTED_MDU + TIMESTAMP_SIZE;
pub const ENCRYPTED_PACKET_MAX_CONTENT: usize =
ENCRYPTED_PACKET_MDU - LXMF_OVERHEAD + DESTINATION_LENGTH;
pub const LINK_PACKET_MAX_CONTENT: usize = LINK_PACKET_MDU - LXMF_OVERHEAD;
pub const PLAIN_PACKET_MAX_CONTENT: usize = PLAIN_MDU - LXMF_OVERHEAD + DESTINATION_LENGTH;
pub const QR_MAX_STORAGE: usize = 2953;
pub const URI_SCHEMA_LENGTH: usize = 3;
pub const PAPER_MDU: usize = ((QR_MAX_STORAGE - (URI_SCHEMA_LENGTH + 3)) * 6) / 8;