diff --git a/README.md b/README.md index 19e1798..f389eca 100644 --- a/README.md +++ b/README.md @@ -3,55 +3,63 @@ ```plain 32 bits <----------------------------------------------> - 16 bits - <----------------------> - +----------------------------------------------+ - 0 | IDENTIFICATOR | - +----------------------------------------------+ - 1 | ARCH | OS | - +----------------------------------------------+ - 2 | TIME | - +----------------------------------------------+ - 3 | TYPE | PROT. | VER | - +----------------------------------------------+ - 4 | HL | MDL | - +----------------------------------------------+ -5-9 | RESERVED | - +----------------------------------------------+ - | OPTIONS | - +----------------------------------------------+ - | METADATA | - +----------------------------------------------+ - | PAYLOAD | - +----------------------------------------------+ + 16 bits 8 bits + <----------------------> <----------> + +----------------------------------------------+ <---------------------+ + 0 | IDENTIFICATOR | | + +----------------------------------------------+ | + 1 | ARCH | OS | | + +----------------------------------------------+ | + 2 | TIME | | + +----------------------------------------------+ | + 3 | TYPE | PROT. | VER | Base informations. | + +----------------------------------------------+ Frame 0-9 | + 4 | HL | MDL | + OPTIONS. | + +----------------------------------------------+ | +5-9 | RESERVED | | + +----------------------------------------------+ | + | OPTIONS | <---------------------+ + +----------------------------------------------+ <---------------------+ + | METADATA | | + +----------------------------------------------+ Contents. | + | PAYLOAD | Frame post-OPTIONS-n.| + +----------------------------------------------+ <---------------------+ ``` +**Description** + | Nom du champ | Position | Longeur (bits) | Valeur(s) | -|:------------:|:------:|:--------------:|:---------:| -| Identificator | 0 | 32 | `0x7f 0x52 0x49 0x5a` | -| Arch | 4 | 16 | `0x0` = no arch | -|||| `0x01` = i386 | -|||| `0x02` = x86_64 | -| OS | 6 | 16 | `0x0` = no OS | -|||| `0x01` = linux | -| Time | 8 | 32 | *current timestamp* | -| Type | 12 | 16 | `0x0` = container | -|||| `0x1` = meta container | -| Protected | 14 | 8 | `0x0` = unprotected | -|||| `0x1` = aes | +|:-------------|:--------:|:--------------:|:----------| +| **Identificator** | 0 | 32 | `0x7f 0x52 0x49 0x5a` | +| **Arch** | 4 | 16 | `0x0000` = no arch | +|||| `0x0001` = i386 | +|||| `0x0002` = x86_64 | +| **OS** | 6 | 16 | `0x0000` = no OS | +|||| `0x0001` = Linux | +| **Time** | 8 | 32 | *current timestamp* | +| **Type** | 12 | 16 | `0x0000` = container | +|||| `0x0001` = meta container | +| **Protected** | 14 | 8 | `0x00` = unprotected | +|||| `0x01` = AES-128 | +|||| `0x02` = AES-192 | +|||| `0x04` = AES-128 | +| **Version** | 15 | 8 | `0x00` = first (current) | +| **HL** | 16 | 16 | `0x000a` = no options | +| **MDL** | 18 | 16 | `0x0000` = no metadata | +| **RESERVED** | 20 | 120 | `0x0000` = not used | -* Magic number (32 bits: `0x7f` `0x52` `0x49` `0x5a`), la signature du fichier: DELRIZ. -* arch (16 bits), l'identifiant de la machine cible (architecture du processeur). -* os (16 bits), l'identifiant de la machine cible (environnement d'execution). -* timestamp (32 bits), le timestamp de compilation. -* type (16 bits), le type de conteneur, ex: conteneur, méta-conteneur, etc... -* protected (8 bits), 0x01 si le conteneur est chiffré. -* version (8 bits), la version de l'entête. -* HL (16 bits), la taille de l'entête en mots de 32 bits. -* MDL (16 bits), la taille des méta-données en mode de 32 bits. -* reserved (20 bytes), 20 octets réservés. -* options, les informations optionnels. -* méta-données. -* payload. +* **ARCH**: l'identifiant de la machine cible (architecture du processeur). +* **OS**: l'identifiant de la machine cible (environnement d'execution). +* **TIME**: le timestamp de compilation. +* **TYPE**: le type de conteneur, ex: conteneur, méta-conteneur, etc... +* **VER**: la version de l'entête. +* **HL**: la taille de l'entête en **mot de 32 bits**. +* **MDL**: la taille des méta-données en **mot de 32 bits**. +* **RESERVED**: 20 octets réservés. +* **OPTIONS**: des données optionnels. +* **METADATA**: les informations du contenu (see Cupfile). +* **PAYLOAD**: le contenu. -> **NOTE**: Si `HL` == 5, alors il n'y à pas d'options. +> **NOTE**: +* Si `HL` == `10d` (`000ah`, frame 0 to 9), alors il n'y à pas d'options. +* Si `MDL` == `0d` (`0000h`), alors il n'y à pas de méta-données.