Encryption Format
All traffic and files will be encrypted using the Excalibur Encryption Format (ExEF). Files with a file extension of .exef will use the Excalibur Encryption Format.
The following is a diagram of the ExEF format. The numbers represent 0-indexed byte positions.
- Bytes
0to3will be the ExEF magic constant: the ASCII stringExEF. - Bytes
4and5represent the ExEF version, which should be interpreted as an 2-byte unsigned integer.- The current version is
00 02.
- The current version is
- Bytes
6and7represent the AES-GCM key size, which should be interpreted as an 2-byte unsigned integer. There are currently only 3 supported values.- The bytes
00 80representaes-128-gcm. - The bytes
00 C0representaes-192-gcm. - The bytes
01 00representaes-256-gcm.
- The bytes
- Bytes
8to19represent the 12-byte nonce used for AES-GCM encryption. - Bytes
20to27represent the ciphertext length, which should be interpreted as an 8-byte unsigned integer. - The ciphertext follows.
- The last 16 bytes is the 16-byte AES-GCM tag.