Line 30:
Line 30:
===Part A: Encrypted header===
===Part A: Encrypted header===
The header is encrypted by the SD key and SD IV. When decrypted, it contains the following structure:
The header is encrypted by the SD key and SD IV. When decrypted, it contains the following structure:
+
(* means the field is discussed below)
+
{| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;"
{| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;"
|- style="background-color: #ddd;"
|- style="background-color: #ddd;"
Line 48:
Line 50:
|- style="background-color: #ddd;"
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x00C
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x00C
−
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01D
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x01B
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MD5 Hash of header
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | MD5 Hash of header
|- style="background-color: #ddd;"
|- style="background-color: #ddd;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x01C
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x01C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x02B
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 16
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | unknown_1 (crypto usage, md5 hash of something?)
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x02C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x02F
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 4
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * unknown_2
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x030
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x037
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 8
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Title-ID-reference_1
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x038
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x03F
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 8
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Title-ID-reference_2
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x040
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x07F
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 64
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Zeroes_1
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x080
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x09B
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 28
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * IMET data
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x09C
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x0EF
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Japanse version -- can be empty).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x0F0
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x143
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (English version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x144
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x197
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (German version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x198
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x1EB
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (French version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x1EC
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x23F
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Spanish version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x240
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x293
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Italian version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x294
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x2E7
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 42
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | Channel name in Unicode, padded with 00 (Dutch version).
+
|- style="background-color: #ddd;"
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0x2E8
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x63F
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | 0x63F
−
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 0x624
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 0x358
−
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | As of yet un-analyzed data
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | * Padding (normally zero)
|}
|}