Changes

Jump to navigation Jump to search
2,577 bytes added ,  16:21, 19 October 2017
Package1 update summary.
Line 38: Line 38:     
The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it.
 
The package1 entrypoint address specified by BCT was increased by 0x20-bytes, since there's now an additional 0x20-bytes at the start of package1. The additional data is identical to the 0x20-byte block before it.
 +
 +
====Package1====
 +
  setKeyslotFlags (LT_4001011a)
 +
  Instead of writing ~flags directly to securityEngine->KEYSLOT_FLAGS[keyslot], this now preserves the high bits of the existing flags.
 +
 
 +
  getOdmFuse4Type (LT_40010614)
 +
  This func now includes bits 16-19 in the OR'd flag used in the switch, and now returns 4 as a default invalid result instead of the low bit of [[Fuses|FUSE_SPARE_BIT_5]].
 +
 
 +
  checkFuseCoherency (LT_400106e4)
 +
  This func was updated to take into account the new invalid retval for getOdmFuse4Type. C
 +
  Check that bootrom patch version was < 0x1F was removed, and patch version is still validated to be < 0x7F.
 +
 
 +
  decryptAndParsePK11 (LT_40010734)
 +
  The entrypoint calculation code no longer adds *(package11Header + 0x4) to the address.
 +
 
 +
  generateKeys (LT_400107a2)
 +
  setKeyslotFlags(keyslot, 0x15) is now additionally called on keyslots 14 and 15.
 +
  The code for switching key generation method depending on fuses (unit type) and last byte of PKC modulus has been removed, and replaced with a call to a single key generation function.
 +
  The code block inbetween the keyslot-config code was replaced with just a call to LT_40011264.
 +
  setKeyslotFlags(keyslot, 0xFF) is now used on keyslots 12 and 15 instead of 12 and 13.
 +
 +
  downgradeFuseCheck (LT_400111cc)
 +
  The burnt fuse information stored in .rodata now expects 4 fuses to be burnt for retail units, instead of 3.
 +
 
 +
  generateKeysFromBITAddress (LT_40011264)
 +
  Instead of calling generateKeysLegacyMethod, this now calls generateKeysFromKeyblobAndKeyseeds (the main key generation function). Legacy key generation code has been removed.
 +
 
 +
  generateKeysFromKeyblobAndKeyseeds (LT_400112f0)
 +
  The function now takes in two keyseeds and sizes, previously it only took in one (keyseed, size) pair.
 +
  Keyslot 15 (SSK) is now used where keyslot 10 was used previously, and keyslot 15 is no longer cleared when keyslot 14 (SBK) is cleared.
 +
  The [[Flash_Filesystem|Keyblob]] keyseed was updated for keyblob 4.
 +
  code block following the keyblob clear code was updated:
 +
  After the decrypted keyblob is cleared, decryptDataIntoKeyslot(KEYSLOT_14, KEYSLOT_12, secondKeySeed, secondKeySeedSize) is now called before decryptDataIntoKeyslot(KEYSLOT_12, KEYSLOT_12, firstKeySeed, firstKeySeedSize).
 +
  At the end of the function, "decryptDataIntoKeyslot(KEYSLOT_13, KEYSLOT_10, perConsoleKeyseed2, 0x10); clearKeyslot(KEYSLOT_10);" has been replaced with "decryptDataIntoKeyslot(KEYSLOT_13, KEYSLOT_15, perConsoleKeyseed3, 0x10); decryptDataIntoKeyslot(KEYSLOT_15, KEYSLOT_15, perConsoleKeyseed2, 0x10);"
    
==Keys==
 
==Keys==

Navigation menu