From 9df9134b7f458170662e2b9b714b8cd604b95a55 Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 19:31:18 +0200 Subject: [PATCH 1/6] Removed redundant text "/* Support to FW XX.0.0 */" was not part of the original code by shchmue, but added in later by someone else, and it's also redundant, since "#define KB_FIRMWARE_VERSION_XXXX XX" already tells you which version it supports. --- source/hos/hos.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/hos/hos.h b/source/hos/hos.h index c9b98a8..adab426 100644 --- a/source/hos/hos.h +++ b/source/hos/hos.h @@ -39,9 +39,9 @@ #define KB_FIRMWARE_VERSION_1700 16 #define KB_FIRMWARE_VERSION_1800 17 #define KB_FIRMWARE_VERSION_1900 18 -#define KB_FIRMWARE_VERSION_2000 19 /* Support to FW 20.0.0 */ -#define KB_FIRMWARE_VERSION_2100 20 /* Support to FW 21.0.0 */ -#define KB_FIRMWARE_VERSION_2200 21 /* Support to FW 22.0.0 */ +#define KB_FIRMWARE_VERSION_2000 19 +#define KB_FIRMWARE_VERSION_2100 20 +#define KB_FIRMWARE_VERSION_2200 21 #define KB_FIRMWARE_VERSION_MAX KB_FIRMWARE_VERSION_2200 //!TODO: Update on mkey changes. #endif From 72b63a4d9abcacdb4505cc73dbbfe47076c70a73 Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 19:44:44 +0200 Subject: [PATCH 2/6] Re-added trailing commas shchmue always used trailing commas in each of the latest keys they added, so I've reimplemented that same approach here, as to keep it standard and make it easier to add new keys. --- source/keys/crypto.h | 8 ++++---- source/keys/key_sources.inl | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/source/keys/crypto.h b/source/keys/crypto.h index ce5fa0f..b2c4fe3 100644 --- a/source/keys/crypto.h +++ b/source/keys/crypto.h @@ -60,7 +60,7 @@ static const u8 device_master_kek_sources[KB_FIRMWARE_VERSION_MAX - KB_FIRMWARE_ {0x9B, 0xA5, 0xFD, 0x74, 0x7F, 0xCD, 0x23, 0xD1, 0xD9, 0xBD, 0x6C, 0x51, 0x72, 0x5F, 0x3D, 0x1F}, /* 19.0.0 Device Master Kek Source. */ {0xDA, 0xFB, 0x61, 0x39, 0x48, 0x2D, 0xC2, 0x7E, 0x0D, 0x8E, 0x8F, 0x98, 0x57, 0x20, 0xB8, 0x15}, /* 20.0.0 Device Master Kek Source. */ {0xF9, 0x62, 0x05, 0x99, 0xE0, 0xB9, 0xA6, 0x9B, 0x9D, 0xAA, 0xB4, 0x12, 0x0B, 0x0F, 0xF5, 0x8F}, /* 21.0.0 Device Master Kek Source. */ - {0xC4, 0x6F, 0x0E, 0x72, 0x43, 0xCE, 0x87, 0xFC, 0x38, 0x95, 0x9B, 0xC9, 0x31, 0x44, 0x97, 0x63} /* 22.0.0 Device Master Kek Source. */ + {0xC4, 0x6F, 0x0E, 0x72, 0x43, 0xCE, 0x87, 0xFC, 0x38, 0x95, 0x9B, 0xC9, 0x31, 0x44, 0x97, 0x63}, /* 22.0.0 Device Master Kek Source. */ }; //!TODO: Update on mkey changes. /* device_master_kek_sources_dev Development Device Master Kek Sources. (DeviceMasterKekSourcesDev) */ @@ -83,7 +83,7 @@ static const u8 device_master_kek_sources_dev[KB_FIRMWARE_VERSION_MAX - KB_FIRMW {0xAE, 0x78, 0x36, 0xB6, 0x91, 0xEB, 0xAF, 0x9C, 0x18, 0xF1, 0xC0, 0xD5, 0x8A, 0x0C, 0x7C, 0xA1}, /* 19.0.0 Device Master Kek Source. */ {0x09, 0x12, 0x4F, 0x26, 0x90, 0xB9, 0xA6, 0xF5, 0xA5, 0x18, 0x74, 0xB6, 0x8D, 0x80, 0x59, 0x3D}, /* 20.0.0 Device Master Kek Source. */ {0x74, 0xB2, 0x5F, 0xA0, 0x4B, 0x74, 0x6D, 0x47, 0x5B, 0xA9, 0xF5, 0x26, 0x46, 0xD7, 0x4B, 0x6E}, /* 21.0.0 Device Master Kek Source. */ - {0xF3, 0xBC, 0xB5, 0xB5, 0x5F, 0x01, 0x50, 0x2B, 0x69, 0x69, 0x3A, 0x6B, 0xF9, 0x2C, 0x11, 0x9F} /* 22.0.0 Device Master Kek Source. */ + {0xF3, 0xBC, 0xB5, 0xB5, 0x5F, 0x01, 0x50, 0x2B, 0x69, 0x69, 0x3A, 0x6B, 0xF9, 0x2C, 0x11, 0x9F}, /* 22.0.0 Device Master Kek Source. */ }; //!TODO: Update on mkey changes. /* device_master_key_source_sources Device Master Key Source Sources. (DeviceMasterKeySourceSources) */ @@ -106,7 +106,7 @@ static const u8 device_master_key_source_sources[KB_FIRMWARE_VERSION_MAX - KB_FI {0x07, 0x38, 0x9A, 0xEC, 0x9C, 0xBD, 0x50, 0x4A, 0x4C, 0x1F, 0x04, 0xDA, 0x40, 0x68, 0x29, 0xE3}, /* 19.0.0 Device Master Key Source Source. */ {0xA3, 0x6B, 0x0A, 0xB5, 0x6F, 0x57, 0x4C, 0x5E, 0x00, 0xFD, 0x56, 0x21, 0xF5, 0x06, 0x6B, 0xD1}, /* 20.0.0 Device Master Key Source Source. */ {0xF9, 0x62, 0x05, 0x99, 0xE0, 0xB9, 0xA6, 0x9B, 0x9D, 0xAA, 0xB4, 0x12, 0x0B, 0x0F, 0xF5, 0x8F}, /* 21.0.0 Device Master Key Source Source. */ - {0xF8, 0xF4, 0x22, 0xA4, 0x34, 0xAE, 0x0E, 0x0C, 0x4D, 0x5C, 0x5B, 0xA1, 0x1B, 0x46, 0x1C, 0x78} /* 22.0.0 Device Master Key Source Source. */ + {0xF8, 0xF4, 0x22, 0xA4, 0x34, 0xAE, 0x0E, 0x0C, 0x4D, 0x5C, 0x5B, 0xA1, 0x1B, 0x46, 0x1C, 0x78}, /* 22.0.0 Device Master Key Source Source. */ }; //!TODO: Update on mkey changes. static const u8 seal_key_masks[][0x10] __attribute__((aligned(4))) = { @@ -116,7 +116,7 @@ static const u8 seal_key_masks[][0x10] __attribute__((aligned(4))) = { {0xE5, 0x4D, 0x9A, 0x02, 0xF0, 0x4F, 0x5F, 0xA8, 0xAD, 0x76, 0x0A, 0xF6, 0x32, 0x95, 0x59, 0xBB}, // SealKey_ImportEsDeviceKey {0x59, 0xD9, 0x31, 0xF4, 0xA7, 0x97, 0xB8, 0x14, 0x40, 0xD6, 0xA2, 0x60, 0x2B, 0xED, 0x15, 0x31}, // SealKey_ReencryptDeviceUniqueData {0xFD, 0x6A, 0x25, 0xE5, 0xD8, 0x38, 0x7F, 0x91, 0x49, 0xDA, 0xF8, 0x59, 0xA8, 0x28, 0xE6, 0x75}, // SealKey_ImportSslKey - {0x89, 0x96, 0x43, 0x9A, 0x7C, 0xD5, 0x59, 0x55, 0x24, 0xD5, 0x24, 0x18, 0xAB, 0x6C, 0x04, 0x61} // SealKey_ImportEsClientCertKey + {0x89, 0x96, 0x43, 0x9A, 0x7C, 0xD5, 0x59, 0x55, 0x24, 0xD5, 0x24, 0x18, 0xAB, 0x6C, 0x04, 0x61}, // SealKey_ImportEsClientCertKey }; static const u8 retail_specific_aes_key_source[0x10] __attribute__((aligned(4))) = { diff --git a/source/keys/key_sources.inl b/source/keys/key_sources.inl index 3a318dc..fc03f10 100644 --- a/source/keys/key_sources.inl +++ b/source/keys/key_sources.inl @@ -31,7 +31,7 @@ static const u8 master_kek_sources[KB_FIRMWARE_VERSION_MAX - KB_FIRMWARE_VERSION {0xD7, 0x63, 0x74, 0x46, 0x4E, 0xBA, 0x78, 0x0A, 0x7C, 0x9D, 0xB3, 0xE8, 0x7A, 0x3D, 0x71, 0xE3}, //19.0.0 {0xA1, 0x7D, 0x34, 0xDB, 0x2D, 0x9D, 0xDA, 0xE5, 0xF8, 0x15, 0x63, 0x4C, 0x8F, 0xE7, 0x6C, 0xD8}, //20.0.0 {0x66, 0xC8, 0xCB, 0x3D, 0xEC, 0xF4, 0x59, 0x73, 0x54, 0x88, 0xE1, 0x2E, 0xE6, 0x3D, 0x68, 0x46}, //21.0.0 - {0x15, 0xAC, 0x96, 0x34, 0xF5, 0x32, 0x56, 0x68, 0xFE, 0x5B, 0x9D, 0xD7, 0xED, 0x19, 0xB7, 0x8E} //22.0.0 + {0x15, 0xAC, 0x96, 0x34, 0xF5, 0x32, 0x56, 0x68, 0xFE, 0x5B, 0x9D, 0xD7, 0xED, 0x19, 0xB7, 0x8E}, //22.0.0 }; //!TODO: Update on mkey changes. /* master_key_vectors Production Master Key Vectors. (MasterKeySources) */ @@ -57,7 +57,7 @@ static const u8 master_key_vectors[KB_FIRMWARE_VERSION_MAX + 1][0x10] __attribut {0x4A, 0x01, 0x3B, 0xC7, 0x44, 0x6E, 0x45, 0xBD, 0xE6, 0x5E, 0x2B, 0xEC, 0x07, 0x37, 0x52, 0x86}, /* Master key 11 encrypted with Master key 12. */ {0x97, 0xE4, 0x11, 0xAB, 0x22, 0x72, 0x1A, 0x1F, 0x70, 0x5C, 0x00, 0xB3, 0x96, 0x30, 0x05, 0x28}, /* Master key 12 encrypted with Master key 13. */ {0xF7, 0x92, 0xC0, 0xEC, 0xF3, 0xA4, 0x8C, 0xB7, 0x0D, 0xB3, 0xF3, 0xAB, 0x10, 0x9B, 0x18, 0xBA}, /* Master key 13 encrypted with Master key 14. */ - {0x14, 0xCB, 0x60, 0x29, 0x3D, 0xE0, 0xFB, 0xF2, 0x5B, 0x60, 0xB6, 0xC5, 0x2E, 0x77, 0x8F, 0x98} /* Master key 14 encrypted with Master key 15. */ + {0x14, 0xCB, 0x60, 0x29, 0x3D, 0xE0, 0xFB, 0xF2, 0x5B, 0x60, 0xB6, 0xC5, 0x2E, 0x77, 0x8F, 0x98}, /* Master key 14 encrypted with Master key 15. */ }; //!TODO: Update on mkey changes. /* master_key_vectors_dev Development Master Key Vectors. (MasterKeySourcesDev) */ @@ -83,7 +83,7 @@ static const u8 master_key_vectors_dev[KB_FIRMWARE_VERSION_MAX + 1][0x10] __attr {0x90, 0x64, 0xF9, 0x08, 0x29, 0x88, 0xD4, 0xDC, 0x73, 0xA4, 0xA1, 0x13, 0x9E, 0x59, 0x85, 0xA0}, /* Master key 11 encrypted with Master key 12. */ {0x94, 0x46, 0x3B, 0xFA, 0x7D, 0xB9, 0xE2, 0x94, 0xC2, 0x9D, 0xB9, 0xA4, 0xB2, 0x56, 0xCA, 0xFE}, /* Master key 12 encrypted with Master key 13. */ {0x74, 0xB2, 0x5F, 0xA0, 0x4B, 0x74, 0x6D, 0x47, 0x5B, 0xA9, 0xF5, 0x26, 0x46, 0xD7, 0x4B, 0x6E}, /* Master key 13 encrypted with Master key 14. */ - {0x97, 0xB3, 0x61, 0x88, 0x5C, 0x0D, 0xA1, 0x38, 0x73, 0xA4, 0x2F, 0x1A, 0x46, 0xA1, 0x09, 0xBF} /* Master key 14 encrypted with Master key 15. */ + {0x97, 0xB3, 0x61, 0x88, 0x5C, 0x0D, 0xA1, 0x38, 0x73, 0xA4, 0x2F, 0x1A, 0x46, 0xA1, 0x09, 0xBF}, /* Master key 14 encrypted with Master key 15. */ }; //!TODO: Update on mkey changes. /* Mariko Key Vectors. */ @@ -101,7 +101,7 @@ static const u8 mariko_key_vectors[][0x10] __attribute__((aligned(4))) = { {0x7D, 0xA6, 0xFE, 0xDA, 0xF9, 0xEF, 0x83, 0xD8, 0x29, 0x40, 0x24, 0x6D, 0x70, 0x8D, 0x99, 0x93}, /* Zeroes encrypted with AES Class Key 0A. */ {0xF6, 0x71, 0xAD, 0xC3, 0xCD, 0xD4, 0x2F, 0x37, 0xAB, 0x50, 0x1C, 0x9B, 0xAF, 0x3B, 0xE6, 0xC3}, /* Zeroes encrypted with AES Class Key 0B. */ {0x01, 0x96, 0x59, 0x07, 0x62, 0xF4, 0xF4, 0x2D, 0x13, 0x60, 0xD8, 0x03, 0xFB, 0xF0, 0xAE, 0xC8}, /* Zeroes encrypted with Mariko KEK. */ - {0x95, 0x48, 0xC1, 0x59, 0x0F, 0x84, 0x19, 0xC4, 0xAB, 0x69, 0x05, 0x88, 0x01, 0x31, 0x52, 0x59} /* Zeroes encrypted with Mariko BEK. */ + {0x95, 0x48, 0xC1, 0x59, 0x0F, 0x84, 0x19, 0xC4, 0xAB, 0x69, 0x05, 0x88, 0x01, 0x31, 0x52, 0x59}, /* Zeroes encrypted with Mariko BEK. */ }; static const u8 package2_key_source[0x10] __attribute__((aligned(4))) = { @@ -150,7 +150,7 @@ static const u8 mariko_master_kek_sources[KB_FIRMWARE_VERSION_MAX - KB_FIRMWARE_ {0x31, 0xBE, 0x25, 0xFB, 0xDB, 0xB4, 0xEE, 0x49, 0x5C, 0x77, 0x05, 0xC2, 0x36, 0x9F, 0x34, 0x80}, // 19.0.0. {0x1A, 0x31, 0x62, 0x87, 0xA8, 0x09, 0xCA, 0xF8, 0x69, 0x15, 0x45, 0xC2, 0x6B, 0xAA, 0x5A, 0x8A}, // 20.0.0. {0xEB, 0xF3, 0x5B, 0x2D, 0x4A, 0x2D, 0xCE, 0x45, 0x3A, 0x6F, 0x61, 0x38, 0x0B, 0x00, 0x3B, 0x46}, // 21.0.0. - {0x82, 0xE2, 0x0A, 0x59, 0x67, 0xDF, 0xBF, 0x51, 0x47, 0x62, 0x11, 0xF2, 0x41, 0xD3, 0xEE, 0x13} // 22.0.0. + {0x82, 0xE2, 0x0A, 0x59, 0x67, 0xDF, 0xBF, 0x51, 0x47, 0x62, 0x11, 0xF2, 0x41, 0xD3, 0xEE, 0x13}, // 22.0.0. }; //!TODO: Update on mkey changes. /* mariko_master_kek_sources_dev Mariko Development Master Kek Source. (MarikoMasterKekSourceDev) */ @@ -171,5 +171,5 @@ static const u8 mariko_master_kek_sources_dev[KB_FIRMWARE_VERSION_MAX - KB_FIRMW {0x65, 0x7B, 0x11, 0x46, 0x0E, 0xC2, 0x22, 0x5D, 0xB9, 0xF1, 0xF5, 0x00, 0xF9, 0x3E, 0x1F, 0x70}, // 19.0.0 {0x8C, 0x2E, 0xC1, 0x1C, 0xA0, 0x28, 0x35, 0xFC, 0x9A, 0x9F, 0x1D, 0x9B, 0x4E, 0xDF, 0x1E, 0x03}, // 20.0.0 {0x11, 0x1C, 0x13, 0x90, 0xD9, 0x5E, 0xB0, 0xA2, 0xE3, 0xD0, 0x0E, 0x5D, 0xC4, 0xFB, 0x9E, 0xDB}, // 21.0.0. - {0x2E, 0x27, 0x44, 0xEA, 0x32, 0xF8, 0x2C, 0xF0, 0x6F, 0xCA, 0xCD, 0x77, 0xAE, 0xAE, 0x1A, 0x1B} // 22.0.0. + {0x2E, 0x27, 0x44, 0xEA, 0x32, 0xF8, 0x2C, 0xF0, 0x6F, 0xCA, 0xCD, 0x77, 0xAE, 0xAE, 0x1A, 0x1B}, // 22.0.0. }; //!TODO: Update on mkey changes. From 979680b6204e54cc801ce1c1f6b2d9cd159382fd Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 19:45:35 +0200 Subject: [PATCH 3/6] Added missing periods --- source/keys/key_sources.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/keys/key_sources.inl b/source/keys/key_sources.inl index fc03f10..1cadbd4 100644 --- a/source/keys/key_sources.inl +++ b/source/keys/key_sources.inl @@ -168,8 +168,8 @@ static const u8 mariko_master_kek_sources_dev[KB_FIRMWARE_VERSION_MAX - KB_FIRMW {0x3A, 0x9C, 0xF0, 0x39, 0x70, 0x23, 0xF6, 0xAF, 0x71, 0x44, 0x60, 0xF4, 0x6D, 0xED, 0xA1, 0xD6}, // 16.0.0. {0x43, 0xDB, 0x9D, 0x88, 0xDB, 0x38, 0xE9, 0xBF, 0x3D, 0xD7, 0x83, 0x39, 0xEF, 0xB1, 0x4F, 0xA7}, // 17.0.0. {0xE4, 0x45, 0xD0, 0x14, 0xA0, 0xE5, 0xE9, 0x4B, 0xFE, 0x76, 0xF4, 0x29, 0x41, 0xBB, 0x64, 0xED}, // 18.0.0. - {0x65, 0x7B, 0x11, 0x46, 0x0E, 0xC2, 0x22, 0x5D, 0xB9, 0xF1, 0xF5, 0x00, 0xF9, 0x3E, 0x1F, 0x70}, // 19.0.0 - {0x8C, 0x2E, 0xC1, 0x1C, 0xA0, 0x28, 0x35, 0xFC, 0x9A, 0x9F, 0x1D, 0x9B, 0x4E, 0xDF, 0x1E, 0x03}, // 20.0.0 + {0x65, 0x7B, 0x11, 0x46, 0x0E, 0xC2, 0x22, 0x5D, 0xB9, 0xF1, 0xF5, 0x00, 0xF9, 0x3E, 0x1F, 0x70}, // 19.0.0. + {0x8C, 0x2E, 0xC1, 0x1C, 0xA0, 0x28, 0x35, 0xFC, 0x9A, 0x9F, 0x1D, 0x9B, 0x4E, 0xDF, 0x1E, 0x03}, // 20.0.0. {0x11, 0x1C, 0x13, 0x90, 0xD9, 0x5E, 0xB0, 0xA2, 0xE3, 0xD0, 0x0E, 0x5D, 0xC4, 0xFB, 0x9E, 0xDB}, // 21.0.0. {0x2E, 0x27, 0x44, 0xEA, 0x32, 0xF8, 0x2C, 0xF0, 0x6F, 0xCA, 0xCD, 0x77, 0xAE, 0xAE, 0x1A, 0x1B}, // 22.0.0. }; //!TODO: Update on mkey changes. From e06ace45d837c3f466f4116c71a35559654fa5c0 Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 19:47:53 +0200 Subject: [PATCH 4/6] Fixed typo "Master key 0F" is written twice, but the last one was supposed to be "Master key 10". --- source/keys/key_sources.inl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/keys/key_sources.inl b/source/keys/key_sources.inl index 1cadbd4..e4bce51 100644 --- a/source/keys/key_sources.inl +++ b/source/keys/key_sources.inl @@ -79,7 +79,7 @@ static const u8 master_key_vectors_dev[KB_FIRMWARE_VERSION_MAX + 1][0x10] __attr {0xD6, 0x80, 0x98, 0xC0, 0xFA, 0xC7, 0x13, 0xCB, 0x93, 0xD2, 0x0B, 0x82, 0x4C, 0xA1, 0x7B, 0x8D}, /* Master key 0D encrypted with Master key 0E. */ {0x78, 0x66, 0x19, 0xBD, 0x86, 0xE7, 0xC1, 0x09, 0x9B, 0x6F, 0x92, 0xB2, 0x58, 0x7D, 0xCF, 0x26}, /* Master key 0E encrypted with Master key 0F. */ {0x39, 0x1E, 0x7E, 0xF8, 0x7E, 0x73, 0xEA, 0x6F, 0xAF, 0x00, 0x3A, 0xB4, 0xAA, 0xB8, 0xB7, 0x59}, /* Master key 0F encrypted with Master key 10. */ - {0x0C, 0x75, 0x39, 0x15, 0x53, 0xEA, 0x81, 0x11, 0xA3, 0xE0, 0xDC, 0x3D, 0x0E, 0x76, 0xC6, 0xB8}, /* Master key 0F encrypted with Master key 11. */ + {0x0C, 0x75, 0x39, 0x15, 0x53, 0xEA, 0x81, 0x11, 0xA3, 0xE0, 0xDC, 0x3D, 0x0E, 0x76, 0xC6, 0xB8}, /* Master key 10 encrypted with Master key 11. */ {0x90, 0x64, 0xF9, 0x08, 0x29, 0x88, 0xD4, 0xDC, 0x73, 0xA4, 0xA1, 0x13, 0x9E, 0x59, 0x85, 0xA0}, /* Master key 11 encrypted with Master key 12. */ {0x94, 0x46, 0x3B, 0xFA, 0x7D, 0xB9, 0xE2, 0x94, 0xC2, 0x9D, 0xB9, 0xA4, 0xB2, 0x56, 0xCA, 0xFE}, /* Master key 12 encrypted with Master key 13. */ {0x74, 0xB2, 0x5F, 0xA0, 0x4B, 0x74, 0x6D, 0x47, 0x5B, 0xA9, 0xF5, 0x26, 0x46, 0xD7, 0x4B, 0x6E}, /* Master key 13 encrypted with Master key 14. */ From 5f2f568832405053c6d75a43fd727167a1108f24 Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 20:49:33 +0200 Subject: [PATCH 5/6] Fix wrong keys "0xF9, 0x62, 0x05, 0x99, 0xE0, 0xB9, 0xA6, 0x9B, 0x9D, 0xAA, 0xB4, 0x12, 0x0B, 0x0F, 0xF5, 0x8F" was taken from "Device Master Key Source Sources.", not "Production Device Master Kek Sources.", and it has been replaced with the proper "0x92, 0xBF, 0x37, 0x80, 0x0E, 0x79, 0x56, 0x8C, 0x57, 0x75, 0x72, 0x0A, 0x48, 0xD8, 0x15, 0x39" key. "0x74, 0xB2, 0x5F, 0xA0, 0x4B, 0x74, 0x6D, 0x47, 0x5B, 0xA9, 0xF5, 0x26, 0x46, 0xD7, 0x4B, 0x6E" was taken from "Development Master Key Vectors.", not "Development Device Master Kek Sources.", and it has been replaced with the proper "0x7A, 0x4C, 0x38, 0xB7, 0x03, 0x6B, 0x1E, 0x81, 0x20, 0x53, 0x14, 0x99, 0xA4, 0x21, 0x92, 0x9F" key. --- source/keys/crypto.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/keys/crypto.h b/source/keys/crypto.h index b2c4fe3..faa9308 100644 --- a/source/keys/crypto.h +++ b/source/keys/crypto.h @@ -59,7 +59,7 @@ static const u8 device_master_kek_sources[KB_FIRMWARE_VERSION_MAX - KB_FIRMWARE_ {0xE7, 0x85, 0x8C, 0xA2, 0xF4, 0x49, 0xCB, 0x07, 0xD1, 0x8E, 0x48, 0x1B, 0xE8, 0x1E, 0x28, 0x3B}, /* 18.0.0 Device Master Kek Source. */ {0x9B, 0xA5, 0xFD, 0x74, 0x7F, 0xCD, 0x23, 0xD1, 0xD9, 0xBD, 0x6C, 0x51, 0x72, 0x5F, 0x3D, 0x1F}, /* 19.0.0 Device Master Kek Source. */ {0xDA, 0xFB, 0x61, 0x39, 0x48, 0x2D, 0xC2, 0x7E, 0x0D, 0x8E, 0x8F, 0x98, 0x57, 0x20, 0xB8, 0x15}, /* 20.0.0 Device Master Kek Source. */ - {0xF9, 0x62, 0x05, 0x99, 0xE0, 0xB9, 0xA6, 0x9B, 0x9D, 0xAA, 0xB4, 0x12, 0x0B, 0x0F, 0xF5, 0x8F}, /* 21.0.0 Device Master Kek Source. */ + {0x92, 0xBF, 0x37, 0x80, 0x0E, 0x79, 0x56, 0x8C, 0x57, 0x75, 0x72, 0x0A, 0x48, 0xD8, 0x15, 0x39}, /* 21.0.0 Device Master Kek Source. */ {0xC4, 0x6F, 0x0E, 0x72, 0x43, 0xCE, 0x87, 0xFC, 0x38, 0x95, 0x9B, 0xC9, 0x31, 0x44, 0x97, 0x63}, /* 22.0.0 Device Master Kek Source. */ }; //!TODO: Update on mkey changes. @@ -82,7 +82,7 @@ static const u8 device_master_kek_sources_dev[KB_FIRMWARE_VERSION_MAX - KB_FIRMW {0x3B, 0x00, 0x89, 0xD7, 0xA9, 0x9E, 0xB7, 0x70, 0x86, 0x00, 0xC3, 0x49, 0x52, 0x8C, 0xA4, 0xAF}, /* 18.0.0 Device Master Kek Source. */ {0xAE, 0x78, 0x36, 0xB6, 0x91, 0xEB, 0xAF, 0x9C, 0x18, 0xF1, 0xC0, 0xD5, 0x8A, 0x0C, 0x7C, 0xA1}, /* 19.0.0 Device Master Kek Source. */ {0x09, 0x12, 0x4F, 0x26, 0x90, 0xB9, 0xA6, 0xF5, 0xA5, 0x18, 0x74, 0xB6, 0x8D, 0x80, 0x59, 0x3D}, /* 20.0.0 Device Master Kek Source. */ - {0x74, 0xB2, 0x5F, 0xA0, 0x4B, 0x74, 0x6D, 0x47, 0x5B, 0xA9, 0xF5, 0x26, 0x46, 0xD7, 0x4B, 0x6E}, /* 21.0.0 Device Master Kek Source. */ + {0x7A, 0x4C, 0x38, 0xB7, 0x03, 0x6B, 0x1E, 0x81, 0x20, 0x53, 0x14, 0x99, 0xA4, 0x21, 0x92, 0x9F}, /* 21.0.0 Device Master Kek Source. */ {0xF3, 0xBC, 0xB5, 0xB5, 0x5F, 0x01, 0x50, 0x2B, 0x69, 0x69, 0x3A, 0x6B, 0xF9, 0x2C, 0x11, 0x9F}, /* 22.0.0 Device Master Kek Source. */ }; //!TODO: Update on mkey changes. From d3ad3773e3740992cbb5f10d93607cd6b68b7fa2 Mon Sep 17 00:00:00 2001 From: parkatoast Date: Sun, 5 Apr 2026 20:51:24 +0200 Subject: [PATCH 6/6] "Update comments to be in format Local name -- secmon_boot_key_data.s -- fusee_key_derivation.cpp" commit reworked MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed and cleaned up key-source comments so they consistently use the right local names and (when available) the matching names from secmon_boot_key_data.s and fusee_key_derivation.cpp, removed labels that didn’t actually match, and added a few missing ones. Also removed the trailing whitespace that was after "(MasterKeySource) */". --- source/keys/key_sources.inl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/keys/key_sources.inl b/source/keys/key_sources.inl index e4bce51..2a067ef 100644 --- a/source/keys/key_sources.inl +++ b/source/keys/key_sources.inl @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -/* master_kek_sources Erista Master Kek Source. (EristaMasterKekSource) */ +/* master_kek_sources (EristaMasterKekSource) */ static const u8 master_kek_sources[KB_FIRMWARE_VERSION_MAX - KB_FIRMWARE_VERSION_620 + 1][0x10] __attribute__((aligned(4))) = { {0x37, 0x4B, 0x77, 0x29, 0x59, 0xB4, 0x04, 0x30, 0x81, 0xF6, 0xE5, 0x8C, 0x6D, 0x36, 0x17, 0x9A}, //6.2.0 {0x9A, 0x3E, 0xA9, 0xAB, 0xFD, 0x56, 0x46, 0x1C, 0x9B, 0xF6, 0x48, 0x7F, 0x5C, 0xFA, 0x09, 0x5C}, //7.0.0 @@ -86,7 +86,7 @@ static const u8 master_key_vectors_dev[KB_FIRMWARE_VERSION_MAX + 1][0x10] __attr {0x97, 0xB3, 0x61, 0x88, 0x5C, 0x0D, 0xA1, 0x38, 0x73, 0xA4, 0x2F, 0x1A, 0x46, 0xA1, 0x09, 0xBF}, /* Master key 14 encrypted with Master key 15. */ }; //!TODO: Update on mkey changes. -/* Mariko Key Vectors. */ +/* mariko_key_vectors */ static const u8 mariko_key_vectors[][0x10] __attribute__((aligned(4))) = { {0x20, 0x9E, 0x97, 0xAE, 0xAF, 0x7E, 0x6A, 0xF6, 0x9E, 0xF5, 0xA7, 0x17, 0x2F, 0xF4, 0x49, 0xA6}, /* Zeroes encrypted with AES Class Key 00. */ {0x83, 0x1C, 0xC7, 0x7F, 0xB8, 0xB2, 0x66, 0x16, 0xFC, 0x6B, 0x81, 0xBB, 0xF6, 0x05, 0x07, 0x49}, /* Zeroes encrypted with AES Class Key 01. */ @@ -120,15 +120,15 @@ static const u8 keyblob_key_sources[][0x10] __attribute__((aligned(4))) = { static const u8 keyblob_mac_key_source[0x10] __attribute__((aligned(4))) = { 0x59, 0xC7, 0xFB, 0x6F, 0xBE, 0x9B, 0xBE, 0x87, 0x65, 0x6B, 0x15, 0xC0, 0x53, 0x73, 0x36, 0xA5}; -/* Master Key Source. (MasterKeySource) */ +/* master_key_source Master Key Source. (MasterKeySource) */ static const u8 master_key_source[0x10] __attribute__((aligned(4))) = { 0xD8, 0xA2, 0x41, 0x0A, 0xC6, 0xC5, 0x90, 0x01, 0xC6, 0x1D, 0x6A, 0x26, 0x7C, 0x51, 0x3F, 0x3C}; -/* Device Key Source. (DeviceKeySource) */ +/* per_console_key_source (DeviceKeySource) */ static const u8 per_console_key_source[0x10] __attribute__((aligned(4))) = { 0x4F, 0x02, 0x5F, 0x0E, 0xB6, 0x6D, 0x11, 0x0E, 0xDC, 0x32, 0x7D, 0x41, 0x86, 0xC2, 0xF4, 0x78}; -/* Device Master Key Source Kek Source. */ +/* device_master_key_source_kek_source Device Master Key Source Kek Source. (DeviceMasterKeySourceKekSource) */ static const u8 device_master_key_source_kek_source[0x10] __attribute__((aligned(4))) = { 0x0C, 0x91, 0x09, 0xDB, 0x93, 0x93, 0x07, 0x81, 0x07, 0x3C, 0xC4, 0x16, 0x22, 0x7C, 0x6C, 0x28};