fusee: only set SBK if it's readable

This commit is contained in:
Michael Scire 2021-08-20 05:10:30 -07:00
parent 52dc99074e
commit 7322d4ce60

View File

@ -158,7 +158,12 @@ static void config_se_brom(void) {
/* Bootrom part we skipped. */ /* Bootrom part we skipped. */
uint32_t sbk[4] = {fuse_chip->FUSE_PRIVATE_KEY[0], fuse_chip->FUSE_PRIVATE_KEY[1], fuse_chip->FUSE_PRIVATE_KEY[2], fuse_chip->FUSE_PRIVATE_KEY[3]}; uint32_t sbk[4] = {fuse_chip->FUSE_PRIVATE_KEY[0], fuse_chip->FUSE_PRIVATE_KEY[1], fuse_chip->FUSE_PRIVATE_KEY[2], fuse_chip->FUSE_PRIVATE_KEY[3]};
for (int i = 0; i < 4; ++i) {
if (sbk[i] != 0xFFFFFFFF) {
set_aes_keyslot(0xE, sbk, 0x10); set_aes_keyslot(0xE, sbk, 0x10);
break;
}
}
/* Lock SBK from being read. */ /* Lock SBK from being read. */
se->SE_CRYPTO_KEYTABLE_ACCESS[0xE] = 0x7E; se->SE_CRYPTO_KEYTABLE_ACCESS[0xE] = 0x7E;