Talk:HDD Encryption

From PS3 Developer wiki
Revision as of 09:12, 16 August 2012 by Naehrwert (talk | contribs)
Jump to navigation Jump to search

Getting keys the easier way

First you need to get the sb_iso_spu_module.self individuals seed that can be found in the metadata header:

D9 2D XX XX XX XX XX XX XX XX XX XX XX XX XX XX
83 84 XX XX XX XX XX XX XX XX XX XX XX XX XX XX
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C3 B3 XX XX XX XX XX XX XX XX XX XX XX XX XX XX
37 9F XX XX XX XX XX XX XX XX XX XX XX XX XX XX
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Using your console specific eid_root_key/iv (e.g. from metldr dump) and libeeid you can then generate the keys directly by calling

u8 indivs[0x100];
u8 chunk1[0x40] = {0xD9, 0x2D, /*...*/, 0x00};
u8 chunk2[0x40] = {0xC3, 0xB3, /*...*/, 0x00};
indiv_gen(chunk1, chunk2, NULL, NULL, indivs);

Now you have your console specific ATA data key in indivs[0x00-0x20] and the ATA tweak key in indivs[0x40-0x60] :)

About "ENCDEC IV and key"

This key/iv pair set by metldr is your eid_root_key, it's not just used for one purpose. (-> https://nwert.wordpress.com/2012/07/11/eeid-cryptography/)