File format specification - maurizuki/O2 GitHub Wiki

File format specification

The O2 file format is made of a fixed-length part, that provides informations about the structure itself of the file, followed by a variable-length part, that is the content of the file.

Offset Size Description
0 16 Globally unique identifier (GUID) of the file format: ABBB4FE2-9C21-450E-80B0-469DFD8A8BFC
16 1 Minor version of the file format
17 1 Major version of the file format
18 1 Encryption flag
19 1 Cipher algorithm identifier
20 1 Hash algorithm identifier
21 16 Initialization vector (IV) of the cipher algorithm
37 4 32-bit CRC calculated on the content of the file
41 Content of the file, compressed with the zlib deflate algorithm, then optionally encrypted

Version history

A change of the major version means changes made to the file structure, a change of the minor version means changes made only to the schema of the content of the file.

Version Changes
3.0 Added IV
2.3 Added <TextType> element
2.2 Unicode encoding support
2.1 Added <Relations> element
2.0 Content compression
1.0 Initial version
⚠️ **GitHub.com Fallback** ⚠️