File format specification - maurizuki/O2 GitHub Wiki
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 |
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 |