Changes

no edit summary
Line 34: Line 34:  
| 0x10
 
| 0x10
 
| 0x10
 
| 0x10
| Base IV
+
| Base IV/CTR
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 42: Line 42:     
The header is 0x120-bytes.
 
The header is 0x120-bytes.
 +
 +
=Key generation=
 +
The AES keydata is the output from pkcs5_pbkdf2_hmac, with SHA256: password = <passphrase string loaded from file>, salt = <below salt string>, and iteration_count=4096.
 +
 +
The passphrase is loaded from "<basepath>/passphrase.bin". passphrase_len=strlen(passphrase). 0x40-bytes are read from the file, with 0x0 being written to passphrase[total_read_data]. salt_len = strlen(salt).
 +
 +
salt is the snprintf output from "%016llx%s", where the former is presumably the titleID, while the latter is secretdata_str. secretdata_str = secretdata_array[<value of hdr+0x7>].
 +
 +
Settings config for 1-byte <"bcat", "production_mode"> is loaded, when retval!=1 or output_config!=0, then secretdata_array = secretdata_array0(retail), otherwise secretdata_array = secretdata_array1(devunit). The latter only contains empty strings, while the former contains lower-case hex strings. There are 16 entries in each array.