refactor: Move HSM keys to common/hsm_keys.json
What changed, and why it matters
This is a code-maintenance refactor, not a security fix. It moves public HSM (Hardware Security Module) and device-authenticity root keys from a C header file into a shared JSON file, then auto-generates both the C header and a Python file from that JSON. The actual key values do not change. A few related C files are updated to use a new feature flag (USE_MCU_ATTESTATION) and consistent size constants for the ML-DSA algorithm. There is no evidence in the commit of a vulnerability being patched.
No security action required. Treat as normal build/development hygiene. If reviewing, verify that generate_hsm_keys.py correctly reproduces the prior key values and that the new USE_MCU_ATTESTATION guards compile cleanly on targets that do not support MCU attestation.
Security signals we found
Public keys only — no private key material is present in the repository
No change to signature verification logic; only macro/constant refactoring
ML-DSA code paths now gated by USE_MCU_ATTESTATION feature flag
Auto-generation tooling added to reduce manual key duplication
No changelog entry and title says 'refactor'
Evidence from the diff
The commit centralizes HSM/device-authenticity public keys in common/hsm_keys.json and adds core/tools/generate_hsm_keys.py to produce core/embed/projects/prodtest/cmd/hsm_keys.h and python/src/trezorlib/root_keys.py. The generated hsm_keys.h contains the same key material as before, only reformatted. The C code in common.c and prodtest_secrets.c is adjusted to guard ML-DSA44 code with USE_MCU_ATTESTATION and to use MCU_ATTESTATION_PUBKEY_SIZE/PRIVKEY_SIZE/SIG_SIZE instead of the generic MLDSA* macros. Makefile targets hsm_keys and hsm_keys_check are added. No cryptographic logic, key values, or trust decisions are altered.
Changed components
common/hsm_keys.jsoncore/embed/projects/prodtest/cmd/hsm_keys.hcore/embed/projects/prodtest/cmd/common.ccore/embed/projects/prodtest/cmd/prodtest_secrets.ccore/tools/generate_hsm_keys.pypython/src/trezorlib/_root_keys.pyMakefileInspect captured patch +690 / −468
diff --git a/Makefile b/Makefile
index e0f50571..6178a4b7 100644
--- a/Makefile
+++ b/Makefile
@@ -193,6 +193,12 @@ tropic_model_config:
tropic_model_config_check:
./core/tools/generate_tropic_model_config.py --check
-gen: templates mocks icons protobuf vendorheader solana_templates bootloader_hashes lsgen tropic_model_config ## regenerate auto-generated files from sources
+hsm_keys:
+ ./core/tools/generate_hsm_keys.py
-gen_check: templates_check mocks_check icons_check protobuf_check vendorheader_check solana_templates_check bootloader_hashes_check lsgen_check tropic_model_config_check ## check validity of auto-generated files
+hsm_keys_check:
+ ./core/tools/generate_hsm_keys.py --check
+
+gen: templates mocks icons protobuf vendorheader solana_templates bootloader_hashes lsgen tropic_model_config hsm_keys ## regenerate auto-generated files from sources
+
+gen_check: templates_check mocks_check icons_check protobuf_check vendorheader_check solana_templates_check bootloader_hashes_check lsgen_check tropic_model_config_check hsm_keys_check ## check validity of auto-generated files
diff --git a/common/hsm_keys.json b/common/hsm_keys.json
new file mode 100644
index 00000000..1f8eb243
--- /dev/null
+++ b/common/hsm_keys.json
@@ -0,0 +1,33 @@
+{
+ "shared": {
+ "HSM_PUBLIC_DEBUG_X25519": "cfce80f7c87ea1e93d0d80983fecc998a0ddb6aa7a36366b6c7dd409325f674b"
+ },
+ "models": {
+ "T2B1": {
+ "DEV_AUTH_ROOT_PROD_P256": "04ca97480ac0d7b1e6efafe518cd433cec2bf8ab9822d76eafd34363b55d63e60380bff20acc75cde03cffcb50ab6f8ce70c878e37ebc58ff7cca0a83b16b15fa5",
+ "DEV_AUTH_ROOT_DEBUG_P256": "047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a"
+ },
+ "T3B1": {
+ "DEV_AUTH_ROOT_PROD_P256": "045b5c3fdd01f3602092834209b86df0ca86a9faf25cac35c73bf6237d66eb21eafcec3706f1ccd5eb4cc7f2fa1751213eccb1c78389afba89a5788ff31ee46a5d",
+ "DEV_AUTH_ROOT_DEBUG_P256": "047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a"
+ },
+ "T3T1": {
+ "DEV_AUTH_ROOT_PROD_P256": "041854b27fb1d9f65abb66828e78c9dc0ca301e66081ab0c6a4d104f9df1cd0ad5a7c75f77a8c092f55cf825d2abaf734f934c9394d5e75f75a5a06a5ee9be93ae",
+ "DEV_AUTH_ROOT_DEBUG_P256": "04e48b69cd7962068d3cca3bcc6b1747ef496c1e28b5529e34ad7295215ea161dbe8fb08ae0479568f9d2cb07630cb3e52f4af0692102da5873559e45e9fa72959"
+ },
+ "T3W1": {
+ "HSM_PUBLIC_PROD_X25519": "ba792d15c687b4a531be201e887386aa7b9f24092db77ac95b84eeb33666475c",
+ "HSM_PUBLIC_PROD_BACKUP_X25519": "077ae8f9f8839a8f0773c49889402186f9f9a8f4b2e7ac0ee583a2f7e6638254",
+ "DEV_AUTH_ROOT_PROD_P256": "040dde0d3e0d4da593fac6fd02a461d0e7eef238aca55c7c50b4e9ec37f3873303b6429ef1c9b78b4411a7dcbbc5dde5225979c1c2da3b073e82b1ed3f5f9825bb",
+ "DEV_AUTH_ROOT_PROD_ED25519": "59237acd17134061d655b3f8d624573ca06ce8d862f38ba4e05140ce1d3d609d",
+ "DEV_AUTH_ROOT_PROD_MLDSA44": "ea67d6000e79d16bc9119cea88b3415369d612f02a6bca6e18e0dbe5e2d37da716b993a05258a642c656a4e1c80f2db1f2818e5ebcbe5715448389079526895f8e620001b1c1dc857aa6165ec1d0b731127c424cbf0dec1ae33bbce500b9e7974d2a83626fe0be91555d79e1f91fbcb5df821738385cba29dc1a71c3ef2d1d3b3165ff66b4638b7121db9ecdfeb39d20163732d1685f7604956de9f549c5a7fcbf2a27b913a94107904cdbfe486df4a62dc27f0f7ba14c1103f9de86480c12bcaf1bab70584277a9fdac50d03d50e9e7bb6dd3b8b61cafe07c5513c4fbb35d14766fef0582ca1d78ebc4fb246ee3ac231eef770e74ad4207dddc8f3666700c84aa1446cb5ceef0b6f113041a9eeb8708564a4c43fdb46203dd1a2b2c48a0e485bc10a72a8a8e5b006d3d398941b33365b04b54d14d230950c7df048afd2c16ff1515387a97b712f68f65f08fd722d4b75c97007c4f7dfff5e5f22908b56bf40acd5263cc419007a355bcd1f4a3dd201286e58be1165e0eedf6c236c7aaa7cff3a8fbd6aee5d3ea5368bbf0aad8f41147ce874e2c97ed3fdfe859def143f63c1e7a093ce18615016a857e875a4099d7a56b036c7bdba205ff21841c4693ecfe08ae8faf10c73fe3a8e202a585c39ae8b084f2879a2c20faf8abe5163eb8acfffde4b9a73a9706bb5d3ae91235f673df8f20f5dd72c06df8a7401924c614eb12d915deffacba689738612780877f39a891b3cc0673c728653f72874386d6a097516d56c196c9f1515a62b5ddbab2c795d48be8b6a304533034f323c6970d43a08957d8b0db7cf80e6c02589069f9bf622e60f6953bfd10d68cac3d421bf9145169fa0b10d2384212556e042d95686c44bacd01b8b2e698163ca6d2b965557e8e16f0d3672bb32c0dc3bbced78f75918df59742fcb9834925b50c568ec305db53e3d7915851620f0763820ad511896041d7a836b764b51273f6ab1e4021e67bcc5095c02f55c132b674d47b36271830508c6d08e7578181fcf95c9027c43bebc56b0d083d6bbde10e70113ae41102181f147bd6aad58898d296b14ec4f7e049ff47831949b8f5aa29a2c74e7ea26a4270e84d4ace36407b255767f9eb9676d15559d1c403b1a5949a9ca2a74e6e0f2719b11306911799be9dea597ec8b375bac646f8a9a03e6f2271d9fb5b695c51d7fe2125a08e243d63e5d426b6dbbc149a87e65f8b1888465f99ce519ce4dd8d51432e45e4bd01a41893189a8656bc9c9226fc4bbc38441569d3be87180c833d63d53adc15d953ec6fcd1643aa00f20aea7cc169efeeb962ebb724ba0008861a1fda988c93d3ea0e3224d4c72c0c2fecf4f954f9fcf47b5f39b59a9c4c12423382ae2ef547310490bb3d57661a51b9ee356d0720f6e376e2374c38e738e158dbec8d7cc5a23a6269a3ca441a4ec406ddeef5a0d6007d0b3590ba19eeb2a6da67fe21b68625d1d422739c928c7b9a49163a6ffe60cfce4cfa918b690fe5b300022e88ff164020ce9815d18c97a63ad3383e1101eb523c5e1d20482dd6d0411b13b75c89e864fa6bede2674bfa5c3283a1487a3093ff05dba3f86420a7a9ac62c59971fa9d10c9ebc68f36d65e798f95c3a2cb11993ae1454855cda4d8290f2f0aa8f48cbddad92211a1e1a38588822159c257c077a7bd1c1afeb3644e6001a1f0dc0833993c068879f484d6a4da8c1fb85959d282be52583225b60c31cf1ebe0e74bbd3fc74caf039ad3c03f59b5da694fa810e199ad7587b593548c828a18c6a9b657df6cb39e839f36beffc07c6e85c8bbd7e98646af879bead4d3e1b79c401eb6449a4200f1cbdad39329fc43c5553a286a0",
+ "DEV_AUTH_ROOT_PROD_BACKUP_P256": "04c6a673af4ec44b10441b1d78676e15173ad0e36df9f7f2fa1cd819955f20fe32917b60da5fed3b3aa54a9ab8b3ed27d198b3768cad26eef5935cd87af0af065e",
+ "DEV_AUTH_ROOT_PROD_BACKUP_ED25519": "5612606584ee7e0bc313b13f7ac94156bb4cb75bd77585ddbe579301306e85f1",
+ "DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44": "fedf8b0c16164b9cec427882aa03d3bd6a1588cfbaebaf93cf2fc52f275417777433a938dcd6516345148f728c935a40ef3b6c41fd3ed831fea13774bd39887da8b06e2e671cc32a1c72e44a13d1cd985dc2ddcb63e457bbd29d38186ddb776b8e73b645c8bf616309f890d175538a9d10c82e595dea03f70564ff69b53497ecefd51fd8320041d9b1092386033ed37a93dd9b4b9da1297f808eac21020b8dc4747e01854ebdc407a04fc18b2758720125acb41f0c60e16cd53707a65392feed06c9fcc28a3e738dbc91614e89e5d535274c6b226d83f335a0dd088755571cf62496ca4642ec8e65eba8be2b8cec46416c6a3ad4be10569ac532e02d6e06b6ce0c0d4b7a99a11c910f9f0631b0cd72e20637237eeff723e722f7aa626732434c47843a099739e96e31267d8d6905d8b2b712a5a69d9343a3c1e07afb414b73950f4b1df196243005fb61c6200ef346826d6c0f4cc8ede052ed48235997bb366dade4483bfc11fe65fd0c5539e89d8bd271e54e30da6e5192a0f343dea3806aa798d12d62251a063d071ba67c35d3a26e582c2d361cf2d0fc36fb1b5a46e469669338b1c1744bdfe365700a6a1c641ab2b7906e2b7c0c0a9af8862ab5751a678e3e0156847ff6093ca7ebd48dd8b1d6f7736c2039e705c1e20f42ed5cac6db3dc7a7e2facbb75411e7fb8a156df52a2926afa9070937cde4dd4bd456294ba59bdcf123f11dcda267d475721abfecab1b31848a27236aa751e5b55015f033d87fb9cf5c086e09f1667cf7ec2e72436c907c5763690d698fffa997709bb89526cae772bb962c06ed1b89d418835672b85e1a1b2e3c55f4e607ecad09bdb3a18224b9805659aa2ecf0b62dbf6265e27d4101450edb590d52d525b62b1114dad2eb06c951a2c77c7ecfbf5f1f6fe285f39727958ce0b5cfe8fd465420c270309999e6694ee31fcb7d6480a75d0d72558cd6a050b8d11a9a6d7736700027fbe14b48949b7e1af2ca148ad4e4b4b93e9575a4119afd1b57c250606d5a4e258c2393c104d651995b1e75887f492ff05e92e1630332f176d86a0453b412d0869d98d6ab27377a74766e3cadde29c1853e6398a9edfa48c0d14e7c148b048f1bf25d11979e94878cb86eaf1e55638c1b39e0ac5254a009bf957f4b624796753c3451246e5a7b9022926aa77b7a1b4ae7d25f776d4395ba98a37d9e21b221da29564e50a669056650a40489386e8909c6ca21d369c3495c44b2f71373a392c9fa89c9085f467d24d6219fcdd2b56126792eb6a14269c4264a56926b1a7d9a1c03d9649d157f938abfdc2a56c20795065774838030da41a4c6178919cc1c6c88de1458d9baa1e51a4a1994e6d5cc94b049b15c235c5cf46d2cf23f09d565c5a5497ef0b3a5fbc8d1be8ed78f3794c49d4936139b0419faaffc52b55cb91f6e1bafacd55523c0b7eec56d98e4228cd0f9d00bc9866dac71e43db2b2cf311999d7bc3a49219836f558cbb5d8faa79e83079c6ce92288aae852553b655ef6bc87fbb25ca3ab482aecaf0a86eecc92341906cc89d234087f5abd6d2100a60d361d516d460d436b46706ad44b8b4ef3fe54ea198ffc2cf8c8e144ec62c4ce86ed5d181283fc17c926668ca4e0b8683e0c7bc662a54ea7f4c830365ad1cdea58abee9a726168ce9870729972884ecfe5baf06f1ee664aa422e26f9f76e20908d72e78c1a2dcd94fe1c07573d7706d7bdc07d0b41498c0d52ec3a90d6e7c0fcef597a884fb2caba29c2279569a1e64dd6c7ed4b312d2197b6391407899b25d21cefd1408eca42204f76cb0436f44c0a9c2e1eca19df8d93255c0da6469dc47da883e186387f76011cc8",
+ "DEV_AUTH_ROOT_DEBUG_P256": "04521192e173a9da4e3023f747d836563725372681eba3079c56ff11b2fc137ab189eb4155f371127651b5594f8c332fc1e9c0f3b80d4212822668b63189706578",
+ "DEV_AUTH_ROOT_STAGING_P256": "0465e88f9b2cea67e8364f0cfcfacd500af24e9040b357beee629ccc4fce1704d1a7ef7284f387708f92ef14600e2caad6894016fee819d623b95d66210c3e7519",
+ "DEV_AUTH_ROOT_STAGING_ED25519": "cd318dc8405ae4f4144e3284dcb7b0cb0f0c2195c2ca14a0f6fccd9104e32a4b",
+ "DEV_AUTH_ROOT_STAGING_MLDSA44": "1f3e5edad45fc6980dbfd597ed17b77e4d4ad1b1ec4804e04dc061cc2cfe77bc96fbc93f698f1fe00c47177c8150276dab86cbf407add7527deb09b65a6623ef581422292d77744be64f4401ca65b9bd027e32a76f307413b086869eccbcfc5e8823be8e0b3897727bca568feeff62957cd1e261e4aab67271725d240c7e7d2a20a5c201699be83d6c6a57fdfc09ac9b6b599e2a14a50e421d246d1d1df805db0b25534e500fed76fa89975a4270e274a9fa72b528e47d999abdeca5e08e51d447ae4019f699088d485bb52d5eec7a8c725cd34ff955c16437877a131f068438b5699c2285000463e24c633b023cde279be015db2f8b16de07fa82ee9adcbf868b898e25eeef5d60d03e1da874aca6f2089b1e7c72d7b532d3a27e38936d53c0080f9908b6727b13fe961ec8b08004f077b9cce95b5eee9b44d351e79eb222aba1bc18895d36cf4843ffcdfc735e1b66f3e72db5aaf8b5ecf56dbf0d616cf53d192a60e61ad3c51a595213100fd00835434a28aab3eb5949d3405de5db1a586bd6e937444913e9f1d4c00247acd49a2ed9953636e5d74417b4c7144c6c22fd8f7e25cb6cf6c8510de6915b74c95a28c197152208096d0249b86150e807978ca985c110d07b7d0a24434039f6ef12a69d3e073af6ae44e7c4606a354a3e953bdcff10c8dc68b807f41ac563ff0d7141c328b34152a25a16e9cb8228f7707356d2d7f3caa8d778a85e3b66242c124281c0f3201ad28596b868db138149eb98b821dcaaf86b5e11c2ac1161975bf0b2ecefc111b7b7401ce261911526618044d126eeee885efe51be0e32e93aaaffe34899df5b10df7c5a9c54c5b4704671640a92e8631f0d401f44c2238b5f9a37499b3d83c1c60096f2b48c3081dd9769db325c1cd1ffe84bfd8a80dde3cd650c49e14af3ab6c317ee74bd39e976ff5b7ad490e80f3eff9edf3b3855070a5a06fbe9cbca54f521e3d74cf13a4d116e23e531a7c70232c044b7e7d02467afe2a40def14298688eced5d3d87a102d31d7cd5409918ced4bab190505df48f451deea1c29168246d621529f0346eaab0e2302f3ce206dd84837704b8bdedbadea5b5822cdecbfdb180cde14e62ee26a929f0a37a99bacfe237376a3e6c289b06b8e93ed9d1435e3ee6399ab1a06d4f70097f80e26fe6f60b27a68104f6333b8db1bc78e12d54647b23feb0f11ae070f3a6be9d9f4d89a6b5ef8595d010d410e72138cfcbd5e41cca1df33ddad657b699cf4d3dc602888e5aaa0a7a2325ba4a36d7de49c591d8e355fd1de644d772bf2a060093743388dbe5d30a2d97304abc17c547bd65276291d6aa7b0723703733239fabef39c2de47071d50074e68fbe71c88f75d4510bb5f6bc244b3e7b219eb89fe5f148459a2d693cd3fac32aa069cbdd4e27c9778096f6805bf6df9aec9671f0a58b28704f74775e81ac46826c1c4709b0e0989d6e8e73bd1795ce85d85c14ad2997cd2810272a5682e7ed9aa7a092708c0f4bc67f68d317d406a96ddd2842ea22cbf3410cd7a77005b61115b794894cf9d10ebb4f5552bec8c21d90ba97d6139d5261d7f51f4009c3618f9feb22cc929ade204eca7c0f813409ceb88a13512f85e03948314ba9c4488aafda88ce447a0e052a6a605e32d04a20e2e52c41f371247963f24fc28c5cc1ddd8fe1681a2a293daf2688e9b026303a76cc60f40290c4d823efb85f36cb5e092369cc20515a8077e7702ed54ca1565d37b83184ee46c4a6adf2840f5a5fb002db70690bbf93888e685fdd1f9ea211b42693e0bd5ba5235a6ea1b714774d13279d7db3440f7fbced53f203ce6500555bcb9251e6f36d3352326501c"
+ }
+ }
+}
diff --git a/core/embed/projects/prodtest/cmd/common.c b/core/embed/projects/prodtest/cmd/common.c
index 520b107e..864c66f2 100644
--- a/core/embed/projects/prodtest/cmd/common.c
+++ b/core/embed/projects/prodtest/cmd/common.c
@@ -33,7 +33,10 @@
#include "sha2.h"
#include "string.h"
+#ifdef USE_MCU_ATTESTATION
#include <mldsa_native.h>
+#include <sec/mcu_attestation.h>
+#endif
// HSM root certification authority public keys.
const uint8_t ROOT_KEYS_P256[][ECDSA_PUBLIC_KEY_SIZE] = {
@@ -72,24 +75,25 @@ const ed25519_public_key ROOT_KEYS_ED25519[] = {
#endif
};
-const uint8_t
- ROOT_KEYS_MLDSA44[][MLDSA_PUBLICKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)] = {
+#ifdef USE_MCU_ATTESTATION
+const uint8_t ROOT_KEYS_MLDSA44[][MCU_ATTESTATION_PUBKEY_SIZE] = {
#if PRODUCTION
#ifdef DEV_AUTH_ROOT_PROD_MLDSA44
- DEV_AUTH_ROOT_PROD_MLDSA44,
+ DEV_AUTH_ROOT_PROD_MLDSA44,
#endif
#ifdef DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44
- DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44,
+ DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44,
#endif
#else
#ifdef DEV_AUTH_ROOT_DEBUG_MLDSA44
- DEV_AUTH_ROOT_DEBUG_MLDSA44,
+ DEV_AUTH_ROOT_DEBUG_MLDSA44,
#endif
#ifdef DEV_AUTH_ROOT_STAGING_MLDSA44
- DEV_AUTH_ROOT_STAGING_MLDSA44,
+ DEV_AUTH_ROOT_STAGING_MLDSA44,
#endif
#endif
};
+#endif // USE_MCU_ATTESTATION
// Identifier of context-specific constructed tag 3, which is used for
// extensions in X.509.
@@ -346,8 +350,9 @@ static bool verify_signature(alg_id_t alg_id, const uint8_t* pub_key,
return true;
}
+#ifdef USE_MCU_ATTESTATION
if (alg_id == ALG_ID_MLDSA44) {
- if (pub_key_size != MLDSA_PUBLICKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)) {
+ if (pub_key_size != MCU_ATTESTATION_PUBKEY_SIZE) {
return false;
}
@@ -358,6 +363,7 @@ static bool verify_signature(alg_id_t alg_id, const uint8_t* pub_key,
return true;
}
+#endif // USE_MCU_ATTESTATION
return false;
}
@@ -379,11 +385,13 @@ static bool get_root_public_key(
root_key_count = sizeof(ROOT_KEYS_ED25519) / sizeof(ROOT_KEYS_ED25519[0]);
root_key_size = sizeof(ROOT_KEYS_ED25519[0]);
break;
+#ifdef USE_MCU_ATTESTATION
case ALG_ID_MLDSA44:
root_keys = (const uint8_t*)ROOT_KEYS_MLDSA44;
root_key_count = sizeof(ROOT_KEYS_MLDSA44) / sizeof(ROOT_KEYS_MLDSA44[0]);
root_key_size = sizeof(ROOT_KEYS_MLDSA44[0]);
break;
+#endif // USE_MCU_ATTESTATION
default:
return false;
}
diff --git a/core/embed/projects/prodtest/cmd/hsm_keys.h b/core/embed/projects/prodtest/cmd/hsm_keys.h
index f31ffd40..697cf492 100644
--- a/core/embed/projects/prodtest/cmd/hsm_keys.h
+++ b/core/embed/projects/prodtest/cmd/hsm_keys.h
@@ -1,472 +1,479 @@
#pragma once
-// List of device authenticity root public keys and provisioning HSM public
-// keys.
+// Auto-generated by core/tools/generate_hsm_keys.py
+// Source: common/hsm_keys.json
-// clang-format off
-
-// X25519 secure channel debug key for provisioning all models.
-#define HSM_PUBLIC_DEBUG_X25519 \
- {0xcf, 0xce, 0x80, 0xf7, 0xc8, 0x7e, 0xa1, 0xe9, 0x3d, 0x0d, 0x80, 0x98, \
- 0x3f, 0xec, 0xc9, 0x98, 0xa0, 0xdd, 0xb6, 0xaa, 0x7a, 0x36, 0x36, 0x6b, \
- 0x6c, 0x7d, 0xd4, 0x09, 0x32, 0x5f, 0x67, 0x4b}
+#define HSM_PUBLIC_DEBUG_X25519 \
+ {0xcf, 0xce, 0x80, 0xf7, 0xc8, 0x7e, 0xa1, 0xe9, 0x3d, 0x0d, 0x80, \
+ 0x98, 0x3f, 0xec, 0xc9, 0x98, 0xa0, 0xdd, 0xb6, 0xaa, 0x7a, 0x36, \
+ 0x36, 0x6b, 0x6c, 0x7d, 0xd4, 0x09, 0x32, 0x5f, 0x67, 0x4b}
#ifdef TREZOR_MODEL_T2B1
-// P-256 ECDSA device authenticity root production key for T2B1.
-#define DEV_AUTH_ROOT_PROD_P256 \
- {0x04, 0xca, 0x97, 0x48, 0x0a, 0xc0, 0xd7, 0xb1, 0xe6, 0xef, 0xaf, 0xe5, \
- 0x18, 0xcd, 0x43, 0x3c, 0xec, 0x2b, 0xf8, 0xab, 0x98, 0x22, 0xd7, 0x6e, \
- 0xaf, 0xd3, 0x43, 0x63, 0xb5, 0x5d, 0x63, 0xe6, 0x03, 0x80, 0xbf, 0xf2, \
- 0x0a, 0xcc, 0x75, 0xcd, 0xe0, 0x3c, 0xff, 0xcb, 0x50, 0xab, 0x6f, 0x8c, \
- 0xe7, 0x0c, 0x87, 0x8e, 0x37, 0xeb, 0xc5, 0x8f, 0xf7, 0xcc, 0xa0, 0xa8, \
- 0x3b, 0x16, 0xb1, 0x5f, 0xa5}
+
+#define DEV_AUTH_ROOT_PROD_P256 \
+ { \
+ 0x04, 0xca, 0x97, 0x48, 0x0a, 0xc0, 0xd7, 0xb1, 0xe6, 0xef, 0xaf, \
+ 0xe5, 0x18, 0xcd, 0x43, 0x3c, 0xec, 0x2b, 0xf8, 0xab, 0x98, 0x22, \
+ 0xd7, 0x6e, 0xaf, 0xd3, 0x43, 0x63, 0xb5, 0x5d, 0x63, 0xe6, 0x03, \
+ 0x80, 0xbf, 0xf2, 0x0a, 0xcc, 0x75, 0xcd, 0xe0, 0x3c, 0xff, 0xcb, \
+ 0x50, 0xab, 0x6f, 0x8c, 0xe7, 0x0c, 0x87, 0x8e, 0x37, 0xeb, 0xc5, \
+ 0x8f, 0xf7, 0xcc, 0xa0, 0xa8, 0x3b, 0x16, 0xb1, 0x5f, 0xa5}
+
+#define DEV_AUTH_ROOT_DEBUG_P256 \
+ { \
+ 0x04, 0x7f, 0x77, 0x36, 0x8d, 0xea, 0x2d, 0x4d, 0x61, 0xe9, 0x89, \
+ 0xf4, 0x74, 0xa5, 0x67, 0x23, 0xc3, 0x21, 0x2d, 0xac, 0xf8, 0xa8, \
+ 0x08, 0xd8, 0x79, 0x55, 0x95, 0xef, 0x38, 0x44, 0x14, 0x27, 0xc4, \
+ 0x38, 0x9b, 0xc4, 0x54, 0xf0, 0x20, 0x89, 0xd7, 0xf0, 0x8b, 0x87, \
+ 0x30, 0x05, 0xe4, 0xc2, 0x8d, 0x43, 0x24, 0x68, 0x99, 0x78, 0x71, \
+ 0xc0, 0xbf, 0x28, 0x6f, 0xd3, 0x86, 0x1e, 0x21, 0xe9, 0x6a}
+
#endif // TREZOR_MODEL_T2B1
#ifdef TREZOR_MODEL_T3B1
-// P-256 ECDSA device authenticity root production key for T3B1.
-#define DEV_AUTH_ROOT_PROD_P256 \
- {0x04, 0x5b, 0x5c, 0x3f, 0xdd, 0x01, 0xf3, 0x60, 0x20, 0x92, 0x83, 0x42, \
- 0x09, 0xb8, 0x6d, 0xf0, 0xca, 0x86, 0xa9, 0xfa, 0xf2, 0x5c, 0xac, 0x35, \
- 0xc7, 0x3b, 0xf6, 0x23, 0x7d, 0x66, 0xeb, 0x21, 0xea, 0xfc, 0xec, 0x37, \
- 0x06, 0xf1, 0xcc, 0xd5, 0xeb, 0x4c, 0xc7, 0xf2, 0xfa, 0x17, 0x51, 0x21, \
- 0x3e, 0xcc, 0xb1, 0xc7, 0x83, 0x89, 0xaf, 0xba, 0x89, 0xa5, 0x78, 0x8f, \
- 0xf3, 0x1e, 0xe4, 0x6a, 0x5d}
-#endif // TREZOR_MODEL_T3B1
-#if defined TREZOR_MODEL_T2B1 || defined TREZOR_MODEL_T3B1
-// P-256 ECDSA device authenticity root debug key for T2B1 and T3B1.
-#define DEV_AUTH_ROOT_DEBUG_P256 \
- {0x04, 0x7f, 0x77, 0x36, 0x8d, 0xea, 0x2d, 0x4d, 0x61, 0xe9, 0x89, 0xf4, \
- 0x74, 0xa5, 0x67, 0x23, 0xc3, 0x21, 0x2d, 0xac, 0xf8, 0xa8, 0x08, 0xd8, \
- 0x79, 0x55, 0x95, 0xef, 0x38, 0x44, 0x14, 0x27, 0xc4, 0x38, 0x9b, 0xc4, \
- 0x54, 0xf0, 0x20, 0x89, 0xd7, 0xf0, 0x8b, 0x87, 0x30, 0x05, 0xe4, 0xc2, \
- 0x8d, 0x43, 0x24, 0x68, 0x99, 0x78, 0x71, 0xc0, 0xbf, 0x28, 0x6f, 0xd3, \
- 0x86, 0x1e, 0x21, 0xe9, 0x6a}
-#endif // TREZOR_MODEL_T2B1 || TREZOR_MODEL_T3B1
+#define DEV_AUTH_ROOT_PROD_P256 \
+ { \
+ 0x04, 0x5b, 0x5c, 0x3f, 0xdd, 0x01, 0xf3, 0x60, 0x20, 0x92, 0x83, \
+ 0x42, 0x09, 0xb8, 0x6d, 0xf0, 0xca, 0x86, 0xa9, 0xfa, 0xf2, 0x5c, \
+ 0xac, 0x35, 0xc7, 0x3b, 0xf6, 0x23, 0x7d, 0x66, 0xeb, 0x21, 0xea, \
+ 0xfc, 0xec, 0x37, 0x06, 0xf1, 0xcc, 0xd5, 0xeb, 0x4c, 0xc7, 0xf2, \
+ 0xfa, 0x17, 0x51, 0x21, 0x3e, 0xcc, 0xb1, 0xc7, 0x83, 0x89, 0xaf, \
+ 0xba, 0x89, 0xa5, 0x78, 0x8f, 0xf3, 0x1e, 0xe4, 0x6a, 0x5d}
+
+#define DEV_AUTH_ROOT_DEBUG_P256 \
+ { \
+ 0x04, 0x7f, 0x77, 0x36, 0x8d, 0xea, 0x2d, 0x4d, 0x61, 0xe9, 0x89, \
+ 0xf4, 0x74, 0xa5, 0x67, 0x23, 0xc3, 0x21, 0x2d, 0xac, 0xf8, 0xa8, \
+ 0x08, 0xd8, 0x79, 0x55, 0x95, 0xef, 0x38, 0x44, 0x14, 0x27, 0xc4, \
+ 0x38, 0x9b, 0xc4, 0x54, 0xf0, 0x20, 0x89, 0xd7, 0xf0, 0x8b, 0x87, \
+ 0x30, 0x05, 0xe4, 0xc2, 0x8d, 0x43, 0x24, 0x68, 0x99, 0x78, 0x71, \
+ 0xc0, 0xbf, 0x28, 0x6f, 0xd3, 0x86, 0x1e, 0x21, 0xe9, 0x6a}
+
+#endif // TREZOR_MODEL_T3B1
#ifdef TREZOR_MODEL_T3T1
-// P-256 ECDSA device authenticity root production key for T3T1.
-#define DEV_AUTH_ROOT_PROD_P256 \
- {0x04, 0x18, 0x54, 0xb2, 0x7f, 0xb1, 0xd9, 0xf6, 0x5a, 0xbb, 0x66, 0x82, \
- 0x8e, 0x78, 0xc9, 0xdc, 0x0c, 0xa3, 0x01, 0xe6, 0x60, 0x81, 0xab, 0x0c, \
- 0x6a, 0x4d, 0x10, 0x4f, 0x9d, 0xf1, 0xcd, 0x0a, 0xd5, 0xa7, 0xc7, 0x5f, \
- 0x77, 0xa8, 0xc0, 0x92, 0xf5, 0x5c, 0xf8, 0x25, 0xd2, 0xab, 0xaf, 0x73, \
- 0x4f, 0x93, 0x4c, 0x93, 0x94, 0xd5, 0xe7, 0x5f, 0x75, 0xa5, 0xa0, 0x6a, \
- 0x5e, 0xe9, 0xbe, 0x93, 0xae}
-// P-256 ECDSA device authenticity root debug key for T3T1.
-#define DEV_AUTH_ROOT_DEBUG_P256 \
- {0x04, 0xe4, 0x8b, 0x69, 0xcd, 0x79, 0x62, 0x06, 0x8d, 0x3c, 0xca, 0x3b, \
- 0xcc, 0x6b, 0x17, 0x47, 0xef, 0x49, 0x6c, 0x1e, 0x28, 0xb5, 0x52, 0x9e, \
- 0x34, 0xad, 0x72, 0x95, 0x21, 0x5e, 0xa1, 0x61, 0xdb, 0xe8, 0xfb, 0x08, \
- 0xae, 0x04, 0x79, 0x56, 0x8f, 0x9d, 0x2c, 0xb0, 0x76, 0x30, 0xcb, 0x3e, \
- 0x52, 0xf4, 0xaf, 0x06, 0x92, 0x10, 0x2d, 0xa5, 0x87, 0x35, 0x59, 0xe4, \
- 0x5e, 0x9f, 0xa7, 0x29, 0x59}
+#define DEV_AUTH_ROOT_PROD_P256 \
+ { \
+ 0x04, 0x18, 0x54, 0xb2, 0x7f, 0xb1, 0xd9, 0xf6, 0x5a, 0xbb, 0x66, \
+ 0x82, 0x8e, 0x78, 0xc9, 0xdc, 0x0c, 0xa3, 0x01, 0xe6, 0x60, 0x81, \
+ 0xab, 0x0c, 0x6a, 0x4d, 0x10, 0x4f, 0x9d, 0xf1, 0xcd, 0x0a, 0xd5, \
+ 0xa7, 0xc7, 0x5f, 0x77, 0xa8, 0xc0, 0x92, 0xf5, 0x5c, 0xf8, 0x25, \
+ 0xd2, 0xab, 0xaf, 0x73, 0x4f, 0x93, 0x4c, 0x93, 0x94, 0xd5, 0xe7, \
+ 0x5f, 0x75, 0xa5, 0xa0, 0x6a, 0x5e, 0xe9, 0xbe, 0x93, 0xae}
+
+#define DEV_AUTH_ROOT_DEBUG_P256 \
+ { \
+ 0x04, 0xe4, 0x8b, 0x69, 0xcd, 0x79, 0x62, 0x06, 0x8d, 0x3c, 0xca, \
+ 0x3b, 0xcc, 0x6b, 0x17, 0x47, 0xef, 0x49, 0x6c, 0x1e, 0x28, 0xb5, \
+ 0x52, 0x9e, 0x34, 0xad, 0x72, 0x95, 0x21, 0x5e, 0xa1, 0x61, 0xdb, \
+ 0xe8, 0xfb, 0x08, 0xae, 0x04, 0x79, 0x56, 0x8f, 0x9d, 0x2c, 0xb0, \
+ 0x76, 0x30, 0xcb, 0x3e, 0x52, 0xf4, 0xaf, 0x06, 0x92, 0x10, 0x2d, \
+ 0xa5, 0x87, 0x35, 0x59, 0xe4, 0x5e, 0x9f, 0xa7, 0x29, 0x59}
+
#endif // TREZOR_MODEL_T3T1
#ifdef TREZOR_MODEL_T3W1
-// X25519 secure channel production key for T3W1 provisioning.
-#define HSM_PUBLIC_PROD_X25519 \
- {0xba, 0x79, 0x2d, 0x15, 0xc6, 0x87, 0xb4, 0xa5, 0x31, 0xbe, 0x20, 0x1e, \
- 0x88, 0x73, 0x86, 0xaa, 0x7b, 0x9f, 0x24, 0x09, 0x2d, 0xb7, 0x7a, 0xc9, \
- 0x5b, 0x84, 0xee, 0xb3, 0x36, 0x66, 0x47, 0x5c}
-// X25519 secure channel backup production key for T3W1 provisioning.
-#define HSM_PUBLIC_PROD_BACKUP_X25519 \
- {0x07, 0x7a, 0xe8, 0xf9, 0xf8, 0x83, 0x9a, 0x8f, 0x07, 0x73, 0xc4, 0x98, \
- 0x89, 0x40, 0x21, 0x86, 0xf9, 0xf9, 0xa8, 0xf4, 0xb2, 0xe7, 0xac, 0x0e, \
- 0xe5, 0x83, 0xa2, 0xf7, 0xe6, 0x63, 0x82, 0x54}
+#define HSM_PUBLIC_PROD_X25519 \
+ {0xba, 0x79, 0x2d, 0x15, 0xc6, 0x87, 0xb4, 0xa5, 0x31, 0xbe, 0x20, \
+ 0x1e, 0x88, 0x73, 0x86, 0xaa, 0x7b, 0x9f, 0x24, 0x09, 0x2d, 0xb7, \
+ 0x7a, 0xc9, 0x5b, 0x84, 0xee, 0xb3, 0x36, 0x66, 0x47, 0x5c}
+
+#define HSM_PUBLIC_PROD_BACKUP_X25519 \
+ {0x07, 0x7a, 0xe8, 0xf9, 0xf8, 0x83, 0x9a, 0x8f, 0x07, 0x73, 0xc4, \
+ 0x98, 0x89, 0x40, 0x21, 0x86, 0xf9, 0xf9, 0xa8, 0xf4, 0xb2, 0xe7, \
+ 0xac, 0x0e, 0xe5, 0x83, 0xa2, 0xf7, 0xe6, 0x63, 0x82, 0x54}
+
+#define DEV_AUTH_ROOT_PROD_P256 \
+ { \
+ 0x04, 0x0d, 0xde, 0x0d, 0x3e, 0x0d, 0x4d, 0xa5, 0x93, 0xfa, 0xc6, \
+ 0xfd, 0x02, 0xa4, 0x61, 0xd0, 0xe7, 0xee, 0xf2, 0x38, 0xac, 0xa5, \
+ 0x5c, 0x7c, 0x50, 0xb4, 0xe9, 0xec, 0x37, 0xf3, 0x87, 0x33, 0x03, \
+ 0xb6, 0x42, 0x9e, 0xf1, 0xc9, 0xb7, 0x8b, 0x44, 0x11, 0xa7, 0xdc, \
+ 0xbb, 0xc5, 0xdd, 0xe5, 0x22, 0x59, 0x79, 0xc1, 0xc2, 0xda, 0x3b, \
+ 0x07, 0x3e, 0x82, 0xb1, 0xed, 0x3f, 0x5f, 0x98, 0x25, 0xbb}
-// P-256 ECDSA device authenticity root production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_P256 \
- {0x04, 0x0d, 0xde, 0x0d, 0x3e, 0x0d, 0x4d, 0xa5, 0x93, 0xfa, 0xc6, 0xfd, \
- 0x02, 0xa4, 0x61, 0xd0, 0xe7, 0xee, 0xf2, 0x38, 0xac, 0xa5, 0x5c, 0x7c, \
- 0x50, 0xb4, 0xe9, 0xec, 0x37, 0xf3, 0x87, 0x33, 0x03, 0xb6, 0x42, 0x9e, \
- 0xf1, 0xc9, 0xb7, 0x8b, 0x44, 0x11, 0xa7, 0xdc, 0xbb, 0xc5, 0xdd, 0xe5, \
- 0x22, 0x59, 0x79, 0xc1, 0xc2, 0xda, 0x3b, 0x07, 0x3e, 0x82, 0xb1, 0xed, \
- 0x3f, 0x5f, 0x98, 0x25, 0xbb}
+#define DEV_AUTH_ROOT_PROD_ED25519 \
+ {0x59, 0x23, 0x7a, 0xcd, 0x17, 0x13, 0x40, 0x61, 0xd6, 0x55, 0xb3, \
+ 0xf8, 0xd6, 0x24, 0x57, 0x3c, 0xa0, 0x6c, 0xe8, 0xd8, 0x62, 0xf3, \
+ 0x8b, 0xa4, 0xe0, 0x51, 0x40, 0xce, 0x1d, 0x3d, 0x60, 0x9d}
-// P-256 ECDSA device authenticity root backup production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_BACKUP_P256 \
- {0x04, 0xc6, 0xa6, 0x73, 0xaf, 0x4e, 0xc4, 0x4b, 0x10, 0x44, 0x1b, 0x1d, \
- 0x78, 0x67, 0x6e, 0x15, 0x17, 0x3a, 0xd0, 0xe3, 0x6d, 0xf9, 0xf7, 0xf2, \
- 0xfa, 0x1c, 0xd8, 0x19, 0x95, 0x5f, 0x20, 0xfe, 0x32, 0x91, 0x7b, 0x60, \
- 0xda, 0x5f, 0xed, 0x3b, 0x3a, 0xa5, 0x4a, 0x9a, 0xb8, 0xb3, 0xed, 0x27, \
- 0xd1, 0x98, 0xb3, 0x76, 0x8c, 0xad, 0x26, 0xee, 0xf5, 0x93, 0x5c, 0xd8, \
- 0x7a, 0xf0, 0xaf, 0x06, 0x5e}
+#define DEV_AUTH_ROOT_PROD_MLDSA44 \
+ { \
+ 0xea, 0x67, 0xd6, 0x00, 0x0e, 0x79, 0xd1, 0x6b, 0xc9, 0x11, 0x9c, 0xea, \
+ 0x88, 0xb3, 0x41, 0x53, 0x69, 0xd6, 0x12, 0xf0, 0x2a, 0x6b, 0xca, 0x6e, \
+ 0x18, 0xe0, 0xdb, 0xe5, 0xe2, 0xd3, 0x7d, 0xa7, 0x16, 0xb9, 0x93, 0xa0, \
+ 0x52, 0x58, 0xa6, 0x42, 0xc6, 0x56, 0xa4, 0xe1, 0xc8, 0x0f, 0x2d, 0xb1, \
+ 0xf2, 0x81, 0x8e, 0x5e, 0xbc, 0xbe, 0x57, 0x15, 0x44, 0x83, 0x89, 0x07, \
+ 0x95, 0x26, 0x89, 0x5f, 0x8e, 0x62, 0x00, 0x01, 0xb1, 0xc1, 0xdc, 0x85, \
+ 0x7a, 0xa6, 0x16, 0x5e, 0xc1, 0xd0, 0xb7, 0x31, 0x12, 0x7c, 0x42, 0x4c, \
+ 0xbf, 0x0d, 0xec, 0x1a, 0xe3, 0x3b, 0xbc, 0xe5, 0x00, 0xb9, 0xe7, 0x97, \
+ 0x4d, 0x2a, 0x83, 0x62, 0x6f, 0xe0, 0xbe, 0x91, 0x55, 0x5d, 0x79, 0xe1, \
+ 0xf9, 0x1f, 0xbc, 0xb5, 0xdf, 0x82, 0x17, 0x38, 0x38, 0x5c, 0xba, 0x29, \
+ 0xdc, 0x1a, 0x71, 0xc3, 0xef, 0x2d, 0x1d, 0x3b, 0x31, 0x65, 0xff, 0x66, \
+ 0xb4, 0x63, 0x8b, 0x71, 0x21, 0xdb, 0x9e, 0xcd, 0xfe, 0xb3, 0x9d, 0x20, \
+ 0x16, 0x37, 0x32, 0xd1, 0x68, 0x5f, 0x76, 0x04, 0x95, 0x6d, 0xe9, 0xf5, \
+ 0x49, 0xc5, 0xa7, 0xfc, 0xbf, 0x2a, 0x27, 0xb9, 0x13, 0xa9, 0x41, 0x07, \
+ 0x90, 0x4c, 0xdb, 0xfe, 0x48, 0x6d, 0xf4, 0xa6, 0x2d, 0xc2, 0x7f, 0x0f, \
+ 0x7b, 0xa1, 0x4c, 0x11, 0x03, 0xf9, 0xde, 0x86, 0x48, 0x0c, 0x12, 0xbc, \
+ 0xaf, 0x1b, 0xab, 0x70, 0x58, 0x42, 0x77, 0xa9, 0xfd, 0xac, 0x50, 0xd0, \
+ 0x3d, 0x50, 0xe9, 0xe7, 0xbb, 0x6d, 0xd3, 0xb8, 0xb6, 0x1c, 0xaf, 0xe0, \
+ 0x7c, 0x55, 0x13, 0xc4, 0xfb, 0xb3, 0x5d, 0x14, 0x76, 0x6f, 0xef, 0x05, \
+ 0x82, 0xca, 0x1d, 0x78, 0xeb, 0xc4, 0xfb, 0x24, 0x6e, 0xe3, 0xac, 0x23, \
+ 0x1e, 0xef, 0x77, 0x0e, 0x74, 0xad, 0x42, 0x07, 0xdd, 0xdc, 0x8f, 0x36, \
+ 0x66, 0x70, 0x0c, 0x84, 0xaa, 0x14, 0x46, 0xcb, 0x5c, 0xee, 0xf0, 0xb6, \
+ 0xf1, 0x13, 0x04, 0x1a, 0x9e, 0xeb, 0x87, 0x08, 0x56, 0x4a, 0x4c, 0x43, \
+ 0xfd, 0xb4, 0x62, 0x03, 0xdd, 0x1a, 0x2b, 0x2c, 0x48, 0xa0, 0xe4, 0x85, \
+ 0xbc, 0x10, 0xa7, 0x2a, 0x8a, 0x8e, 0x5b, 0x00, 0x6d, 0x3d, 0x39, 0x89, \
+ 0x41, 0xb3, 0x33, 0x65, 0xb0, 0x4b, 0x54, 0xd1, 0x4d, 0x23, 0x09, 0x50, \
+ 0xc7, 0xdf, 0x04, 0x8a, 0xfd, 0x2c, 0x16, 0xff, 0x15, 0x15, 0x38, 0x7a, \
+ 0x97, 0xb7, 0x12, 0xf6, 0x8f, 0x65, 0xf0, 0x8f, 0xd7, 0x22, 0xd4, 0xb7, \
+ 0x5c, 0x97, 0x00, 0x7c, 0x4f, 0x7d, 0xff, 0xf5, 0xe5, 0xf2, 0x29, 0x08, \
+ 0xb5, 0x6b, 0xf4, 0x0a, 0xcd, 0x52, 0x63, 0xcc, 0x41, 0x90, 0x07, 0xa3, \
+ 0x55, 0xbc, 0xd1, 0xf4, 0xa3, 0xdd, 0x20, 0x12, 0x86, 0xe5, 0x8b, 0xe1, \
+ 0x16, 0x5e, 0x0e, 0xed, 0xf6, 0xc2, 0x36, 0xc7, 0xaa, 0xa7, 0xcf, 0xf3, \
+ 0xa8, 0xfb, 0xd6, 0xae, 0xe5, 0xd3, 0xea, 0x53, 0x68, 0xbb, 0xf0, 0xaa, \
+ 0xd8, 0xf4, 0x11, 0x47, 0xce, 0x87, 0x4e, 0x2c, 0x97, 0xed, 0x3f, 0xdf, \
+ 0xe8, 0x59, 0xde, 0xf1, 0x43, 0xf6, 0x3c, 0x1e, 0x7a, 0x09, 0x3c, 0xe1, \
+ 0x86, 0x15, 0x01, 0x6a, 0x85, 0x7e, 0x87, 0x5a, 0x40, 0x99, 0xd7, 0xa5, \
+ 0x6b, 0x03, 0x6c, 0x7b, 0xdb, 0xa2, 0x05, 0xff, 0x21, 0x84, 0x1c, 0x46, \
+ 0x93, 0xec, 0xfe, 0x08, 0xae, 0x8f, 0xaf, 0x10, 0xc7, 0x3f, 0xe3, 0xa8, \
+ 0xe2, 0x02, 0xa5, 0x85, 0xc3, 0x9a, 0xe8, 0xb0, 0x84, 0xf2, 0x87, 0x9a, \
+ 0x2c, 0x20, 0xfa, 0xf8, 0xab, 0xe5, 0x16, 0x3e, 0xb8, 0xac, 0xff, 0xfd, \
+ 0xe4, 0xb9, 0xa7, 0x3a, 0x97, 0x06, 0xbb, 0x5d, 0x3a, 0xe9, 0x12, 0x35, \
+ 0xf6, 0x73, 0xdf, 0x8f, 0x20, 0xf5, 0xdd, 0x72, 0xc0, 0x6d, 0xf8, 0xa7, \
+ 0x40, 0x19, 0x24, 0xc6, 0x14, 0xeb, 0x12, 0xd9, 0x15, 0xde, 0xff, 0xac, \
+ 0xba, 0x68, 0x97, 0x38, 0x61, 0x27, 0x80, 0x87, 0x7f, 0x39, 0xa8, 0x91, \
+ 0xb3, 0xcc, 0x06, 0x73, 0xc7, 0x28, 0x65, 0x3f, 0x72, 0x87, 0x43, 0x86, \
+ 0xd6, 0xa0, 0x97, 0x51, 0x6d, 0x56, 0xc1, 0x96, 0xc9, 0xf1, 0x51, 0x5a, \
+ 0x62, 0xb5, 0xdd, 0xba, 0xb2, 0xc7, 0x95, 0xd4, 0x8b, 0xe8, 0xb6, 0xa3, \
+ 0x04, 0x53, 0x30, 0x34, 0xf3, 0x23, 0xc6, 0x97, 0x0d, 0x43, 0xa0, 0x89, \
+ 0x57, 0xd8, 0xb0, 0xdb, 0x7c, 0xf8, 0x0e, 0x6c, 0x02, 0x58, 0x90, 0x69, \
+ 0xf9, 0xbf, 0x62, 0x2e, 0x60, 0xf6, 0x95, 0x3b, 0xfd, 0x10, 0xd6, 0x8c, \
+ 0xac, 0x3d, 0x42, 0x1b, 0xf9, 0x14, 0x51, 0x69, 0xfa, 0x0b, 0x10, 0xd2, \
+ 0x38, 0x42, 0x12, 0x55, 0x6e, 0x04, 0x2d, 0x95, 0x68, 0x6c, 0x44, 0xba, \
+ 0xcd, 0x01, 0xb8, 0xb2, 0xe6, 0x98, 0x16, 0x3c, 0xa6, 0xd2, 0xb9, 0x65, \
+ 0x55, 0x7e, 0x8e, 0x16, 0xf0, 0xd3, 0x67, 0x2b, 0xb3, 0x2c, 0x0d, 0xc3, \
+ 0xbb, 0xce, 0xd7, 0x8f, 0x75, 0x91, 0x8d, 0xf5, 0x97, 0x42, 0xfc, 0xb9, \
+ 0x83, 0x49, 0x25, 0xb5, 0x0c, 0x56, 0x8e, 0xc3, 0x05, 0xdb, 0x53, 0xe3, \
+ 0xd7, 0x91, 0x58, 0x51, 0x62, 0x0f, 0x07, 0x63, 0x82, 0x0a, 0xd5, 0x11, \
+ 0x89, 0x60, 0x41, 0xd7, 0xa8, 0x36, 0xb7, 0x64, 0xb5, 0x12, 0x73, 0xf6, \
+ 0xab, 0x1e, 0x40, 0x21, 0xe6, 0x7b, 0xcc, 0x50, 0x95, 0xc0, 0x2f, 0x55, \
+ 0xc1, 0x32, 0xb6, 0x74, 0xd4, 0x7b, 0x36, 0x27, 0x18, 0x30, 0x50, 0x8c, \
+ 0x6d, 0x08, 0xe7, 0x57, 0x81, 0x81, 0xfc, 0xf9, 0x5c, 0x90, 0x27, 0xc4, \
+ 0x3b, 0xeb, 0xc5, 0x6b, 0x0d, 0x08, 0x3d, 0x6b, 0xbd, 0xe1, 0x0e, 0x70, \
+ 0x11, 0x3a, 0xe4, 0x11, 0x02, 0x18, 0x1f, 0x14, 0x7b, 0xd6, 0xaa, 0xd5, \
+ 0x88, 0x98, 0xd2, 0x96, 0xb1, 0x4e, 0xc4, 0xf7, 0xe0, 0x49, 0xff, 0x47, \
+ 0x83, 0x19, 0x49, 0xb8, 0xf5, 0xaa, 0x29, 0xa2, 0xc7, 0x4e, 0x7e, 0xa2, \
+ 0x6a, 0x42, 0x70, 0xe8, 0x4d, 0x4a, 0xce, 0x36, 0x40, 0x7b, 0x25, 0x57, \
+ 0x67, 0xf9, 0xeb, 0x96, 0x76, 0xd1, 0x55, 0x59, 0xd1, 0xc4, 0x03, 0xb1, \
+ 0xa5, 0x94, 0x9a, 0x9c, 0xa2, 0xa7, 0x4e, 0x6e, 0x0f, 0x27, 0x19, 0xb1, \
+ 0x13, 0x06, 0x91, 0x17, 0x99, 0xbe, 0x9d, 0xea, 0x59, 0x7e, 0xc8, 0xb3, \
+ 0x75, 0xba, 0xc6, 0x46, 0xf8, 0xa9, 0xa0, 0x3e, 0x6f, 0x22, 0x71, 0xd9, \
+ 0xfb, 0x5b, 0x69, 0x5c, 0x51, 0xd7, 0xfe, 0x21, 0x25, 0xa0, 0x8e, 0x24, \
+ 0x3d, 0x63, 0xe5, 0xd4, 0x26, 0xb6, 0xdb, 0xbc, 0x14, 0x9a, 0x87, 0xe6, \
+ 0x5f, 0x8b, 0x18, 0x88, 0x46, 0x5f, 0x99, 0xce, 0x51, 0x9c, 0xe4, 0xdd, \
+ 0x8d, 0x51, 0x43, 0x2e, 0x45, 0xe4, 0xbd, 0x01, 0xa4, 0x18, 0x93, 0x18, \
+ 0x9a, 0x86, 0x56, 0xbc, 0x9c, 0x92, 0x26, 0xfc, 0x4b, 0xbc, 0x38, 0x44, \
+ 0x15, 0x69, 0xd3, 0xbe, 0x87, 0x18, 0x0c, 0x83, 0x3d, 0x63, 0xd5, 0x3a, \
+ 0xdc, 0x15, 0xd9, 0x53, 0xec, 0x6f, 0xcd, 0x16, 0x43, 0xaa, 0x00, 0xf2, \
+ 0x0a, 0xea, 0x7c, 0xc1, 0x69, 0xef, 0xee, 0xb9, 0x62, 0xeb, 0xb7, 0x24, \
+ 0xba, 0x00, 0x08, 0x86, 0x1a, 0x1f, 0xda, 0x98, 0x8c, 0x93, 0xd3, 0xea, \
+ 0x0e, 0x32, 0x24, 0xd4, 0xc7, 0x2c, 0x0c, 0x2f, 0xec, 0xf4, 0xf9, 0x54, \
+ 0xf9, 0xfc, 0xf4, 0x7b, 0x5f, 0x39, 0xb5, 0x9a, 0x9c, 0x4c, 0x12, 0x42, \
+ 0x33, 0x82, 0xae, 0x2e, 0xf5, 0x47, 0x31, 0x04, 0x90, 0xbb, 0x3d, 0x57, \
+ 0x66, 0x1a, 0x51, 0xb9, 0xee, 0x35, 0x6d, 0x07, 0x20, 0xf6, 0xe3, 0x76, \
+ 0xe2, 0x37, 0x4c, 0x38, 0xe7, 0x38, 0xe1, 0x58, 0xdb, 0xec, 0x8d, 0x7c, \
+ 0xc5, 0xa2, 0x3a, 0x62, 0x69, 0xa3, 0xca, 0x44, 0x1a, 0x4e, 0xc4, 0x06, \
+ 0xdd, 0xee, 0xf5, 0xa0, 0xd6, 0x00, 0x7d, 0x0b, 0x35, 0x90, 0xba, 0x19, \
+ 0xee, 0xb2, 0xa6, 0xda, 0x67, 0xfe, 0x21, 0xb6, 0x86, 0x25, 0xd1, 0xd4, \
+ 0x22, 0x73, 0x9c, 0x92, 0x8c, 0x7b, 0x9a, 0x49, 0x16, 0x3a, 0x6f, 0xfe, \
+ 0x60, 0xcf, 0xce, 0x4c, 0xfa, 0x91, 0x8b, 0x69, 0x0f, 0xe5, 0xb3, 0x00, \
+ 0x02, 0x2e, 0x88, 0xff, 0x16, 0x40, 0x20, 0xce, 0x98, 0x15, 0xd1, 0x8c, \
+ 0x97, 0xa6, 0x3a, 0xd3, 0x38, 0x3e, 0x11, 0x01, 0xeb, 0x52, 0x3c, 0x5e, \
+ 0x1d, 0x20, 0x48, 0x2d, 0xd6, 0xd0, 0x41, 0x1b, 0x13, 0xb7, 0x5c, 0x89, \
+ 0xe8, 0x64, 0xfa, 0x6b, 0xed, 0xe2, 0x67, 0x4b, 0xfa, 0x5c, 0x32, 0x83, \
+ 0xa1, 0x48, 0x7a, 0x30, 0x93, 0xff, 0x05, 0xdb, 0xa3, 0xf8, 0x64, 0x20, \
+ 0xa7, 0xa9, 0xac, 0x62, 0xc5, 0x99, 0x71, 0xfa, 0x9d, 0x10, 0xc9, 0xeb, \
+ 0xc6, 0x8f, 0x36, 0xd6, 0x5e, 0x79, 0x8f, 0x95, 0xc3, 0xa2, 0xcb, 0x11, \
+ 0x99, 0x3a, 0xe1, 0x45, 0x48, 0x55, 0xcd, 0xa4, 0xd8, 0x29, 0x0f, 0x2f, \
+ 0x0a, 0xa8, 0xf4, 0x8c, 0xbd, 0xda, 0xd9, 0x22, 0x11, 0xa1, 0xe1, 0xa3, \
+ 0x85, 0x88, 0x82, 0x21, 0x59, 0xc2, 0x57, 0xc0, 0x77, 0xa7, 0xbd, 0x1c, \
+ 0x1a, 0xfe, 0xb3, 0x64, 0x4e, 0x60, 0x01, 0xa1, 0xf0, 0xdc, 0x08, 0x33, \
+ 0x99, 0x3c, 0x06, 0x88, 0x79, 0xf4, 0x84, 0xd6, 0xa4, 0xda, 0x8c, 0x1f, \
+ 0xb8, 0x59, 0x59, 0xd2, 0x82, 0xbe, 0x52, 0x58, 0x32, 0x25, 0xb6, 0x0c, \
+ 0x31, 0xcf, 0x1e, 0xbe, 0x0e, 0x74, 0xbb, 0xd3, 0xfc, 0x74, 0xca, 0xf0, \
+ 0x39, 0xad, 0x3c, 0x03, 0xf5, 0x9b, 0x5d, 0xa6, 0x94, 0xfa, 0x81, 0x0e, \
+ 0x19, 0x9a, 0xd7, 0x58, 0x7b, 0x59, 0x35, 0x48, 0xc8, 0x28, 0xa1, 0x8c, \
+ 0x6a, 0x9b, 0x65, 0x7d, 0xf6, 0xcb, 0x39, 0xe8, 0x39, 0xf3, 0x6b, 0xef, \
+ 0xfc, 0x07, 0xc6, 0xe8, 0x5c, 0x8b, 0xbd, 0x7e, 0x98, 0x64, 0x6a, 0xf8, \
+ 0x79, 0xbe, 0xad, 0x4d, 0x3e, 0x1b, 0x79, 0xc4, 0x01, 0xeb, 0x64, 0x49, \
+ 0xa4, 0x20, 0x0f, 0x1c, 0xbd, 0xad, 0x39, 0x32, 0x9f, 0xc4, 0x3c, 0x55, \
+ 0x53, 0xa2, 0x86, 0xa0}
-// P-256 ECDSA device authenticity root debug key for T3W1.
-#define DEV_AUTH_ROOT_DEBUG_P256 \
- {0x04, 0x52, 0x11, 0x92, 0xe1, 0x73, 0xa9, 0xda, 0x4e, 0x30, 0x23, 0xf7, \
- 0x47, 0xd8, 0x36, 0x56, 0x37, 0x25, 0x37, 0x26, 0x81, 0xeb, 0xa3, 0x07, \
- 0x9c, 0x56, 0xff, 0x11, 0xb2, 0xfc, 0x13, 0x7a, 0xb1, 0x89, 0xeb, 0x41, \
- 0x55, 0xf3, 0x71, 0x12, 0x76, 0x51, 0xb5, 0x59, 0x4f, 0x8c, 0x33, 0x2f, \
- 0xc1, 0xe9, 0xc0, 0xf3, 0xb8, 0x0d, 0x42, 0x12, 0x82, 0x26, 0x68, 0xb6, \
- 0x31, 0x89, 0x70, 0x65, 0x78}
+#define DEV_AUTH_ROOT_PROD_BACKUP_P256 \
+ { \
+ 0x04, 0xc6, 0xa6, 0x73, 0xaf, 0x4e, 0xc4, 0x4b, 0x10, 0x44, 0x1b, \
+ 0x1d, 0x78, 0x67, 0x6e, 0x15, 0x17, 0x3a, 0xd0, 0xe3, 0x6d, 0xf9, \
+ 0xf7, 0xf2, 0xfa, 0x1c, 0xd8, 0x19, 0x95, 0x5f, 0x20, 0xfe, 0x32, \
+ 0x91, 0x7b, 0x60, 0xda, 0x5f, 0xed, 0x3b, 0x3a, 0xa5, 0x4a, 0x9a, \
+ 0xb8, 0xb3, 0xed, 0x27, 0xd1, 0x98, 0xb3, 0x76, 0x8c, 0xad, 0x26, \
+ 0xee, 0xf5, 0x93, 0x5c, 0xd8, 0x7a, 0xf0, 0xaf, 0x06, 0x5e}
-// P-256 ECDSA device authenticity root staging key for T3W1.
-#define DEV_AUTH_ROOT_STAGING_P256 \
- {0x04, 0x65, 0xe8, 0x8f, 0x9b, 0x2c, 0xea, 0x67, 0xe8, 0x36, 0x4f, 0x0c, \
- 0xfc, 0xfa, 0xcd, 0x50, 0x0a, 0xf2, 0x4e, 0x90, 0x40, 0xb3, 0x57, 0xbe, \
- 0xee, 0x62, 0x9c, 0xcc, 0x4f, 0xce, 0x17, 0x04, 0xd1, 0xa7, 0xef, 0x72, \
- 0x84, 0xf3, 0x87, 0x70, 0x8f, 0x92, 0xef, 0x14, 0x60, 0x0e, 0x2c, 0xaa, \
- 0xd6, 0x89, 0x40, 0x16, 0xfe, 0xe8, 0x19, 0xd6, 0x23, 0xb9, 0x5d, 0x66, \
- 0x21, 0x0c, 0x3e, 0x75, 0x19}
+#define DEV_AUTH_ROOT_PROD_BACKUP_ED25519 \
+ {0x56, 0x12, 0x60, 0x65, 0x84, 0xee, 0x7e, 0x0b, 0xc3, 0x13, 0xb1, \
+ 0x3f, 0x7a, 0xc9, 0x41, 0x56, 0xbb, 0x4c, 0xb7, 0x5b, 0xd7, 0x75, \
+ 0x85, 0xdd, 0xbe, 0x57, 0x93, 0x01, 0x30, 0x6e, 0x85, 0xf1}
-// Ed25519 device authenticity root production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_ED25519 \
- {0x59, 0x23, 0x7a, 0xcd, 0x17, 0x13, 0x40, 0x61, 0xd6, 0x55, 0xb3, 0xf8, \
- 0xd6, 0x24, 0x57, 0x3c, 0xa0, 0x6c, 0xe8, 0xd8, 0x62, 0xf3, 0x8b, 0xa4, \
- 0xe0, 0x51, 0x40, 0xce, 0x1d, 0x3d, 0x60, 0x9d}
+#define DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44 \
+ { \
+ 0xfe, 0xdf, 0x8b, 0x0c, 0x16, 0x16, 0x4b, 0x9c, 0xec, 0x42, 0x78, 0x82, \
+ 0xaa, 0x03, 0xd3, 0xbd, 0x6a, 0x15, 0x88, 0xcf, 0xba, 0xeb, 0xaf, 0x93, \
+ 0xcf, 0x2f, 0xc5, 0x2f, 0x27, 0x54, 0x17, 0x77, 0x74, 0x33, 0xa9, 0x38, \
+ 0xdc, 0xd6, 0x51, 0x63, 0x45, 0x14, 0x8f, 0x72, 0x8c, 0x93, 0x5a, 0x40, \
+ 0xef, 0x3b, 0x6c, 0x41, 0xfd, 0x3e, 0xd8, 0x31, 0xfe, 0xa1, 0x37, 0x74, \
+ 0xbd, 0x39, 0x88, 0x7d, 0xa8, 0xb0, 0x6e, 0x2e, 0x67, 0x1c, 0xc3, 0x2a, \
+ 0x1c, 0x72, 0xe4, 0x4a, 0x13, 0xd1, 0xcd, 0x98, 0x5d, 0xc2, 0xdd, 0xcb, \
+ 0x63, 0xe4, 0x57, 0xbb, 0xd2, 0x9d, 0x38, 0x18, 0x6d, 0xdb, 0x77, 0x6b, \
+ 0x8e, 0x73, 0xb6, 0x45, 0xc8, 0xbf, 0x61, 0x63, 0x09, 0xf8, 0x90, 0xd1, \
+ 0x75, 0x53, 0x8a, 0x9d, 0x10, 0xc8, 0x2e, 0x59, 0x5d, 0xea, 0x03, 0xf7, \
+ 0x05, 0x64, 0xff, 0x69, 0xb5, 0x34, 0x97, 0xec, 0xef, 0xd5, 0x1f, 0xd8, \
+ 0x32, 0x00, 0x41, 0xd9, 0xb1, 0x09, 0x23, 0x86, 0x03, 0x3e, 0xd3, 0x7a, \
+ 0x93, 0xdd, 0x9b, 0x4b, 0x9d, 0xa1, 0x29, 0x7f, 0x80, 0x8e, 0xac, 0x21, \
+ 0x02, 0x0b, 0x8d, 0xc4, 0x74, 0x7e, 0x01, 0x85, 0x4e, 0xbd, 0xc4, 0x07, \
+ 0xa0, 0x4f, 0xc1, 0x8b, 0x27, 0x58, 0x72, 0x01, 0x25, 0xac, 0xb4, 0x1f, \
+ 0x0c, 0x60, 0xe1, 0x6c, 0xd5, 0x37, 0x07, 0xa6, 0x53, 0x92, 0xfe, 0xed, \
+ 0x06, 0xc9, 0xfc, 0xc2, 0x8a, 0x3e, 0x73, 0x8d, 0xbc, 0x91, 0x61, 0x4e, \
+ 0x89, 0xe5, 0xd5, 0x35, 0x27, 0x4c, 0x6b, 0x22, 0x6d, 0x83, 0xf3, 0x35, \
+ 0xa0, 0xdd, 0x08, 0x87, 0x55, 0x57, 0x1c, 0xf6, 0x24, 0x96, 0xca, 0x46, \
+ 0x42, 0xec, 0x8e, 0x65, 0xeb, 0xa8, 0xbe, 0x2b, 0x8c, 0xec, 0x46, 0x41, \
+ 0x6c, 0x6a, 0x3a, 0xd4, 0xbe, 0x10, 0x56, 0x9a, 0xc5, 0x32, 0xe0, 0x2d, \
+ 0x6e, 0x06, 0xb6, 0xce, 0x0c, 0x0d, 0x4b, 0x7a, 0x99, 0xa1, 0x1c, 0x91, \
+ 0x0f, 0x9f, 0x06, 0x31, 0xb0, 0xcd, 0x72, 0xe2, 0x06, 0x37, 0x23, 0x7e, \
+ 0xef, 0xf7, 0x23, 0xe7, 0x22, 0xf7, 0xaa, 0x62, 0x67, 0x32, 0x43, 0x4c, \
+ 0x47, 0x84, 0x3a, 0x09, 0x97, 0x39, 0xe9, 0x6e, 0x31, 0x26, 0x7d, 0x8d, \
+ 0x69, 0x05, 0xd8, 0xb2, 0xb7, 0x12, 0xa5, 0xa6, 0x9d, 0x93, 0x43, 0xa3, \
+ 0xc1, 0xe0, 0x7a, 0xfb, 0x41, 0x4b, 0x73, 0x95, 0x0f, 0x4b, 0x1d, 0xf1, \
+ 0x96, 0x24, 0x30, 0x05, 0xfb, 0x61, 0xc6, 0x20, 0x0e, 0xf3, 0x46, 0x82, \
+ 0x6d, 0x6c, 0x0f, 0x4c, 0xc8, 0xed, 0xe0, 0x52, 0xed, 0x48, 0x23, 0x59, \
+ 0x97, 0xbb, 0x36, 0x6d, 0xad, 0xe4, 0x48, 0x3b, 0xfc, 0x11, 0xfe, 0x65, \
+ 0xfd, 0x0c, 0x55, 0x39, 0xe8, 0x9d, 0x8b, 0xd2, 0x71, 0xe5, 0x4e, 0x30, \
+ 0xda, 0x6e, 0x51, 0x92, 0xa0, 0xf3, 0x43, 0xde, 0xa3, 0x80, 0x6a, 0xa7, \
+ 0x98, 0xd1, 0x2d, 0x62, 0x25, 0x1a, 0x06, 0x3d, 0x07, 0x1b, 0xa6, 0x7c, \
+ 0x35, 0xd3, 0xa2, 0x6e, 0x58, 0x2c, 0x2d, 0x36, 0x1c, 0xf2, 0xd0, 0xfc, \
+ 0x36, 0xfb, 0x1b, 0x5a, 0x46, 0xe4, 0x69, 0x66, 0x93, 0x38, 0xb1, 0xc1, \
+ 0x74, 0x4b, 0xdf, 0xe3, 0x65, 0x70, 0x0a, 0x6a, 0x1c, 0x64, 0x1a, 0xb2, \
+ 0xb7, 0x90, 0x6e, 0x2b, 0x7c, 0x0c, 0x0a, 0x9a, 0xf8, 0x86, 0x2a, 0xb5, \
+ 0x75, 0x1a, 0x67, 0x8e, 0x3e, 0x01, 0x56, 0x84, 0x7f, 0xf6, 0x09, 0x3c, \
+ 0xa7, 0xeb, 0xd4, 0x8d, 0xd8, 0xb1, 0xd6, 0xf7, 0x73, 0x6c, 0x20, 0x39, \
+ 0xe7, 0x05, 0xc1, 0xe2, 0x0f, 0x42, 0xed, 0x5c, 0xac, 0x6d, 0xb3, 0xdc, \
+ 0x7a, 0x7e, 0x2f, 0xac, 0xbb, 0x75, 0x41, 0x1e, 0x7f, 0xb8, 0xa1, 0x56, \
+ 0xdf, 0x52, 0xa2, 0x92, 0x6a, 0xfa, 0x90, 0x70, 0x93, 0x7c, 0xde, 0x4d, \
+ 0xd4, 0xbd, 0x45, 0x62, 0x94, 0xba, 0x59, 0xbd, 0xcf, 0x12, 0x3f, 0x11, \
+ 0xdc, 0xda, 0x26, 0x7d, 0x47, 0x57, 0x21, 0xab, 0xfe, 0xca, 0xb1, 0xb3, \
+ 0x18, 0x48, 0xa2, 0x72, 0x36, 0xaa, 0x75, 0x1e, 0x5b, 0x55, 0x01, 0x5f, \
+ 0x03, 0x3d, 0x87, 0xfb, 0x9c, 0xf5, 0xc0, 0x86, 0xe0, 0x9f, 0x16, 0x67, \
+ 0xcf, 0x7e, 0xc2, 0xe7, 0x24, 0x36, 0xc9, 0x07, 0xc5, 0x76, 0x36, 0x90, \
+ 0xd6, 0x98, 0xff, 0xfa, 0x99, 0x77, 0x09, 0xbb, 0x89, 0x52, 0x6c, 0xae, \
+ 0x77, 0x2b, 0xb9, 0x62, 0xc0, 0x6e, 0xd1, 0xb8, 0x9d, 0x41, 0x88, 0x35, \
+ 0x67, 0x2b, 0x85, 0xe1, 0xa1, 0xb2, 0xe3, 0xc5, 0x5f, 0x4e, 0x60, 0x7e, \
+ 0xca, 0xd0, 0x9b, 0xdb, 0x3a, 0x18, 0x22, 0x4b, 0x98, 0x05, 0x65, 0x9a, \
+ 0xa2, 0xec, 0xf0, 0xb6, 0x2d, 0xbf, 0x62, 0x65, 0xe2, 0x7d, 0x41, 0x01, \
+ 0x45, 0x0e, 0xdb, 0x59, 0x0d, 0x52, 0xd5, 0x25, 0xb6, 0x2b, 0x11, 0x14, \
+ 0xda, 0xd2, 0xeb, 0x06, 0xc9, 0x51, 0xa2, 0xc7, 0x7c, 0x7e, 0xcf, 0xbf, \
+ 0x5f, 0x1f, 0x6f, 0xe2, 0x85, 0xf3, 0x97, 0x27, 0x95, 0x8c, 0xe0, 0xb5, \
+ 0xcf, 0xe8, 0xfd, 0x46, 0x54, 0x20, 0xc2, 0x70, 0x30, 0x99, 0x99, 0xe6, \
+ 0x69, 0x4e, 0xe3, 0x1f, 0xcb, 0x7d, 0x64, 0x80, 0xa7, 0x5d, 0x0d, 0x72, \
+ 0x55, 0x8c, 0xd6, 0xa0, 0x50, 0xb8, 0xd1, 0x1a, 0x9a, 0x6d, 0x77, 0x36, \
+ 0x70, 0x00, 0x27, 0xfb, 0xe1, 0x4b, 0x48, 0x94, 0x9b, 0x7e, 0x1a, 0xf2, \
+ 0xca, 0x14, 0x8a, 0xd4, 0xe4, 0xb4, 0xb9, 0x3e, 0x95, 0x75, 0xa4, 0x11, \
+ 0x9a, 0xfd, 0x1b, 0x57, 0xc2, 0x50, 0x60, 0x6d, 0x5a, 0x4e, 0x25, 0x8c, \
+ 0x23, 0x93, 0xc1, 0x04, 0xd6, 0x51, 0x99, 0x5b, 0x1e, 0x75, 0x88, 0x7f, \
+ 0x49, 0x2f, 0xf0, 0x5e, 0x92, 0xe1, 0x63, 0x03, 0x32, 0xf1, 0x76, 0xd8, \
+ 0x6a, 0x04, 0x53, 0xb4, 0x12, 0xd0, 0x86, 0x9d, 0x98, 0xd6, 0xab, 0x27, \
+ 0x37, 0x7a, 0x74, 0x76, 0x6e, 0x3c, 0xad, 0xde, 0x29, 0xc1, 0x85, 0x3e, \
+ 0x63, 0x98, 0xa9, 0xed, 0xfa, 0x48, 0xc0, 0xd1, 0x4e, 0x7c, 0x14, 0x8b, \
+ 0x04, 0x8f, 0x1b, 0xf2, 0x5d, 0x11, 0x97, 0x9e, 0x94, 0x87, 0x8c, 0xb8, \
+ 0x6e, 0xaf, 0x1e, 0x55, 0x63, 0x8c, 0x1b, 0x39, 0xe0, 0xac, 0x52, 0x54, \
+ 0xa0, 0x09, 0xbf, 0x95, 0x7f, 0x4b, 0x62, 0x47, 0x96, 0x75, 0x3c, 0x34, \
+ 0x51, 0x24, 0x6e, 0x5a, 0x7b, 0x90, 0x22, 0x92, 0x6a, 0xa7, 0x7b, 0x7a, \
+ 0x1b, 0x4a, 0xe7, 0xd2, 0x5f, 0x77, 0x6d, 0x43, 0x95, 0xba, 0x98, 0xa3, \
+ 0x7d, 0x9e, 0x21, 0xb2, 0x21, 0xda, 0x29, 0x56, 0x4e, 0x50, 0xa6, 0x69, \
+ 0x05, 0x66, 0x50, 0xa4, 0x04, 0x89, 0x38, 0x6e, 0x89, 0x09, 0xc6, 0xca, \
+ 0x21, 0xd3, 0x69, 0xc3, 0x49, 0x5c, 0x44, 0xb2, 0xf7, 0x13, 0x73, 0xa3, \
+ 0x92, 0xc9, 0xfa, 0x89, 0xc9, 0x08, 0x5f, 0x46, 0x7d, 0x24, 0xd6, 0x21, \
+ 0x9f, 0xcd, 0xd2, 0xb5, 0x61, 0x26, 0x79, 0x2e, 0xb6, 0xa1, 0x42, 0x69, \
+ 0xc4, 0x26, 0x4a, 0x56, 0x92, 0x6b, 0x1a, 0x7d, 0x9a, 0x1c, 0x03, 0xd9, \
+ 0x64, 0x9d, 0x15, 0x7f, 0x93, 0x8a, 0xbf, 0xdc, 0x2a, 0x56, 0xc2, 0x07, \
+ 0x95, 0x06, 0x57, 0x74, 0x83, 0x80, 0x30, 0xda, 0x41, 0xa4, 0xc6, 0x17, \
+ 0x89, 0x19, 0xcc, 0x1c, 0x6c, 0x88, 0xde, 0x14, 0x58, 0xd9, 0xba, 0xa1, \
+ 0xe5, 0x1a, 0x4a, 0x19, 0x94, 0xe6, 0xd5, 0xcc, 0x94, 0xb0, 0x49, 0xb1, \
+ 0x5c, 0x23, 0x5c, 0x5c, 0xf4, 0x6d, 0x2c, 0xf2, 0x3f, 0x09, 0xd5, 0x65, \
+ 0xc5, 0xa5, 0x49, 0x7e, 0xf0, 0xb3, 0xa5, 0xfb, 0xc8, 0xd1, 0xbe, 0x8e, \
+ 0xd7, 0x8f, 0x37, 0x94, 0xc4, 0x9d, 0x49, 0x36, 0x13, 0x9b, 0x04, 0x19, \
+ 0xfa, 0xaf, 0xfc, 0x52, 0xb5, 0x5c, 0xb9, 0x1f, 0x6e, 0x1b, 0xaf, 0xac, \
+ 0xd5, 0x55, 0x23, 0xc0, 0xb7, 0xee, 0xc5, 0x6d, 0x98, 0xe4, 0x22, 0x8c, \
+ 0xd0, 0xf9, 0xd0, 0x0b, 0xc9, 0x86, 0x6d, 0xac, 0x71, 0xe4, 0x3d, 0xb2, \
+ 0xb2, 0xcf, 0x31, 0x19, 0x99, 0xd7, 0xbc, 0x3a, 0x49, 0x21, 0x98, 0x36, \
+ 0xf5, 0x58, 0xcb, 0xb5, 0xd8, 0xfa, 0xa7, 0x9e, 0x83, 0x07, 0x9c, 0x6c, \
+ 0xe9, 0x22, 0x88, 0xaa, 0xe8, 0x52, 0x55, 0x3b, 0x65, 0x5e, 0xf6, 0xbc, \
+ 0x87, 0xfb, 0xb2, 0x5c, 0xa3, 0xab, 0x48, 0x2a, 0xec, 0xaf, 0x0a, 0x86, \
+ 0xee, 0xcc, 0x92, 0x34, 0x19, 0x06, 0xcc, 0x89, 0xd2, 0x34, 0x08, 0x7f, \
+ 0x5a, 0xbd, 0x6d, 0x21, 0x00, 0xa6, 0x0d, 0x36, 0x1d, 0x51, 0x6d, 0x46, \
+ 0x0d, 0x43, 0x6b, 0x46, 0x70, 0x6a, 0xd4, 0x4b, 0x8b, 0x4e, 0xf3, 0xfe, \
+ 0x54, 0xea, 0x19, 0x8f, 0xfc, 0x2c, 0xf8, 0xc8, 0xe1, 0x44, 0xec, 0x62, \
+ 0xc4, 0xce, 0x86, 0xed, 0x5d, 0x18, 0x12, 0x83, 0xfc, 0x17, 0xc9, 0x26, \
+ 0x66, 0x8c, 0xa4, 0xe0, 0xb8, 0x68, 0x3e, 0x0c, 0x7b, 0xc6, 0x62, 0xa5, \
+ 0x4e, 0xa7, 0xf4, 0xc8, 0x30, 0x36, 0x5a, 0xd1, 0xcd, 0xea, 0x58, 0xab, \
+ 0xee, 0x9a, 0x72, 0x61, 0x68, 0xce, 0x98, 0x70, 0x72, 0x99, 0x72, 0x88, \
+ 0x4e, 0xcf, 0xe5, 0xba, 0xf0, 0x6f, 0x1e, 0xe6, 0x64, 0xaa, 0x42, 0x2e, \
+ 0x26, 0xf9, 0xf7, 0x6e, 0x20, 0x90, 0x8d, 0x72, 0xe7, 0x8c, 0x1a, 0x2d, \
+ 0xcd, 0x94, 0xfe, 0x1c, 0x07, 0x57, 0x3d, 0x77, 0x06, 0xd7, 0xbd, 0xc0, \
+ 0x7d, 0x0b, 0x41, 0x49, 0x8c, 0x0d, 0x52, 0xec, 0x3a, 0x90, 0xd6, 0xe7, \
+ 0xc0, 0xfc, 0xef, 0x59, 0x7a, 0x88, 0x4f, 0xb2, 0xca, 0xba, 0x29, 0xc2, \
+ 0x27, 0x95, 0x69, 0xa1, 0xe6, 0x4d, 0xd6, 0xc7, 0xed, 0x4b, 0x31, 0x2d, \
+ 0x21, 0x97, 0xb6, 0x39, 0x14, 0x07, 0x89, 0x9b, 0x25, 0xd2, 0x1c, 0xef, \
+ 0xd1, 0x40, 0x8e, 0xca, 0x42, 0x20, 0x4f, 0x76, 0xcb, 0x04, 0x36, 0xf4, \
+ 0x4c, 0x0a, 0x9c, 0x2e, 0x1e, 0xca, 0x19, 0xdf, 0x8d, 0x93, 0x25, 0x5c, \
+ 0x0d, 0xa6, 0x46, 0x9d, 0xc4, 0x7d, 0xa8, 0x83, 0xe1, 0x86, 0x38, 0x7f, \
+ 0x76, 0x01, 0x1c, 0xc8}
-// Ed25519 device authenticity root backup production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_BACKUP_ED25519 \
- {0x56, 0x12, 0x60, 0x65, 0x84, 0xee, 0x7e, 0x0b, 0xc3, 0x13, 0xb1, 0x3f, \
- 0x7a, 0xc9, 0x41, 0x56, 0xbb, 0x4c, 0xb7, 0x5b, 0xd7, 0x75, 0x85, 0xdd, \
- 0xbe, 0x57, 0x93, 0x01, 0x30, 0x6e, 0x85, 0xf1}
+#define DEV_AUTH_ROOT_DEBUG_P256 \
+ { \
+ 0x04, 0x52, 0x11, 0x92, 0xe1, 0x73, 0xa9, 0xda, 0x4e, 0x30, 0x23, \
+ 0xf7, 0x47, 0xd8, 0x36, 0x56, 0x37, 0x25, 0x37, 0x26, 0x81, 0xeb, \
+ 0xa3, 0x07, 0x9c, 0x56, 0xff, 0x11, 0xb2, 0xfc, 0x13, 0x7a, 0xb1, \
+ 0x89, 0xeb, 0x41, 0x55, 0xf3, 0x71, 0x12, 0x76, 0x51, 0xb5, 0x59, \
+ 0x4f, 0x8c, 0x33, 0x2f, 0xc1, 0xe9, 0xc0, 0xf3, 0xb8, 0x0d, 0x42, \
+ 0x12, 0x82, 0x26, 0x68, 0xb6, 0x31, 0x89, 0x70, 0x65, 0x78}
-// Ed25519 device authenticity root staging key for T3W1.
-#define DEV_AUTH_ROOT_STAGING_ED25519 \
- {0xcd, 0x31, 0x8d, 0xc8, 0x40, 0x5a, 0xe4, 0xf4, 0x14, 0x4e, 0x32, 0x84, \
- 0xdc, 0xb7, 0xb0, 0xcb, 0x0f, 0x0c, 0x21, 0x95, 0xc2, 0xca, 0x14, 0xa0, \
- 0xf6, 0xfc, 0xcd, 0x91, 0x04, 0xe3, 0x2a, 0x4b}
+#define DEV_AUTH_ROOT_STAGING_P256 \
+ { \
+ 0x04, 0x65, 0xe8, 0x8f, 0x9b, 0x2c, 0xea, 0x67, 0xe8, 0x36, 0x4f, \
+ 0x0c, 0xfc, 0xfa, 0xcd, 0x50, 0x0a, 0xf2, 0x4e, 0x90, 0x40, 0xb3, \
+ 0x57, 0xbe, 0xee, 0x62, 0x9c, 0xcc, 0x4f, 0xce, 0x17, 0x04, 0xd1, \
+ 0xa7, 0xef, 0x72, 0x84, 0xf3, 0x87, 0x70, 0x8f, 0x92, 0xef, 0x14, \
+ 0x60, 0x0e, 0x2c, 0xaa, 0xd6, 0x89, 0x40, 0x16, 0xfe, 0xe8, 0x19, \
+ 0xd6, 0x23, 0xb9, 0x5d, 0x66, 0x21, 0x0c, 0x3e, 0x75, 0x19}
-// ML-DSA-44 device authenticity root production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_MLDSA44 \
- {0xea, 0x67, 0xd6, 0x00, 0x0e, 0x79, 0xd1, 0x6b, 0xc9, 0x11, 0x9c, 0xea, \
- 0x88, 0xb3, 0x41, 0x53, 0x69, 0xd6, 0x12, 0xf0, 0x2a, 0x6b, 0xca, 0x6e, \
- 0x18, 0xe0, 0xdb, 0xe5, 0xe2, 0xd3, 0x7d, 0xa7, 0x16, 0xb9, 0x93, 0xa0, \
- 0x52, 0x58, 0xa6, 0x42, 0xc6, 0x56, 0xa4, 0xe1, 0xc8, 0x0f, 0x2d, 0xb1, \
- 0xf2, 0x81, 0x8e, 0x5e, 0xbc, 0xbe, 0x57, 0x15, 0x44, 0x83, 0x89, 0x07, \
- 0x95, 0x26, 0x89, 0x5f, 0x8e, 0x62, 0x00, 0x01, 0xb1, 0xc1, 0xdc, 0x85, \
- 0x7a, 0xa6, 0x16, 0x5e, 0xc1, 0xd0, 0xb7, 0x31, 0x12, 0x7c, 0x42, 0x4c, \
- 0xbf, 0x0d, 0xec, 0x1a, 0xe3, 0x3b, 0xbc, 0xe5, 0x00, 0xb9, 0xe7, 0x97, \
- 0x4d, 0x2a, 0x83, 0x62, 0x6f, 0xe0, 0xbe, 0x91, 0x55, 0x5d, 0x79, 0xe1, \
- 0xf9, 0x1f, 0xbc, 0xb5, 0xdf, 0x82, 0x17, 0x38, 0x38, 0x5c, 0xba, 0x29, \
- 0xdc, 0x1a, 0x71, 0xc3, 0xef, 0x2d, 0x1d, 0x3b, 0x31, 0x65, 0xff, 0x66, \
- 0xb4, 0x63, 0x8b, 0x71, 0x21, 0xdb, 0x9e, 0xcd, 0xfe, 0xb3, 0x9d, 0x20, \
- 0x16, 0x37, 0x32, 0xd1, 0x68, 0x5f, 0x76, 0x04, 0x95, 0x6d, 0xe9, 0xf5, \
- 0x49, 0xc5, 0xa7, 0xfc, 0xbf, 0x2a, 0x27, 0xb9, 0x13, 0xa9, 0x41, 0x07, \
- 0x90, 0x4c, 0xdb, 0xfe, 0x48, 0x6d, 0xf4, 0xa6, 0x2d, 0xc2, 0x7f, 0x0f, \
- 0x7b, 0xa1, 0x4c, 0x11, 0x03, 0xf9, 0xde, 0x86, 0x48, 0x0c, 0x12, 0xbc, \
- 0xaf, 0x1b, 0xab, 0x70, 0x58, 0x42, 0x77, 0xa9, 0xfd, 0xac, 0x50, 0xd0, \
- 0x3d, 0x50, 0xe9, 0xe7, 0xbb, 0x6d, 0xd3, 0xb8, 0xb6, 0x1c, 0xaf, 0xe0, \
- 0x7c, 0x55, 0x13, 0xc4, 0xfb, 0xb3, 0x5d, 0x14, 0x76, 0x6f, 0xef, 0x05, \
- 0x82, 0xca, 0x1d, 0x78, 0xeb, 0xc4, 0xfb, 0x24, 0x6e, 0xe3, 0xac, 0x23, \
- 0x1e, 0xef, 0x77, 0x0e, 0x74, 0xad, 0x42, 0x07, 0xdd, 0xdc, 0x8f, 0x36, \
- 0x66, 0x70, 0x0c, 0x84, 0xaa, 0x14, 0x46, 0xcb, 0x5c, 0xee, 0xf0, 0xb6, \
- 0xf1, 0x13, 0x04, 0x1a, 0x9e, 0xeb, 0x87, 0x08, 0x56, 0x4a, 0x4c, 0x43, \
- 0xfd, 0xb4, 0x62, 0x03, 0xdd, 0x1a, 0x2b, 0x2c, 0x48, 0xa0, 0xe4, 0x85, \
- 0xbc, 0x10, 0xa7, 0x2a, 0x8a, 0x8e, 0x5b, 0x00, 0x6d, 0x3d, 0x39, 0x89, \
- 0x41, 0xb3, 0x33, 0x65, 0xb0, 0x4b, 0x54, 0xd1, 0x4d, 0x23, 0x09, 0x50, \
- 0xc7, 0xdf, 0x04, 0x8a, 0xfd, 0x2c, 0x16, 0xff, 0x15, 0x15, 0x38, 0x7a, \
- 0x97, 0xb7, 0x12, 0xf6, 0x8f, 0x65, 0xf0, 0x8f, 0xd7, 0x22, 0xd4, 0xb7, \
- 0x5c, 0x97, 0x00, 0x7c, 0x4f, 0x7d, 0xff, 0xf5, 0xe5, 0xf2, 0x29, 0x08, \
- 0xb5, 0x6b, 0xf4, 0x0a, 0xcd, 0x52, 0x63, 0xcc, 0x41, 0x90, 0x07, 0xa3, \
- 0x55, 0xbc, 0xd1, 0xf4, 0xa3, 0xdd, 0x20, 0x12, 0x86, 0xe5, 0x8b, 0xe1, \
- 0x16, 0x5e, 0x0e, 0xed, 0xf6, 0xc2, 0x36, 0xc7, 0xaa, 0xa7, 0xcf, 0xf3, \
- 0xa8, 0xfb, 0xd6, 0xae, 0xe5, 0xd3, 0xea, 0x53, 0x68, 0xbb, 0xf0, 0xaa, \
- 0xd8, 0xf4, 0x11, 0x47, 0xce, 0x87, 0x4e, 0x2c, 0x97, 0xed, 0x3f, 0xdf, \
- 0xe8, 0x59, 0xde, 0xf1, 0x43, 0xf6, 0x3c, 0x1e, 0x7a, 0x09, 0x3c, 0xe1, \
- 0x86, 0x15, 0x01, 0x6a, 0x85, 0x7e, 0x87, 0x5a, 0x40, 0x99, 0xd7, 0xa5, \
- 0x6b, 0x03, 0x6c, 0x7b, 0xdb, 0xa2, 0x05, 0xff, 0x21, 0x84, 0x1c, 0x46, \
- 0x93, 0xec, 0xfe, 0x08, 0xae, 0x8f, 0xaf, 0x10, 0xc7, 0x3f, 0xe3, 0xa8, \
- 0xe2, 0x02, 0xa5, 0x85, 0xc3, 0x9a, 0xe8, 0xb0, 0x84, 0xf2, 0x87, 0x9a, \
- 0x2c, 0x20, 0xfa, 0xf8, 0xab, 0xe5, 0x16, 0x3e, 0xb8, 0xac, 0xff, 0xfd, \
- 0xe4, 0xb9, 0xa7, 0x3a, 0x97, 0x06, 0xbb, 0x5d, 0x3a, 0xe9, 0x12, 0x35, \
- 0xf6, 0x73, 0xdf, 0x8f, 0x20, 0xf5, 0xdd, 0x72, 0xc0, 0x6d, 0xf8, 0xa7, \
- 0x40, 0x19, 0x24, 0xc6, 0x14, 0xeb, 0x12, 0xd9, 0x15, 0xde, 0xff, 0xac, \
- 0xba, 0x68, 0x97, 0x38, 0x61, 0x27, 0x80, 0x87, 0x7f, 0x39, 0xa8, 0x91, \
- 0xb3, 0xcc, 0x06, 0x73, 0xc7, 0x28, 0x65, 0x3f, 0x72, 0x87, 0x43, 0x86, \
- 0xd6, 0xa0, 0x97, 0x51, 0x6d, 0x56, 0xc1, 0x96, 0xc9, 0xf1, 0x51, 0x5a, \
- 0x62, 0xb5, 0xdd, 0xba, 0xb2, 0xc7, 0x95, 0xd4, 0x8b, 0xe8, 0xb6, 0xa3, \
- 0x04, 0x53, 0x30, 0x34, 0xf3, 0x23, 0xc6, 0x97, 0x0d, 0x43, 0xa0, 0x89, \
- 0x57, 0xd8, 0xb0, 0xdb, 0x7c, 0xf8, 0x0e, 0x6c, 0x02, 0x58, 0x90, 0x69, \
- 0xf9, 0xbf, 0x62, 0x2e, 0x60, 0xf6, 0x95, 0x3b, 0xfd, 0x10, 0xd6, 0x8c, \
- 0xac, 0x3d, 0x42, 0x1b, 0xf9, 0x14, 0x51, 0x69, 0xfa, 0x0b, 0x10, 0xd2, \
- 0x38, 0x42, 0x12, 0x55, 0x6e, 0x04, 0x2d, 0x95, 0x68, 0x6c, 0x44, 0xba, \
- 0xcd, 0x01, 0xb8, 0xb2, 0xe6, 0x98, 0x16, 0x3c, 0xa6, 0xd2, 0xb9, 0x65, \
- 0x55, 0x7e, 0x8e, 0x16, 0xf0, 0xd3, 0x67, 0x2b, 0xb3, 0x2c, 0x0d, 0xc3, \
- 0xbb, 0xce, 0xd7, 0x8f, 0x75, 0x91, 0x8d, 0xf5, 0x97, 0x42, 0xfc, 0xb9, \
- 0x83, 0x49, 0x25, 0xb5, 0x0c, 0x56, 0x8e, 0xc3, 0x05, 0xdb, 0x53, 0xe3, \
- 0xd7, 0x91, 0x58, 0x51, 0x62, 0x0f, 0x07, 0x63, 0x82, 0x0a, 0xd5, 0x11, \
- 0x89, 0x60, 0x41, 0xd7, 0xa8, 0x36, 0xb7, 0x64, 0xb5, 0x12, 0x73, 0xf6, \
- 0xab, 0x1e, 0x40, 0x21, 0xe6, 0x7b, 0xcc, 0x50, 0x95, 0xc0, 0x2f, 0x55, \
- 0xc1, 0x32, 0xb6, 0x74, 0xd4, 0x7b, 0x36, 0x27, 0x18, 0x30, 0x50, 0x8c, \
- 0x6d, 0x08, 0xe7, 0x57, 0x81, 0x81, 0xfc, 0xf9, 0x5c, 0x90, 0x27, 0xc4, \
- 0x3b, 0xeb, 0xc5, 0x6b, 0x0d, 0x08, 0x3d, 0x6b, 0xbd, 0xe1, 0x0e, 0x70, \
- 0x11, 0x3a, 0xe4, 0x11, 0x02, 0x18, 0x1f, 0x14, 0x7b, 0xd6, 0xaa, 0xd5, \
- 0x88, 0x98, 0xd2, 0x96, 0xb1, 0x4e, 0xc4, 0xf7, 0xe0, 0x49, 0xff, 0x47, \
- 0x83, 0x19, 0x49, 0xb8, 0xf5, 0xaa, 0x29, 0xa2, 0xc7, 0x4e, 0x7e, 0xa2, \
- 0x6a, 0x42, 0x70, 0xe8, 0x4d, 0x4a, 0xce, 0x36, 0x40, 0x7b, 0x25, 0x57, \
- 0x67, 0xf9, 0xeb, 0x96, 0x76, 0xd1, 0x55, 0x59, 0xd1, 0xc4, 0x03, 0xb1, \
- 0xa5, 0x94, 0x9a, 0x9c, 0xa2, 0xa7, 0x4e, 0x6e, 0x0f, 0x27, 0x19, 0xb1, \
- 0x13, 0x06, 0x91, 0x17, 0x99, 0xbe, 0x9d, 0xea, 0x59, 0x7e, 0xc8, 0xb3, \
- 0x75, 0xba, 0xc6, 0x46, 0xf8, 0xa9, 0xa0, 0x3e, 0x6f, 0x22, 0x71, 0xd9, \
- 0xfb, 0x5b, 0x69, 0x5c, 0x51, 0xd7, 0xfe, 0x21, 0x25, 0xa0, 0x8e, 0x24, \
- 0x3d, 0x63, 0xe5, 0xd4, 0x26, 0xb6, 0xdb, 0xbc, 0x14, 0x9a, 0x87, 0xe6, \
- 0x5f, 0x8b, 0x18, 0x88, 0x46, 0x5f, 0x99, 0xce, 0x51, 0x9c, 0xe4, 0xdd, \
- 0x8d, 0x51, 0x43, 0x2e, 0x45, 0xe4, 0xbd, 0x01, 0xa4, 0x18, 0x93, 0x18, \
- 0x9a, 0x86, 0x56, 0xbc, 0x9c, 0x92, 0x26, 0xfc, 0x4b, 0xbc, 0x38, 0x44, \
- 0x15, 0x69, 0xd3, 0xbe, 0x87, 0x18, 0x0c, 0x83, 0x3d, 0x63, 0xd5, 0x3a, \
- 0xdc, 0x15, 0xd9, 0x53, 0xec, 0x6f, 0xcd, 0x16, 0x43, 0xaa, 0x00, 0xf2, \
- 0x0a, 0xea, 0x7c, 0xc1, 0x69, 0xef, 0xee, 0xb9, 0x62, 0xeb, 0xb7, 0x24, \
- 0xba, 0x00, 0x08, 0x86, 0x1a, 0x1f, 0xda, 0x98, 0x8c, 0x93, 0xd3, 0xea, \
- 0x0e, 0x32, 0x24, 0xd4, 0xc7, 0x2c, 0x0c, 0x2f, 0xec, 0xf4, 0xf9, 0x54, \
- 0xf9, 0xfc, 0xf4, 0x7b, 0x5f, 0x39, 0xb5, 0x9a, 0x9c, 0x4c, 0x12, 0x42, \
- 0x33, 0x82, 0xae, 0x2e, 0xf5, 0x47, 0x31, 0x04, 0x90, 0xbb, 0x3d, 0x57, \
- 0x66, 0x1a, 0x51, 0xb9, 0xee, 0x35, 0x6d, 0x07, 0x20, 0xf6, 0xe3, 0x76, \
- 0xe2, 0x37, 0x4c, 0x38, 0xe7, 0x38, 0xe1, 0x58, 0xdb, 0xec, 0x8d, 0x7c, \
- 0xc5, 0xa2, 0x3a, 0x62, 0x69, 0xa3, 0xca, 0x44, 0x1a, 0x4e, 0xc4, 0x06, \
- 0xdd, 0xee, 0xf5, 0xa0, 0xd6, 0x00, 0x7d, 0x0b, 0x35, 0x90, 0xba, 0x19, \
- 0xee, 0xb2, 0xa6, 0xda, 0x67, 0xfe, 0x21, 0xb6, 0x86, 0x25, 0xd1, 0xd4, \
- 0x22, 0x73, 0x9c, 0x92, 0x8c, 0x7b, 0x9a, 0x49, 0x16, 0x3a, 0x6f, 0xfe, \
- 0x60, 0xcf, 0xce, 0x4c, 0xfa, 0x91, 0x8b, 0x69, 0x0f, 0xe5, 0xb3, 0x00, \
- 0x02, 0x2e, 0x88, 0xff, 0x16, 0x40, 0x20, 0xce, 0x98, 0x15, 0xd1, 0x8c, \
- 0x97, 0xa6, 0x3a, 0xd3, 0x38, 0x3e, 0x11, 0x01, 0xeb, 0x52, 0x3c, 0x5e, \
- 0x1d, 0x20, 0x48, 0x2d, 0xd6, 0xd0, 0x41, 0x1b, 0x13, 0xb7, 0x5c, 0x89, \
- 0xe8, 0x64, 0xfa, 0x6b, 0xed, 0xe2, 0x67, 0x4b, 0xfa, 0x5c, 0x32, 0x83, \
- 0xa1, 0x48, 0x7a, 0x30, 0x93, 0xff, 0x05, 0xdb, 0xa3, 0xf8, 0x64, 0x20, \
- 0xa7, 0xa9, 0xac, 0x62, 0xc5, 0x99, 0x71, 0xfa, 0x9d, 0x10, 0xc9, 0xeb, \
- 0xc6, 0x8f, 0x36, 0xd6, 0x5e, 0x79, 0x8f, 0x95, 0xc3, 0xa2, 0xcb, 0x11, \
- 0x99, 0x3a, 0xe1, 0x45, 0x48, 0x55, 0xcd, 0xa4, 0xd8, 0x29, 0x0f, 0x2f, \
- 0x0a, 0xa8, 0xf4, 0x8c, 0xbd, 0xda, 0xd9, 0x22, 0x11, 0xa1, 0xe1, 0xa3, \
- 0x85, 0x88, 0x82, 0x21, 0x59, 0xc2, 0x57, 0xc0, 0x77, 0xa7, 0xbd, 0x1c, \
- 0x1a, 0xfe, 0xb3, 0x64, 0x4e, 0x60, 0x01, 0xa1, 0xf0, 0xdc, 0x08, 0x33, \
- 0x99, 0x3c, 0x06, 0x88, 0x79, 0xf4, 0x84, 0xd6, 0xa4, 0xda, 0x8c, 0x1f, \
- 0xb8, 0x59, 0x59, 0xd2, 0x82, 0xbe, 0x52, 0x58, 0x32, 0x25, 0xb6, 0x0c, \
- 0x31, 0xcf, 0x1e, 0xbe, 0x0e, 0x74, 0xbb, 0xd3, 0xfc, 0x74, 0xca, 0xf0, \
- 0x39, 0xad, 0x3c, 0x03, 0xf5, 0x9b, 0x5d, 0xa6, 0x94, 0xfa, 0x81, 0x0e, \
- 0x19, 0x9a, 0xd7, 0x58, 0x7b, 0x59, 0x35, 0x48, 0xc8, 0x28, 0xa1, 0x8c, \
- 0x6a, 0x9b, 0x65, 0x7d, 0xf6, 0xcb, 0x39, 0xe8, 0x39, 0xf3, 0x6b, 0xef, \
- 0xfc, 0x07, 0xc6, 0xe8, 0x5c, 0x8b, 0xbd, 0x7e, 0x98, 0x64, 0x6a, 0xf8, \
- 0x79, 0xbe, 0xad, 0x4d, 0x3e, 0x1b, 0x79, 0xc4, 0x01, 0xeb, 0x64, 0x49, \
- 0xa4, 0x20, 0x0f, 0x1c, 0xbd, 0xad, 0x39, 0x32, 0x9f, 0xc4, 0x3c, 0x55, \
- 0x53, 0xa2, 0x86, 0xa0}
+#define DEV_AUTH_ROOT_STAGING_ED25519 \
+ {0xcd, 0x31, 0x8d, 0xc8, 0x40, 0x5a, 0xe4, 0xf4, 0x14, 0x4e, 0x32, \
+ 0x84, 0xdc, 0xb7, 0xb0, 0xcb, 0x0f, 0x0c, 0x21, 0x95, 0xc2, 0xca, \
+ 0x14, 0xa0, 0xf6, 0xfc, 0xcd, 0x91, 0x04, 0xe3, 0x2a, 0x4b}
-// ML-DSA-44 device authenticity root backup production key for T3W1.
-#define DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44 \
- {0xfe, 0xdf, 0x8b, 0x0c, 0x16, 0x16, 0x4b, 0x9c, 0xec, 0x42, 0x78, 0x82, \
- 0xaa, 0x03, 0xd3, 0xbd, 0x6a, 0x15, 0x88, 0xcf, 0xba, 0xeb, 0xaf, 0x93, \
- 0xcf, 0x2f, 0xc5, 0x2f, 0x27, 0x54, 0x17, 0x77, 0x74, 0x33, 0xa9, 0x38, \
- 0xdc, 0xd6, 0x51, 0x63, 0x45, 0x14, 0x8f, 0x72, 0x8c, 0x93, 0x5a, 0x40, \
- 0xef, 0x3b, 0x6c, 0x41, 0xfd, 0x3e, 0xd8, 0x31, 0xfe, 0xa1, 0x37, 0x74, \
- 0xbd, 0x39, 0x88, 0x7d, 0xa8, 0xb0, 0x6e, 0x2e, 0x67, 0x1c, 0xc3, 0x2a, \
- 0x1c, 0x72, 0xe4, 0x4a, 0x13, 0xd1, 0xcd, 0x98, 0x5d, 0xc2, 0xdd, 0xcb, \
- 0x63, 0xe4, 0x57, 0xbb, 0xd2, 0x9d, 0x38, 0x18, 0x6d, 0xdb, 0x77, 0x6b, \
- 0x8e, 0x73, 0xb6, 0x45, 0xc8, 0xbf, 0x61, 0x63, 0x09, 0xf8, 0x90, 0xd1, \
- 0x75, 0x53, 0x8a, 0x9d, 0x10, 0xc8, 0x2e, 0x59, 0x5d, 0xea, 0x03, 0xf7, \
- 0x05, 0x64, 0xff, 0x69, 0xb5, 0x34, 0x97, 0xec, 0xef, 0xd5, 0x1f, 0xd8, \
- 0x32, 0x00, 0x41, 0xd9, 0xb1, 0x09, 0x23, 0x86, 0x03, 0x3e, 0xd3, 0x7a, \
- 0x93, 0xdd, 0x9b, 0x4b, 0x9d, 0xa1, 0x29, 0x7f, 0x80, 0x8e, 0xac, 0x21, \
- 0x02, 0x0b, 0x8d, 0xc4, 0x74, 0x7e, 0x01, 0x85, 0x4e, 0xbd, 0xc4, 0x07, \
- 0xa0, 0x4f, 0xc1, 0x8b, 0x27, 0x58, 0x72, 0x01, 0x25, 0xac, 0xb4, 0x1f, \
- 0x0c, 0x60, 0xe1, 0x6c, 0xd5, 0x37, 0x07, 0xa6, 0x53, 0x92, 0xfe, 0xed, \
- 0x06, 0xc9, 0xfc, 0xc2, 0x8a, 0x3e, 0x73, 0x8d, 0xbc, 0x91, 0x61, 0x4e, \
- 0x89, 0xe5, 0xd5, 0x35, 0x27, 0x4c, 0x6b, 0x22, 0x6d, 0x83, 0xf3, 0x35, \
- 0xa0, 0xdd, 0x08, 0x87, 0x55, 0x57, 0x1c, 0xf6, 0x24, 0x96, 0xca, 0x46, \
- 0x42, 0xec, 0x8e, 0x65, 0xeb, 0xa8, 0xbe, 0x2b, 0x8c, 0xec, 0x46, 0x41, \
- 0x6c, 0x6a, 0x3a, 0xd4, 0xbe, 0x10, 0x56, 0x9a, 0xc5, 0x32, 0xe0, 0x2d, \
- 0x6e, 0x06, 0xb6, 0xce, 0x0c, 0x0d, 0x4b, 0x7a, 0x99, 0xa1, 0x1c, 0x91, \
- 0x0f, 0x9f, 0x06, 0x31, 0xb0, 0xcd, 0x72, 0xe2, 0x06, 0x37, 0x23, 0x7e, \
- 0xef, 0xf7, 0x23, 0xe7, 0x22, 0xf7, 0xaa, 0x62, 0x67, 0x32, 0x43, 0x4c, \
- 0x47, 0x84, 0x3a, 0x09, 0x97, 0x39, 0xe9, 0x6e, 0x31, 0x26, 0x7d, 0x8d, \
- 0x69, 0x05, 0xd8, 0xb2, 0xb7, 0x12, 0xa5, 0xa6, 0x9d, 0x93, 0x43, 0xa3, \
- 0xc1, 0xe0, 0x7a, 0xfb, 0x41, 0x4b, 0x73, 0x95, 0x0f, 0x4b, 0x1d, 0xf1, \
- 0x96, 0x24, 0x30, 0x05, 0xfb, 0x61, 0xc6, 0x20, 0x0e, 0xf3, 0x46, 0x82, \
- 0x6d, 0x6c, 0x0f, 0x4c, 0xc8, 0xed, 0xe0, 0x52, 0xed, 0x48, 0x23, 0x59, \
- 0x97, 0xbb, 0x36, 0x6d, 0xad, 0xe4, 0x48, 0x3b, 0xfc, 0x11, 0xfe, 0x65, \
- 0xfd, 0x0c, 0x55, 0x39, 0xe8, 0x9d, 0x8b, 0xd2, 0x71, 0xe5, 0x4e, 0x30, \
- 0xda, 0x6e, 0x51, 0x92, 0xa0, 0xf3, 0x43, 0xde, 0xa3, 0x80, 0x6a, 0xa7, \
- 0x98, 0xd1, 0x2d, 0x62, 0x25, 0x1a, 0x06, 0x3d, 0x07, 0x1b, 0xa6, 0x7c, \
- 0x35, 0xd3, 0xa2, 0x6e, 0x58, 0x2c, 0x2d, 0x36, 0x1c, 0xf2, 0xd0, 0xfc, \
- 0x36, 0xfb, 0x1b, 0x5a, 0x46, 0xe4, 0x69, 0x66, 0x93, 0x38, 0xb1, 0xc1, \
- 0x74, 0x4b, 0xdf, 0xe3, 0x65, 0x70, 0x0a, 0x6a, 0x1c, 0x64, 0x1a, 0xb2, \
- 0xb7, 0x90, 0x6e, 0x2b, 0x7c, 0x0c, 0x0a, 0x9a, 0xf8, 0x86, 0x2a, 0xb5, \
- 0x75, 0x1a, 0x67, 0x8e, 0x3e, 0x01, 0x56, 0x84, 0x7f, 0xf6, 0x09, 0x3c, \
- 0xa7, 0xeb, 0xd4, 0x8d, 0xd8, 0xb1, 0xd6, 0xf7, 0x73, 0x6c, 0x20, 0x39, \
- 0xe7, 0x05, 0xc1, 0xe2, 0x0f, 0x42, 0xed, 0x5c, 0xac, 0x6d, 0xb3, 0xdc, \
- 0x7a, 0x7e, 0x2f, 0xac, 0xbb, 0x75, 0x41, 0x1e, 0x7f, 0xb8, 0xa1, 0x56, \
- 0xdf, 0x52, 0xa2, 0x92, 0x6a, 0xfa, 0x90, 0x70, 0x93, 0x7c, 0xde, 0x4d, \
- 0xd4, 0xbd, 0x45, 0x62, 0x94, 0xba, 0x59, 0xbd, 0xcf, 0x12, 0x3f, 0x11, \
- 0xdc, 0xda, 0x26, 0x7d, 0x47, 0x57, 0x21, 0xab, 0xfe, 0xca, 0xb1, 0xb3, \
- 0x18, 0x48, 0xa2, 0x72, 0x36, 0xaa, 0x75, 0x1e, 0x5b, 0x55, 0x01, 0x5f, \
- 0x03, 0x3d, 0x87, 0xfb, 0x9c, 0xf5, 0xc0, 0x86, 0xe0, 0x9f, 0x16, 0x67, \
- 0xcf, 0x7e, 0xc2, 0xe7, 0x24, 0x36, 0xc9, 0x07, 0xc5, 0x76, 0x36, 0x90, \
- 0xd6, 0x98, 0xff, 0xfa, 0x99, 0x77, 0x09, 0xbb, 0x89, 0x52, 0x6c, 0xae, \
- 0x77, 0x2b, 0xb9, 0x62, 0xc0, 0x6e, 0xd1, 0xb8, 0x9d, 0x41, 0x88, 0x35, \
- 0x67, 0x2b, 0x85, 0xe1, 0xa1, 0xb2, 0xe3, 0xc5, 0x5f, 0x4e, 0x60, 0x7e, \
- 0xca, 0xd0, 0x9b, 0xdb, 0x3a, 0x18, 0x22, 0x4b, 0x98, 0x05, 0x65, 0x9a, \
- 0xa2, 0xec, 0xf0, 0xb6, 0x2d, 0xbf, 0x62, 0x65, 0xe2, 0x7d, 0x41, 0x01, \
- 0x45, 0x0e, 0xdb, 0x59, 0x0d, 0x52, 0xd5, 0x25, 0xb6, 0x2b, 0x11, 0x14, \
- 0xda, 0xd2, 0xeb, 0x06, 0xc9, 0x51, 0xa2, 0xc7, 0x7c, 0x7e, 0xcf, 0xbf, \
- 0x5f, 0x1f, 0x6f, 0xe2, 0x85, 0xf3, 0x97, 0x27, 0x95, 0x8c, 0xe0, 0xb5, \
- 0xcf, 0xe8, 0xfd, 0x46, 0x54, 0x20, 0xc2, 0x70, 0x30, 0x99, 0x99, 0xe6, \
- 0x69, 0x4e, 0xe3, 0x1f, 0xcb, 0x7d, 0x64, 0x80, 0xa7, 0x5d, 0x0d, 0x72, \
- 0x55, 0x8c, 0xd6, 0xa0, 0x50, 0xb8, 0xd1, 0x1a, 0x9a, 0x6d, 0x77, 0x36, \
- 0x70, 0x00, 0x27, 0xfb, 0xe1, 0x4b, 0x48, 0x94, 0x9b, 0x7e, 0x1a, 0xf2, \
- 0xca, 0x14, 0x8a, 0xd4, 0xe4, 0xb4, 0xb9, 0x3e, 0x95, 0x75, 0xa4, 0x11, \
- 0x9a, 0xfd, 0x1b, 0x57, 0xc2, 0x50, 0x60, 0x6d, 0x5a, 0x4e, 0x25, 0x8c, \
- 0x23, 0x93, 0xc1, 0x04, 0xd6, 0x51, 0x99, 0x5b, 0x1e, 0x75, 0x88, 0x7f, \
- 0x49, 0x2f, 0xf0, 0x5e, 0x92, 0xe1, 0x63, 0x03, 0x32, 0xf1, 0x76, 0xd8, \
- 0x6a, 0x04, 0x53, 0xb4, 0x12, 0xd0, 0x86, 0x9d, 0x98, 0xd6, 0xab, 0x27, \
- 0x37, 0x7a, 0x74, 0x76, 0x6e, 0x3c, 0xad, 0xde, 0x29, 0xc1, 0x85, 0x3e, \
- 0x63, 0x98, 0xa9, 0xed, 0xfa, 0x48, 0xc0, 0xd1, 0x4e, 0x7c, 0x14, 0x8b, \
- 0x04, 0x8f, 0x1b, 0xf2, 0x5d, 0x11, 0x97, 0x9e, 0x94, 0x87, 0x8c, 0xb8, \
- 0x6e, 0xaf, 0x1e, 0x55, 0x63, 0x8c, 0x1b, 0x39, 0xe0, 0xac, 0x52, 0x54, \
- 0xa0, 0x09, 0xbf, 0x95, 0x7f, 0x4b, 0x62, 0x47, 0x96, 0x75, 0x3c, 0x34, \
- 0x51, 0x24, 0x6e, 0x5a, 0x7b, 0x90, 0x22, 0x92, 0x6a, 0xa7, 0x7b, 0x7a, \
- 0x1b, 0x4a, 0xe7, 0xd2, 0x5f, 0x77, 0x6d, 0x43, 0x95, 0xba, 0x98, 0xa3, \
- 0x7d, 0x9e, 0x21, 0xb2, 0x21, 0xda, 0x29, 0x56, 0x4e, 0x50, 0xa6, 0x69, \
- 0x05, 0x66, 0x50, 0xa4, 0x04, 0x89, 0x38, 0x6e, 0x89, 0x09, 0xc6, 0xca, \
- 0x21, 0xd3, 0x69, 0xc3, 0x49, 0x5c, 0x44, 0xb2, 0xf7, 0x13, 0x73, 0xa3, \
- 0x92, 0xc9, 0xfa, 0x89, 0xc9, 0x08, 0x5f, 0x46, 0x7d, 0x24, 0xd6, 0x21, \
- 0x9f, 0xcd, 0xd2, 0xb5, 0x61, 0x26, 0x79, 0x2e, 0xb6, 0xa1, 0x42, 0x69, \
- 0xc4, 0x26, 0x4a, 0x56, 0x92, 0x6b, 0x1a, 0x7d, 0x9a, 0x1c, 0x03, 0xd9, \
- 0x64, 0x9d, 0x15, 0x7f, 0x93, 0x8a, 0xbf, 0xdc, 0x2a, 0x56, 0xc2, 0x07, \
- 0x95, 0x06, 0x57, 0x74, 0x83, 0x80, 0x30, 0xda, 0x41, 0xa4, 0xc6, 0x17, \
- 0x89, 0x19, 0xcc, 0x1c, 0x6c, 0x88, 0xde, 0x14, 0x58, 0xd9, 0xba, 0xa1, \
- 0xe5, 0x1a, 0x4a, 0x19, 0x94, 0xe6, 0xd5, 0xcc, 0x94, 0xb0, 0x49, 0xb1, \
- 0x5c, 0x23, 0x5c, 0x5c, 0xf4, 0x6d, 0x2c, 0xf2, 0x3f, 0x09, 0xd5, 0x65, \
- 0xc5, 0xa5, 0x49, 0x7e, 0xf0, 0xb3, 0xa5, 0xfb, 0xc8, 0xd1, 0xbe, 0x8e, \
- 0xd7, 0x8f, 0x37, 0x94, 0xc4, 0x9d, 0x49, 0x36, 0x13, 0x9b, 0x04, 0x19, \
- 0xfa, 0xaf, 0xfc, 0x52, 0xb5, 0x5c, 0xb9, 0x1f, 0x6e, 0x1b, 0xaf, 0xac, \
- 0xd5, 0x55, 0x23, 0xc0, 0xb7, 0xee, 0xc5, 0x6d, 0x98, 0xe4, 0x22, 0x8c, \
- 0xd0, 0xf9, 0xd0, 0x0b, 0xc9, 0x86, 0x6d, 0xac, 0x71, 0xe4, 0x3d, 0xb2, \
- 0xb2, 0xcf, 0x31, 0x19, 0x99, 0xd7, 0xbc, 0x3a, 0x49, 0x21, 0x98, 0x36, \
- 0xf5, 0x58, 0xcb, 0xb5, 0xd8, 0xfa, 0xa7, 0x9e, 0x83, 0x07, 0x9c, 0x6c, \
- 0xe9, 0x22, 0x88, 0xaa, 0xe8, 0x52, 0x55, 0x3b, 0x65, 0x5e, 0xf6, 0xbc, \
- 0x87, 0xfb, 0xb2, 0x5c, 0xa3, 0xab, 0x48, 0x2a, 0xec, 0xaf, 0x0a, 0x86, \
- 0xee, 0xcc, 0x92, 0x34, 0x19, 0x06, 0xcc, 0x89, 0xd2, 0x34, 0x08, 0x7f, \
- 0x5a, 0xbd, 0x6d, 0x21, 0x00, 0xa6, 0x0d, 0x36, 0x1d, 0x51, 0x6d, 0x46, \
- 0x0d, 0x43, 0x6b, 0x46, 0x70, 0x6a, 0xd4, 0x4b, 0x8b, 0x4e, 0xf3, 0xfe, \
- 0x54, 0xea, 0x19, 0x8f, 0xfc, 0x2c, 0xf8, 0xc8, 0xe1, 0x44, 0xec, 0x62, \
- 0xc4, 0xce, 0x86, 0xed, 0x5d, 0x18, 0x12, 0x83, 0xfc, 0x17, 0xc9, 0x26, \
- 0x66, 0x8c, 0xa4, 0xe0, 0xb8, 0x68, 0x3e, 0x0c, 0x7b, 0xc6, 0x62, 0xa5, \
- 0x4e, 0xa7, 0xf4, 0xc8, 0x30, 0x36, 0x5a, 0xd1, 0xcd, 0xea, 0x58, 0xab, \
- 0xee, 0x9a, 0x72, 0x61, 0x68, 0xce, 0x98, 0x70, 0x72, 0x99, 0x72, 0x88, \
- 0x4e, 0xcf, 0xe5, 0xba, 0xf0, 0x6f, 0x1e, 0xe6, 0x64, 0xaa, 0x42, 0x2e, \
- 0x26, 0xf9, 0xf7, 0x6e, 0x20, 0x90, 0x8d, 0x72, 0xe7, 0x8c, 0x1a, 0x2d, \
- 0xcd, 0x94, 0xfe, 0x1c, 0x07, 0x57, 0x3d, 0x77, 0x06, 0xd7, 0xbd, 0xc0, \
- 0x7d, 0x0b, 0x41, 0x49, 0x8c, 0x0d, 0x52, 0xec, 0x3a, 0x90, 0xd6, 0xe7, \
- 0xc0, 0xfc, 0xef, 0x59, 0x7a, 0x88, 0x4f, 0xb2, 0xca, 0xba, 0x29, 0xc2, \
- 0x27, 0x95, 0x69, 0xa1, 0xe6, 0x4d, 0xd6, 0xc7, 0xed, 0x4b, 0x31, 0x2d, \
- 0x21, 0x97, 0xb6, 0x39, 0x14, 0x07, 0x89, 0x9b, 0x25, 0xd2, 0x1c, 0xef, \
- 0xd1, 0x40, 0x8e, 0xca, 0x42, 0x20, 0x4f, 0x76, 0xcb, 0x04, 0x36, 0xf4, \
- 0x4c, 0x0a, 0x9c, 0x2e, 0x1e, 0xca, 0x19, 0xdf, 0x8d, 0x93, 0x25, 0x5c, \
- 0x0d, 0xa6, 0x46, 0x9d, 0xc4, 0x7d, 0xa8, 0x83, 0xe1, 0x86, 0x38, 0x7f, \
- 0x76, 0x01, 0x1c, 0xc8}
+#define DEV_AUTH_ROOT_STAGING_MLDSA44 \
+ { \
+ 0x1f, 0x3e, 0x5e, 0xda, 0xd4, 0x5f, 0xc6, 0x98, 0x0d, 0xbf, 0xd5, 0x97, \
+ 0xed, 0x17, 0xb7, 0x7e, 0x4d, 0x4a, 0xd1, 0xb1, 0xec, 0x48, 0x04, 0xe0, \
+ 0x4d, 0xc0, 0x61, 0xcc, 0x2c, 0xfe, 0x77, 0xbc, 0x96, 0xfb, 0xc9, 0x3f, \
+ 0x69, 0x8f, 0x1f, 0xe0, 0x0c, 0x47, 0x17, 0x7c, 0x81, 0x50, 0x27, 0x6d, \
+ 0xab, 0x86, 0xcb, 0xf4, 0x07, 0xad, 0xd7, 0x52, 0x7d, 0xeb, 0x09, 0xb6, \
+ 0x5a, 0x66, 0x23, 0xef, 0x58, 0x14, 0x22, 0x29, 0x2d, 0x77, 0x74, 0x4b, \
+ 0xe6, 0x4f, 0x44, 0x01, 0xca, 0x65, 0xb9, 0xbd, 0x02, 0x7e, 0x32, 0xa7, \
+ 0x6f, 0x30, 0x74, 0x13, 0xb0, 0x86, 0x86, 0x9e, 0xcc, 0xbc, 0xfc, 0x5e, \
+ 0x88, 0x23, 0xbe, 0x8e, 0x0b, 0x38, 0x97, 0x72, 0x7b, 0xca, 0x56, 0x8f, \
+ 0xee, 0xff, 0x62, 0x95, 0x7c, 0xd1, 0xe2, 0x61, 0xe4, 0xaa, 0xb6, 0x72, \
+ 0x71, 0x72, 0x5d, 0x24, 0x0c, 0x7e, 0x7d, 0x2a, 0x20, 0xa5, 0xc2, 0x01, \
+ 0x69, 0x9b, 0xe8, 0x3d, 0x6c, 0x6a, 0x57, 0xfd, 0xfc, 0x09, 0xac, 0x9b, \
+ 0x6b, 0x59, 0x9e, 0x2a, 0x14, 0xa5, 0x0e, 0x42, 0x1d, 0x24, 0x6d, 0x1d, \
+ 0x1d, 0xf8, 0x05, 0xdb, 0x0b, 0x25, 0x53, 0x4e, 0x50, 0x0f, 0xed, 0x76, \
+ 0xfa, 0x89, 0x97, 0x5a, 0x42, 0x70, 0xe2, 0x74, 0xa9, 0xfa, 0x72, 0xb5, \
+ 0x28, 0xe4, 0x7d, 0x99, 0x9a, 0xbd, 0xec, 0xa5, 0xe0, 0x8e, 0x51, 0xd4, \
+ 0x47, 0xae, 0x40, 0x19, 0xf6, 0x99, 0x08, 0x8d, 0x48, 0x5b, 0xb5, 0x2d, \
+ 0x5e, 0xec, 0x7a, 0x8c, 0x72, 0x5c, 0xd3, 0x4f, 0xf9, 0x55, 0xc1, 0x64, \
+ 0x37, 0x87, 0x7a, 0x13, 0x1f, 0x06, 0x84, 0x38, 0xb5, 0x69, 0x9c, 0x22, \
+ 0x85, 0x00, 0x04, 0x63, 0xe2, 0x4c, 0x63, 0x3b, 0x02, 0x3c, 0xde, 0x27, \
+ 0x9b, 0xe0, 0x15, 0xdb, 0x2f, 0x8b, 0x16, 0xde, 0x07, 0xfa, 0x82, 0xee, \
+ 0x9a, 0xdc, 0xbf, 0x86, 0x8b, 0x89, 0x8e, 0x25, 0xee, 0xef, 0x5d, 0x60, \
+ 0xd0, 0x3e, 0x1d, 0xa8, 0x74, 0xac, 0xa6, 0xf2, 0x08, 0x9b, 0x1e, 0x7c, \
+ 0x72, 0xd7, 0xb5, 0x32, 0xd3, 0xa2, 0x7e, 0x38, 0x93, 0x6d, 0x53, 0xc0, \
+ 0x08, 0x0f, 0x99, 0x08, 0xb6, 0x72, 0x7b, 0x13, 0xfe, 0x96, 0x1e, 0xc8, \
+ 0xb0, 0x80, 0x04, 0xf0, 0x77, 0xb9, 0xcc, 0xe9, 0x5b, 0x5e, 0xee, 0x9b, \
+ 0x44, 0xd3, 0x51, 0xe7, 0x9e, 0xb2, 0x22, 0xab, 0xa1, 0xbc, 0x18, 0x89, \
+ 0x5d, 0x36, 0xcf, 0x48, 0x43, 0xff, 0xcd, 0xfc, 0x73, 0x5e, 0x1b, 0x66, \
+ 0xf3, 0xe7, 0x2d, 0xb5, 0xaa, 0xf8, 0xb5, 0xec, 0xf5, 0x6d, 0xbf, 0x0d, \
+ 0x61, 0x6c, 0xf5, 0x3d, 0x19, 0x2a, 0x60, 0xe6, 0x1a, 0xd3, 0xc5, 0x1a, \
+ 0x59, 0x52, 0x13, 0x10, 0x0f, 0xd0, 0x08, 0x35, 0x43, 0x4a, 0x28, 0xaa, \
+ 0xb3, 0xeb, 0x59, 0x49, 0xd3, 0x40, 0x5d, 0xe5, 0xdb, 0x1a, 0x58, 0x6b, \
+ 0xd6, 0xe9, 0x37, 0x44, 0x49, 0x13, 0xe9, 0xf1, 0xd4, 0xc0, 0x02, 0x47, \
+ 0xac, 0xd4, 0x9a, 0x2e, 0xd9, 0x95, 0x36, 0x36, 0xe5, 0xd7, 0x44, 0x17, \
+ 0xb4, 0xc7, 0x14, 0x4c, 0x6c, 0x22, 0xfd, 0x8f, 0x7e, 0x25, 0xcb, 0x6c, \
+ 0xf6, 0xc8, 0x51, 0x0d, 0xe6, 0x91, 0x5b, 0x74, 0xc9, 0x5a, 0x28, 0xc1, \
+ 0x97, 0x15, 0x22, 0x08, 0x09, 0x6d, 0x02, 0x49, 0xb8, 0x61, 0x50, 0xe8, \
+ 0x07, 0x97, 0x8c, 0xa9, 0x85, 0xc1, 0x10, 0xd0, 0x7b, 0x7d, 0x0a, 0x24, \
+ 0x43, 0x40, 0x39, 0xf6, 0xef, 0x12, 0xa6, 0x9d, 0x3e, 0x07, 0x3a, 0xf6, \
+ 0xae, 0x44, 0xe7, 0xc4, 0x60, 0x6a, 0x35, 0x4a, 0x3e, 0x95, 0x3b, 0xdc, \
+ 0xff, 0x10, 0xc8, 0xdc, 0x68, 0xb8, 0x07, 0xf4, 0x1a, 0xc5, 0x63, 0xff, \
+ 0x0d, 0x71, 0x41, 0xc3, 0x28, 0xb3, 0x41, 0x52, 0xa2, 0x5a, 0x16, 0xe9, \
+ 0xcb, 0x82, 0x28, 0xf7, 0x70, 0x73, 0x56, 0xd2, 0xd7, 0xf3, 0xca, 0xa8, \
+ 0xd7, 0x78, 0xa8, 0x5e, 0x3b, 0x66, 0x24, 0x2c, 0x12, 0x42, 0x81, 0xc0, \
+ 0xf3, 0x20, 0x1a, 0xd2, 0x85, 0x96, 0xb8, 0x68, 0xdb, 0x13, 0x81, 0x49, \
+ 0xeb, 0x98, 0xb8, 0x21, 0xdc, 0xaa, 0xf8, 0x6b, 0x5e, 0x11, 0xc2, 0xac, \
+ 0x11, 0x61, 0x97, 0x5b, 0xf0, 0xb2, 0xec, 0xef, 0xc1, 0x11, 0xb7, 0xb7, \
+ 0x40, 0x1c, 0xe2, 0x61, 0x91, 0x15, 0x26, 0x61, 0x80, 0x44, 0xd1, 0x26, \
+ 0xee, 0xee, 0x88, 0x5e, 0xfe, 0x51, 0xbe, 0x0e, 0x32, 0xe9, 0x3a, 0xaa, \
+ 0xff, 0xe3, 0x48, 0x99, 0xdf, 0x5b, 0x10, 0xdf, 0x7c, 0x5a, 0x9c, 0x54, \
+ 0xc5, 0xb4, 0x70, 0x46, 0x71, 0x64, 0x0a, 0x92, 0xe8, 0x63, 0x1f, 0x0d, \
+ 0x40, 0x1f, 0x44, 0xc2, 0x23, 0x8b, 0x5f, 0x9a, 0x37, 0x49, 0x9b, 0x3d, \
+ 0x83, 0xc1, 0xc6, 0x00, 0x96, 0xf2, 0xb4, 0x8c, 0x30, 0x81, 0xdd, 0x97, \
+ 0x69, 0xdb, 0x32, 0x5c, 0x1c, 0xd1, 0xff, 0xe8, 0x4b, 0xfd, 0x8a, 0x80, \
+ 0xdd, 0xe3, 0xcd, 0x65, 0x0c, 0x49, 0xe1, 0x4a, 0xf3, 0xab, 0x6c, 0x31, \
+ 0x7e, 0xe7, 0x4b, 0xd3, 0x9e, 0x97, 0x6f, 0xf5, 0xb7, 0xad, 0x49, 0x0e, \
+ 0x80, 0xf3, 0xef, 0xf9, 0xed, 0xf3, 0xb3, 0x85, 0x50, 0x70, 0xa5, 0xa0, \
+ 0x6f, 0xbe, 0x9c, 0xbc, 0xa5, 0x4f, 0x52, 0x1e, 0x3d, 0x74, 0xcf, 0x13, \
+ 0xa4, 0xd1, 0x16, 0xe2, 0x3e, 0x53, 0x1a, 0x7c, 0x70, 0x23, 0x2c, 0x04, \
+ 0x4b, 0x7e, 0x7d, 0x02, 0x46, 0x7a, 0xfe, 0x2a, 0x40, 0xde, 0xf1, 0x42, \
+ 0x98, 0x68, 0x8e, 0xce, 0xd5, 0xd3, 0xd8, 0x7a, 0x10, 0x2d, 0x31, 0xd7, \
+ 0xcd, 0x54, 0x09, 0x91, 0x8c, 0xed, 0x4b, 0xab, 0x19, 0x05, 0x05, 0xdf, \
+ 0x48, 0xf4, 0x51, 0xde, 0xea, 0x1c, 0x29, 0x16, 0x82, 0x46, 0xd6, 0x21, \
+ 0x52, 0x9f, 0x03, 0x46, 0xea, 0xab, 0x0e, 0x23, 0x02, 0xf3, 0xce, 0x20, \
+ 0x6d, 0xd8, 0x48, 0x37, 0x70, 0x4b, 0x8b, 0xde, 0xdb, 0xad, 0xea, 0x5b, \
+ 0x58, 0x22, 0xcd, 0xec, 0xbf, 0xdb, 0x18, 0x0c, 0xde, 0x14, 0xe6, 0x2e, \
+ 0xe2, 0x6a, 0x92, 0x9f, 0x0a, 0x37, 0xa9, 0x9b, 0xac, 0xfe, 0x23, 0x73, \
+ 0x76, 0xa3, 0xe6, 0xc2, 0x89, 0xb0, 0x6b, 0x8e, 0x93, 0xed, 0x9d, 0x14, \
+ 0x35, 0xe3, 0xee, 0x63, 0x99, 0xab, 0x1a, 0x06, 0xd4, 0xf7, 0x00, 0x97, \
+ 0xf8, 0x0e, 0x26, 0xfe, 0x6f, 0x60, 0xb2, 0x7a, 0x68, 0x10, 0x4f, 0x63, \
+ 0x33, 0xb8, 0xdb, 0x1b, 0xc7, 0x8e, 0x12, 0xd5, 0x46, 0x47, 0xb2, 0x3f, \
+ 0xeb, 0x0f, 0x11, 0xae, 0x07, 0x0f, 0x3a, 0x6b, 0xe9, 0xd9, 0xf4, 0xd8, \
+ 0x9a, 0x6b, 0x5e, 0xf8, 0x59, 0x5d, 0x01, 0x0d, 0x41, 0x0e, 0x72, 0x13, \
+ 0x8c, 0xfc, 0xbd, 0x5e, 0x41, 0xcc, 0xa1, 0xdf, 0x33, 0xdd, 0xad, 0x65, \
+ 0x7b, 0x69, 0x9c, 0xf4, 0xd3, 0xdc, 0x60, 0x28, 0x88, 0xe5, 0xaa, 0xa0, \
+ 0xa7, 0xa2, 0x32, 0x5b, 0xa4, 0xa3, 0x6d, 0x7d, 0xe4, 0x9c, 0x59, 0x1d, \
+ 0x8e, 0x35, 0x5f, 0xd1, 0xde, 0x64, 0x4d, 0x77, 0x2b, 0xf2, 0xa0, 0x60, \
+ 0x09, 0x37, 0x43, 0x38, 0x8d, 0xbe, 0x5d, 0x30, 0xa2, 0xd9, 0x73, 0x04, \
+ 0xab, 0xc1, 0x7c, 0x54, 0x7b, 0xd6, 0x52, 0x76, 0x29, 0x1d, 0x6a, 0xa7, \
+ 0xb0, 0x72, 0x37, 0x03, 0x73, 0x32, 0x39, 0xfa, 0xbe, 0xf3, 0x9c, 0x2d, \
+ 0xe4, 0x70, 0x71, 0xd5, 0x00, 0x74, 0xe6, 0x8f, 0xbe, 0x71, 0xc8, 0x8f, \
+ 0x75, 0xd4, 0x51, 0x0b, 0xb5, 0xf6, 0xbc, 0x24, 0x4b, 0x3e, 0x7b, 0x21, \
+ 0x9e, 0xb8, 0x9f, 0xe5, 0xf1, 0x48, 0x45, 0x9a, 0x2d, 0x69, 0x3c, 0xd3, \
+ 0xfa, 0xc3, 0x2a, 0xa0, 0x69, 0xcb, 0xdd, 0x4e, 0x27, 0xc9, 0x77, 0x80, \
+ 0x96, 0xf6, 0x80, 0x5b, 0xf6, 0xdf, 0x9a, 0xec, 0x96, 0x71, 0xf0, 0xa5, \
+ 0x8b, 0x28, 0x70, 0x4f, 0x74, 0x77, 0x5e, 0x81, 0xac, 0x46, 0x82, 0x6c, \
+ 0x1c, 0x47, 0x09, 0xb0, 0xe0, 0x98, 0x9d, 0x6e, 0x8e, 0x73, 0xbd, 0x17, \
+ 0x95, 0xce, 0x85, 0xd8, 0x5c, 0x14, 0xad, 0x29, 0x97, 0xcd, 0x28, 0x10, \
+ 0x27, 0x2a, 0x56, 0x82, 0xe7, 0xed, 0x9a, 0xa7, 0xa0, 0x92, 0x70, 0x8c, \
+ 0x0f, 0x4b, 0xc6, 0x7f, 0x68, 0xd3, 0x17, 0xd4, 0x06, 0xa9, 0x6d, 0xdd, \
+ 0x28, 0x42, 0xea, 0x22, 0xcb, 0xf3, 0x41, 0x0c, 0xd7, 0xa7, 0x70, 0x05, \
+ 0xb6, 0x11, 0x15, 0xb7, 0x94, 0x89, 0x4c, 0xf9, 0xd1, 0x0e, 0xbb, 0x4f, \
+ 0x55, 0x52, 0xbe, 0xc8, 0xc2, 0x1d, 0x90, 0xba, 0x97, 0xd6, 0x13, 0x9d, \
+ 0x52, 0x61, 0xd7, 0xf5, 0x1f, 0x40, 0x09, 0xc3, 0x61, 0x8f, 0x9f, 0xeb, \
+ 0x22, 0xcc, 0x92, 0x9a, 0xde, 0x20, 0x4e, 0xca, 0x7c, 0x0f, 0x81, 0x34, \
+ 0x09, 0xce, 0xb8, 0x8a, 0x13, 0x51, 0x2f, 0x85, 0xe0, 0x39, 0x48, 0x31, \
+ 0x4b, 0xa9, 0xc4, 0x48, 0x8a, 0xaf, 0xda, 0x88, 0xce, 0x44, 0x7a, 0x0e, \
+ 0x05, 0x2a, 0x6a, 0x60, 0x5e, 0x32, 0xd0, 0x4a, 0x20, 0xe2, 0xe5, 0x2c, \
+ 0x41, 0xf3, 0x71, 0x24, 0x79, 0x63, 0xf2, 0x4f, 0xc2, 0x8c, 0x5c, 0xc1, \
+ 0xdd, 0xd8, 0xfe, 0x16, 0x81, 0xa2, 0xa2, 0x93, 0xda, 0xf2, 0x68, 0x8e, \
+ 0x9b, 0x02, 0x63, 0x03, 0xa7, 0x6c, 0xc6, 0x0f, 0x40, 0x29, 0x0c, 0x4d, \
+ 0x82, 0x3e, 0xfb, 0x85, 0xf3, 0x6c, 0xb5, 0xe0, 0x92, 0x36, 0x9c, 0xc2, \
+ 0x05, 0x15, 0xa8, 0x07, 0x7e, 0x77, 0x02, 0xed, 0x54, 0xca, 0x15, 0x65, \
+ 0xd3, 0x7b, 0x83, 0x18, 0x4e, 0xe4, 0x6c, 0x4a, 0x6a, 0xdf, 0x28, 0x40, \
+ 0xf5, 0xa5, 0xfb, 0x00, 0x2d, 0xb7, 0x06, 0x90, 0xbb, 0xf9, 0x38, 0x88, \
+ 0xe6, 0x85, 0xfd, 0xd1, 0xf9, 0xea, 0x21, 0x1b, 0x42, 0x69, 0x3e, 0x0b, \
+ 0xd5, 0xba, 0x52, 0x35, 0xa6, 0xea, 0x1b, 0x71, 0x47, 0x74, 0xd1, 0x32, \
+ 0x79, 0xd7, 0xdb, 0x34, 0x40, 0xf7, 0xfb, 0xce, 0xd5, 0x3f, 0x20, 0x3c, \
+ 0xe6, 0x50, 0x05, 0x55, 0xbc, 0xb9, 0x25, 0x1e, 0x6f, 0x36, 0xd3, 0x35, \
+ 0x23, 0x26, 0x50, 0x1c}
-// ML-DSA-44 device authenticity root staging key for T3W1.
-#define DEV_AUTH_ROOT_STAGING_MLDSA44 \
- {0x1f, 0x3e, 0x5e, 0xda, 0xd4, 0x5f, 0xc6, 0x98, 0x0d, 0xbf, 0xd5, 0x97, \
- 0xed, 0x17, 0xb7, 0x7e, 0x4d, 0x4a, 0xd1, 0xb1, 0xec, 0x48, 0x04, 0xe0, \
- 0x4d, 0xc0, 0x61, 0xcc, 0x2c, 0xfe, 0x77, 0xbc, 0x96, 0xfb, 0xc9, 0x3f, \
- 0x69, 0x8f, 0x1f, 0xe0, 0x0c, 0x47, 0x17, 0x7c, 0x81, 0x50, 0x27, 0x6d, \
- 0xab, 0x86, 0xcb, 0xf4, 0x07, 0xad, 0xd7, 0x52, 0x7d, 0xeb, 0x09, 0xb6, \
- 0x5a, 0x66, 0x23, 0xef, 0x58, 0x14, 0x22, 0x29, 0x2d, 0x77, 0x74, 0x4b, \
- 0xe6, 0x4f, 0x44, 0x01, 0xca, 0x65, 0xb9, 0xbd, 0x02, 0x7e, 0x32, 0xa7, \
- 0x6f, 0x30, 0x74, 0x13, 0xb0, 0x86, 0x86, 0x9e, 0xcc, 0xbc, 0xfc, 0x5e, \
- 0x88, 0x23, 0xbe, 0x8e, 0x0b, 0x38, 0x97, 0x72, 0x7b, 0xca, 0x56, 0x8f, \
- 0xee, 0xff, 0x62, 0x95, 0x7c, 0xd1, 0xe2, 0x61, 0xe4, 0xaa, 0xb6, 0x72, \
- 0x71, 0x72, 0x5d, 0x24, 0x0c, 0x7e, 0x7d, 0x2a, 0x20, 0xa5, 0xc2, 0x01, \
- 0x69, 0x9b, 0xe8, 0x3d, 0x6c, 0x6a, 0x57, 0xfd, 0xfc, 0x09, 0xac, 0x9b, \
- 0x6b, 0x59, 0x9e, 0x2a, 0x14, 0xa5, 0x0e, 0x42, 0x1d, 0x24, 0x6d, 0x1d, \
- 0x1d, 0xf8, 0x05, 0xdb, 0x0b, 0x25, 0x53, 0x4e, 0x50, 0x0f, 0xed, 0x76, \
- 0xfa, 0x89, 0x97, 0x5a, 0x42, 0x70, 0xe2, 0x74, 0xa9, 0xfa, 0x72, 0xb5, \
- 0x28, 0xe4, 0x7d, 0x99, 0x9a, 0xbd, 0xec, 0xa5, 0xe0, 0x8e, 0x51, 0xd4, \
- 0x47, 0xae, 0x40, 0x19, 0xf6, 0x99, 0x08, 0x8d, 0x48, 0x5b, 0xb5, 0x2d, \
- 0x5e, 0xec, 0x7a, 0x8c, 0x72, 0x5c, 0xd3, 0x4f, 0xf9, 0x55, 0xc1, 0x64, \
- 0x37, 0x87, 0x7a, 0x13, 0x1f, 0x06, 0x84, 0x38, 0xb5, 0x69, 0x9c, 0x22, \
- 0x85, 0x00, 0x04, 0x63, 0xe2, 0x4c, 0x63, 0x3b, 0x02, 0x3c, 0xde, 0x27, \
- 0x9b, 0xe0, 0x15, 0xdb, 0x2f, 0x8b, 0x16, 0xde, 0x07, 0xfa, 0x82, 0xee, \
- 0x9a, 0xdc, 0xbf, 0x86, 0x8b, 0x89, 0x8e, 0x25, 0xee, 0xef, 0x5d, 0x60, \
- 0xd0, 0x3e, 0x1d, 0xa8, 0x74, 0xac, 0xa6, 0xf2, 0x08, 0x9b, 0x1e, 0x7c, \
- 0x72, 0xd7, 0xb5, 0x32, 0xd3, 0xa2, 0x7e, 0x38, 0x93, 0x6d, 0x53, 0xc0, \
- 0x08, 0x0f, 0x99, 0x08, 0xb6, 0x72, 0x7b, 0x13, 0xfe, 0x96, 0x1e, 0xc8, \
- 0xb0, 0x80, 0x04, 0xf0, 0x77, 0xb9, 0xcc, 0xe9, 0x5b, 0x5e, 0xee, 0x9b, \
- 0x44, 0xd3, 0x51, 0xe7, 0x9e, 0xb2, 0x22, 0xab, 0xa1, 0xbc, 0x18, 0x89, \
- 0x5d, 0x36, 0xcf, 0x48, 0x43, 0xff, 0xcd, 0xfc, 0x73, 0x5e, 0x1b, 0x66, \
- 0xf3, 0xe7, 0x2d, 0xb5, 0xaa, 0xf8, 0xb5, 0xec, 0xf5, 0x6d, 0xbf, 0x0d, \
- 0x61, 0x6c, 0xf5, 0x3d, 0x19, 0x2a, 0x60, 0xe6, 0x1a, 0xd3, 0xc5, 0x1a, \
- 0x59, 0x52, 0x13, 0x10, 0x0f, 0xd0, 0x08, 0x35, 0x43, 0x4a, 0x28, 0xaa, \
- 0xb3, 0xeb, 0x59, 0x49, 0xd3, 0x40, 0x5d, 0xe5, 0xdb, 0x1a, 0x58, 0x6b, \
- 0xd6, 0xe9, 0x37, 0x44, 0x49, 0x13, 0xe9, 0xf1, 0xd4, 0xc0, 0x02, 0x47, \
- 0xac, 0xd4, 0x9a, 0x2e, 0xd9, 0x95, 0x36, 0x36, 0xe5, 0xd7, 0x44, 0x17, \
- 0xb4, 0xc7, 0x14, 0x4c, 0x6c, 0x22, 0xfd, 0x8f, 0x7e, 0x25, 0xcb, 0x6c, \
- 0xf6, 0xc8, 0x51, 0x0d, 0xe6, 0x91, 0x5b, 0x74, 0xc9, 0x5a, 0x28, 0xc1, \
- 0x97, 0x15, 0x22, 0x08, 0x09, 0x6d, 0x02, 0x49, 0xb8, 0x61, 0x50, 0xe8, \
- 0x07, 0x97, 0x8c, 0xa9, 0x85, 0xc1, 0x10, 0xd0, 0x7b, 0x7d, 0x0a, 0x24, \
- 0x43, 0x40, 0x39, 0xf6, 0xef, 0x12, 0xa6, 0x9d, 0x3e, 0x07, 0x3a, 0xf6, \
- 0xae, 0x44, 0xe7, 0xc4, 0x60, 0x6a, 0x35, 0x4a, 0x3e, 0x95, 0x3b, 0xdc, \
- 0xff, 0x10, 0xc8, 0xdc, 0x68, 0xb8, 0x07, 0xf4, 0x1a, 0xc5, 0x63, 0xff, \
- 0x0d, 0x71, 0x41, 0xc3, 0x28, 0xb3, 0x41, 0x52, 0xa2, 0x5a, 0x16, 0xe9, \
- 0xcb, 0x82, 0x28, 0xf7, 0x70, 0x73, 0x56, 0xd2, 0xd7, 0xf3, 0xca, 0xa8, \
- 0xd7, 0x78, 0xa8, 0x5e, 0x3b, 0x66, 0x24, 0x2c, 0x12, 0x42, 0x81, 0xc0, \
- 0xf3, 0x20, 0x1a, 0xd2, 0x85, 0x96, 0xb8, 0x68, 0xdb, 0x13, 0x81, 0x49, \
- 0xeb, 0x98, 0xb8, 0x21, 0xdc, 0xaa, 0xf8, 0x6b, 0x5e, 0x11, 0xc2, 0xac, \
- 0x11, 0x61, 0x97, 0x5b, 0xf0, 0xb2, 0xec, 0xef, 0xc1, 0x11, 0xb7, 0xb7, \
- 0x40, 0x1c, 0xe2, 0x61, 0x91, 0x15, 0x26, 0x61, 0x80, 0x44, 0xd1, 0x26, \
- 0xee, 0xee, 0x88, 0x5e, 0xfe, 0x51, 0xbe, 0x0e, 0x32, 0xe9, 0x3a, 0xaa, \
- 0xff, 0xe3, 0x48, 0x99, 0xdf, 0x5b, 0x10, 0xdf, 0x7c, 0x5a, 0x9c, 0x54, \
- 0xc5, 0xb4, 0x70, 0x46, 0x71, 0x64, 0x0a, 0x92, 0xe8, 0x63, 0x1f, 0x0d, \
- 0x40, 0x1f, 0x44, 0xc2, 0x23, 0x8b, 0x5f, 0x9a, 0x37, 0x49, 0x9b, 0x3d, \
- 0x83, 0xc1, 0xc6, 0x00, 0x96, 0xf2, 0xb4, 0x8c, 0x30, 0x81, 0xdd, 0x97, \
- 0x69, 0xdb, 0x32, 0x5c, 0x1c, 0xd1, 0xff, 0xe8, 0x4b, 0xfd, 0x8a, 0x80, \
- 0xdd, 0xe3, 0xcd, 0x65, 0x0c, 0x49, 0xe1, 0x4a, 0xf3, 0xab, 0x6c, 0x31, \
- 0x7e, 0xe7, 0x4b, 0xd3, 0x9e, 0x97, 0x6f, 0xf5, 0xb7, 0xad, 0x49, 0x0e, \
- 0x80, 0xf3, 0xef, 0xf9, 0xed, 0xf3, 0xb3, 0x85, 0x50, 0x70, 0xa5, 0xa0, \
- 0x6f, 0xbe, 0x9c, 0xbc, 0xa5, 0x4f, 0x52, 0x1e, 0x3d, 0x74, 0xcf, 0x13, \
- 0xa4, 0xd1, 0x16, 0xe2, 0x3e, 0x53, 0x1a, 0x7c, 0x70, 0x23, 0x2c, 0x04, \
- 0x4b, 0x7e, 0x7d, 0x02, 0x46, 0x7a, 0xfe, 0x2a, 0x40, 0xde, 0xf1, 0x42, \
- 0x98, 0x68, 0x8e, 0xce, 0xd5, 0xd3, 0xd8, 0x7a, 0x10, 0x2d, 0x31, 0xd7, \
- 0xcd, 0x54, 0x09, 0x91, 0x8c, 0xed, 0x4b, 0xab, 0x19, 0x05, 0x05, 0xdf, \
- 0x48, 0xf4, 0x51, 0xde, 0xea, 0x1c, 0x29, 0x16, 0x82, 0x46, 0xd6, 0x21, \
- 0x52, 0x9f, 0x03, 0x46, 0xea, 0xab, 0x0e, 0x23, 0x02, 0xf3, 0xce, 0x20, \
- 0x6d, 0xd8, 0x48, 0x37, 0x70, 0x4b, 0x8b, 0xde, 0xdb, 0xad, 0xea, 0x5b, \
- 0x58, 0x22, 0xcd, 0xec, 0xbf, 0xdb, 0x18, 0x0c, 0xde, 0x14, 0xe6, 0x2e, \
- 0xe2, 0x6a, 0x92, 0x9f, 0x0a, 0x37, 0xa9, 0x9b, 0xac, 0xfe, 0x23, 0x73, \
- 0x76, 0xa3, 0xe6, 0xc2, 0x89, 0xb0, 0x6b, 0x8e, 0x93, 0xed, 0x9d, 0x14, \
- 0x35, 0xe3, 0xee, 0x63, 0x99, 0xab, 0x1a, 0x06, 0xd4, 0xf7, 0x00, 0x97, \
- 0xf8, 0x0e, 0x26, 0xfe, 0x6f, 0x60, 0xb2, 0x7a, 0x68, 0x10, 0x4f, 0x63, \
- 0x33, 0xb8, 0xdb, 0x1b, 0xc7, 0x8e, 0x12, 0xd5, 0x46, 0x47, 0xb2, 0x3f, \
- 0xeb, 0x0f, 0x11, 0xae, 0x07, 0x0f, 0x3a, 0x6b, 0xe9, 0xd9, 0xf4, 0xd8, \
- 0x9a, 0x6b, 0x5e, 0xf8, 0x59, 0x5d, 0x01, 0x0d, 0x41, 0x0e, 0x72, 0x13, \
- 0x8c, 0xfc, 0xbd, 0x5e, 0x41, 0xcc, 0xa1, 0xdf, 0x33, 0xdd, 0xad, 0x65, \
- 0x7b, 0x69, 0x9c, 0xf4, 0xd3, 0xdc, 0x60, 0x28, 0x88, 0xe5, 0xaa, 0xa0, \
- 0xa7, 0xa2, 0x32, 0x5b, 0xa4, 0xa3, 0x6d, 0x7d, 0xe4, 0x9c, 0x59, 0x1d, \
- 0x8e, 0x35, 0x5f, 0xd1, 0xde, 0x64, 0x4d, 0x77, 0x2b, 0xf2, 0xa0, 0x60, \
- 0x09, 0x37, 0x43, 0x38, 0x8d, 0xbe, 0x5d, 0x30, 0xa2, 0xd9, 0x73, 0x04, \
- 0xab, 0xc1, 0x7c, 0x54, 0x7b, 0xd6, 0x52, 0x76, 0x29, 0x1d, 0x6a, 0xa7, \
- 0xb0, 0x72, 0x37, 0x03, 0x73, 0x32, 0x39, 0xfa, 0xbe, 0xf3, 0x9c, 0x2d, \
- 0xe4, 0x70, 0x71, 0xd5, 0x00, 0x74, 0xe6, 0x8f, 0xbe, 0x71, 0xc8, 0x8f, \
- 0x75, 0xd4, 0x51, 0x0b, 0xb5, 0xf6, 0xbc, 0x24, 0x4b, 0x3e, 0x7b, 0x21, \
- 0x9e, 0xb8, 0x9f, 0xe5, 0xf1, 0x48, 0x45, 0x9a, 0x2d, 0x69, 0x3c, 0xd3, \
- 0xfa, 0xc3, 0x2a, 0xa0, 0x69, 0xcb, 0xdd, 0x4e, 0x27, 0xc9, 0x77, 0x80, \
- 0x96, 0xf6, 0x80, 0x5b, 0xf6, 0xdf, 0x9a, 0xec, 0x96, 0x71, 0xf0, 0xa5, \
- 0x8b, 0x28, 0x70, 0x4f, 0x74, 0x77, 0x5e, 0x81, 0xac, 0x46, 0x82, 0x6c, \
- 0x1c, 0x47, 0x09, 0xb0, 0xe0, 0x98, 0x9d, 0x6e, 0x8e, 0x73, 0xbd, 0x17, \
- 0x95, 0xce, 0x85, 0xd8, 0x5c, 0x14, 0xad, 0x29, 0x97, 0xcd, 0x28, 0x10, \
- 0x27, 0x2a, 0x56, 0x82, 0xe7, 0xed, 0x9a, 0xa7, 0xa0, 0x92, 0x70, 0x8c, \
- 0x0f, 0x4b, 0xc6, 0x7f, 0x68, 0xd3, 0x17, 0xd4, 0x06, 0xa9, 0x6d, 0xdd, \
- 0x28, 0x42, 0xea, 0x22, 0xcb, 0xf3, 0x41, 0x0c, 0xd7, 0xa7, 0x70, 0x05, \
- 0xb6, 0x11, 0x15, 0xb7, 0x94, 0x89, 0x4c, 0xf9, 0xd1, 0x0e, 0xbb, 0x4f, \
- 0x55, 0x52, 0xbe, 0xc8, 0xc2, 0x1d, 0x90, 0xba, 0x97, 0xd6, 0x13, 0x9d, \
- 0x52, 0x61, 0xd7, 0xf5, 0x1f, 0x40, 0x09, 0xc3, 0x61, 0x8f, 0x9f, 0xeb, \
- 0x22, 0xcc, 0x92, 0x9a, 0xde, 0x20, 0x4e, 0xca, 0x7c, 0x0f, 0x81, 0x34, \
- 0x09, 0xce, 0xb8, 0x8a, 0x13, 0x51, 0x2f, 0x85, 0xe0, 0x39, 0x48, 0x31, \
- 0x4b, 0xa9, 0xc4, 0x48, 0x8a, 0xaf, 0xda, 0x88, 0xce, 0x44, 0x7a, 0x0e, \
- 0x05, 0x2a, 0x6a, 0x60, 0x5e, 0x32, 0xd0, 0x4a, 0x20, 0xe2, 0xe5, 0x2c, \
- 0x41, 0xf3, 0x71, 0x24, 0x79, 0x63, 0xf2, 0x4f, 0xc2, 0x8c, 0x5c, 0xc1, \
- 0xdd, 0xd8, 0xfe, 0x16, 0x81, 0xa2, 0xa2, 0x93, 0xda, 0xf2, 0x68, 0x8e, \
- 0x9b, 0x02, 0x63, 0x03, 0xa7, 0x6c, 0xc6, 0x0f, 0x40, 0x29, 0x0c, 0x4d, \
- 0x82, 0x3e, 0xfb, 0x85, 0xf3, 0x6c, 0xb5, 0xe0, 0x92, 0x36, 0x9c, 0xc2, \
- 0x05, 0x15, 0xa8, 0x07, 0x7e, 0x77, 0x02, 0xed, 0x54, 0xca, 0x15, 0x65, \
- 0xd3, 0x7b, 0x83, 0x18, 0x4e, 0xe4, 0x6c, 0x4a, 0x6a, 0xdf, 0x28, 0x40, \
- 0xf5, 0xa5, 0xfb, 0x00, 0x2d, 0xb7, 0x06, 0x90, 0xbb, 0xf9, 0x38, 0x88, \
- 0xe6, 0x85, 0xfd, 0xd1, 0xf9, 0xea, 0x21, 0x1b, 0x42, 0x69, 0x3e, 0x0b, \
- 0xd5, 0xba, 0x52, 0x35, 0xa6, 0xea, 0x1b, 0x71, 0x47, 0x74, 0xd1, 0x32, \
- 0x79, 0xd7, 0xdb, 0x34, 0x40, 0xf7, 0xfb, 0xce, 0xd5, 0x3f, 0x20, 0x3c, \
- 0xe6, 0x50, 0x05, 0x55, 0xbc, 0xb9, 0x25, 0x1e, 0x6f, 0x36, 0xd3, 0x35, \
- 0x23, 0x26, 0x50, 0x1c}
#endif // TREZOR_MODEL_T3W1
diff --git a/core/embed/projects/prodtest/cmd/prodtest_secrets.c b/core/embed/projects/prodtest/cmd/prodtest_secrets.c
index 4f4f4b51..ac7007e2 100644
--- a/core/embed/projects/prodtest/cmd/prodtest_secrets.c
+++ b/core/embed/projects/prodtest/cmd/prodtest_secrets.c
@@ -27,6 +27,10 @@
#include <sec/rng_strong.h>
#include <sec/secret.h>
#include <sec/secret_keys.h>
+#ifdef USE_MCU_ATTESTATION
+#include <mldsa_native.h>
+#include <sec/mcu_attestation.h>
+#endif
#include "common.h"
#include "memzero.h"
@@ -48,8 +52,6 @@
#include <trezor_model.h>
#endif
-#include <mldsa_native.h>
-
secbool set_random_secret(uint8_t slot, size_t length) {
uint8_t secret[length];
uint8_t secret_read[length];
@@ -169,7 +171,7 @@ static void prodtest_secrets_init(cli_t* cli) {
cli_ok(cli, "");
}
-#ifdef SECRET_MASTER_KEY_SLOT_SIZE
+#ifdef USE_MCU_ATTESTATION
static void prodtest_secrets_get_mcu_device_key(cli_t* cli) {
if (cli_arg_count(cli) > 0) {
cli_error_arg_count(cli);
@@ -182,8 +184,8 @@ static void prodtest_secrets_get_mcu_device_key(cli_t* cli) {
goto cleanup;
}
- uint8_t mcu_public[MLDSA_PUBLICKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)] = {0};
- uint8_t mcu_private[MLDSA_SECRETKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)] = {0};
+ uint8_t mcu_public[MCU_ATTESTATION_PUBKEY_SIZE] = {0};
+ uint8_t mcu_private[MCU_ATTESTATION_PRIVKEY_SIZE] = {0};
if (mldsa_keypair_internal(mcu_public, mcu_private, seed) != 0) {
cli_error(cli, CLI_ERROR, "`mldsa_keypair_internal()` failed.");
goto cleanup;
@@ -215,8 +217,8 @@ static bool check_device_cert_chain(cli_t* cli, const uint8_t* chain,
goto cleanup;
}
- uint8_t mcu_public[MLDSA_PUBLICKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)] = {0};
- uint8_t mcu_private[MLDSA_SECRETKEYBYTES(MLD_CONFIG_API_PARAMETER_SET)] = {0};
+ uint8_t mcu_public[MCU_ATTESTATION_PUBKEY_SIZE] = {0};
+ uint8_t mcu_private[MCU_ATTESTATION_PRIVKEY_SIZE] = {0};
if (mldsa_keypair_internal(mcu_public, mcu_private, seed) != 0) {
cli_error(cli, CLI_ERROR, "`mldsa_keypair_internal()` failed.");
goto cleanup;
@@ -228,7 +230,7 @@ static bool check_device_cert_chain(cli_t* cli, const uint8_t* chain,
// The challenge is intentionally constant zero.
const uint8_t ENCODED_EMPTY_CONTEXT_STRING[] = {0, 0};
uint8_t challenge[CHALLENGE_SIZE] = {0};
- uint8_t signature[MLDSA_BYTES(MLD_CONFIG_API_PARAMETER_SET)] = {0};
+ uint8_t signature[MCU_ATTESTATION_SIG_SIZE] = {0};
size_t siglen = 0;
if (mldsa_signature_internal(signature, &siglen, challenge, sizeof(challenge),
ENCODED_EMPTY_CONTEXT_STRING,
@@ -251,7 +253,7 @@ cleanup:
memzero(rnd, sizeof(rnd));
return ret;
}
-#endif
+#endif // TREZOR_EMULATOR
static void prodtest_secrets_certdev_write(cli_t* cli) {
if (cli_arg_count(cli) != 1) {
@@ -286,7 +288,7 @@ static void prodtest_secrets_certdev_write(cli_t* cli) {
}
cli_ok(cli, "");
-#endif
+#endif // TREZOR_EMULATOR
}
static void prodtest_secrets_certdev_read(cli_t* cli) {
@@ -308,9 +310,9 @@ static void prodtest_secrets_certdev_read(cli_t* cli) {
}
cli_ok_hexdata(cli, certificate, certificate_length);
-#endif
+#endif // TREZOR_EMULATOR
}
-#endif
+#endif // USE_MCU_ATTESTATION
#ifdef SECRET_LOCK_SLOT_OFFSET
static void prodtest_secrets_lock(cli_t* cli) {
@@ -357,7 +359,7 @@ PRODTEST_CLI_CMD(
.args = ""
);
-#ifdef SECRET_MASTER_KEY_SLOT_SIZE
+#ifdef USE_MCU_ATTESTATION
PRODTEST_CLI_CMD(
.name = "secrets-get-mcu-device-key",
.func = prodtest_secrets_get_mcu_device_key,
@@ -378,7 +380,7 @@ PRODTEST_CLI_CMD(
.info = "Read the device's X.509 certificate from flash",
.args = ""
);
-#endif
+#endif // USE_MCU_ATTESTATION
#ifdef SECRET_LOCK_SLOT_OFFSET
PRODTEST_CLI_CMD(
diff --git a/core/tools/generate_hsm_keys.py b/core/tools/generate_hsm_keys.py
new file mode 100755
index 00000000..0893c278
--- /dev/null
+++ b/core/tools/generate_hsm_keys.py
@@ -0,0 +1,114 @@
+#!/usr/bin/env python3
+
+"""Generate HSM key files from JSON source.
+
+Reads common/hsm_keys.json and generates:
+ - core/embed/projects/prodtest/cmd/hsm_keys.h
+ - python/src/trezorlib/_root_keys.py
+"""
+
+import json
+import subprocess
+from pathlib import Path
+
+import click
+
+ROOT = Path(__file__).resolve().parent.parent.parent
+JSON_SOURCE = ROOT / "common" / "hsm_keys.json"
+HSM_KEYS_DEST = ROOT / "core" / "embed" / "projects" / "prodtest" / "cmd" / "hsm_keys.h"
+ROOT_KEYS_DEST = ROOT / "python" / "src" / "trezorlib" / "_root_keys.py"
+
+
+def c_bytes(hex_str: str) -> str:
+ return (
+ "{"
+ + ", ".join(f"0x{hex_str[i:i + 2]}" for i in range(0, len(hex_str), 2))
+ + "}"
+ )
+
+
+def generate_hsm_keys_h(data: dict) -> str:
+ out = (
+ "#pragma once\n\n"
+ "// Auto-generated by core/tools/generate_hsm_keys.py\n"
+ "// Source: common/hsm_keys.json\n"
+ )
+
+ for name, hex_val in data["shared"].items():
+ out += f"\n#define {name} {c_bytes(hex_val)}\n"
+
+ for model, keys in data["models"].items():
+ out += f"\n#ifdef TREZOR_MODEL_{model}\n"
+ for name, hex_val in keys.items():
+ out += f"\n#define {name} {c_bytes(hex_val)}\n"
+ out += f"\n#endif // TREZOR_MODEL_{model}\n"
+
+ result = subprocess.run(
+ ["clang-format"], input=out, capture_output=True, text=True, check=True
+ )
+ return result.stdout
+
+
+def generate_root_keys_py(data: dict) -> str:
+ out = """\
+# This file is part of the Trezor project.
+#
+# Copyright (C) SatoshiLabs and contributors
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the License along with this library.
+# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.
+
+# Auto-generated by core/tools/generate_hsm_keys.py
+# Source: common/hsm_keys.json
+
+# fmt: off
+"""
+
+ for model, keys in data["models"].items():
+ for name, hex_val in keys.items():
+ if name.startswith("HSM_"):
+ continue
+ out += f'\n{model}_{name}_HEX = "{hex_val}"\n'
+
+ return out
+
+
+def check_file(dest: Path, expected: str) -> None:
+ if not dest.exists():
+ raise click.ClickException(f"{dest} is missing")
+ if dest.read_text() != expected:
+ raise click.ClickException(f"{dest} is out of date")
+
+
+@click.command()
+@click.option("--check", is_flag=True)
+def generate(check: bool) -> None:
+ """Generate HSM key files from the JSON source."""
+ with open(JSON_SOURCE) as f:
+ data = json.load(f)
+
+ hsm = generate_hsm_keys_h(data)
+ py = generate_root_keys_py(data)
+
+ if check:
+ check_file(HSM_KEYS_DEST, hsm)
+ check_file(ROOT_KEYS_DEST, py)
+ print("All files are up to date.")
+ else:
+ HSM_KEYS_DEST.write_text(hsm)
+ ROOT_KEYS_DEST.write_text(py)
+ print(f"Generated {HSM_KEYS_DEST}")
+ print(f"Generated {ROOT_KEYS_DEST}")
+
+
+if __name__ == "__main__":
+ generate()
diff --git a/python/src/trezorlib/_root_keys.py b/python/src/trezorlib/_root_keys.py
new file mode 100644
index 00000000..3f031ca0
--- /dev/null
+++ b/python/src/trezorlib/_root_keys.py
@@ -0,0 +1,52 @@
+# This file is part of the Trezor project.
+#
+# Copyright (C) SatoshiLabs and contributors
+#
+# This library is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the License along with this library.
+# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.
+
+# Auto-generated by core/tools/generate_hsm_keys.py
+# Source: common/hsm_keys.json
+
+# fmt: off
+
+T2B1_DEV_AUTH_ROOT_PROD_P256_HEX = "04ca97480ac0d7b1e6efafe518cd433cec2bf8ab9822d76eafd34363b55d63e60380bff20acc75cde03cffcb50ab6f8ce70c878e37ebc58ff7cca0a83b16b15fa5"
+
+T2B1_DEV_AUTH_ROOT_DEBUG_P256_HEX = "047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a"
+
+T3B1_DEV_AUTH_ROOT_PROD_P256_HEX = "045b5c3fdd01f3602092834209b86df0ca86a9faf25cac35c73bf6237d66eb21eafcec3706f1ccd5eb4cc7f2fa1751213eccb1c78389afba89a5788ff31ee46a5d"
+
+T3B1_DEV_AUTH_ROOT_DEBUG_P256_HEX = "047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a"
+
+T3T1_DEV_AUTH_ROOT_PROD_P256_HEX = "041854b27fb1d9f65abb66828e78c9dc0ca301e66081ab0c6a4d104f9df1cd0ad5a7c75f77a8c092f55cf825d2abaf734f934c9394d5e75f75a5a06a5ee9be93ae"
+
+T3T1_DEV_AUTH_ROOT_DEBUG_P256_HEX = "04e48b69cd7962068d3cca3bcc6b1747ef496c1e28b5529e34ad7295215ea161dbe8fb08ae0479568f9d2cb07630cb3e52f4af0692102da5873559e45e9fa72959"
+
+T3W1_DEV_AUTH_ROOT_PROD_P256_HEX = "040dde0d3e0d4da593fac6fd02a461d0e7eef238aca55c7c50b4e9ec37f3873303b6429ef1c9b78b4411a7dcbbc5dde5225979c1c2da3b073e82b1ed3f5f9825bb"
+
+T3W1_DEV_AUTH_ROOT_PROD_ED25519_HEX = "59237acd17134061d655b3f8d624573ca06ce8d862f38ba4e05140ce1d3d609d"
+
+T3W1_DEV_AUTH_ROOT_PROD_MLDSA44_HEX = "ea67d6000e79d16bc9119cea88b3415369d612f02a6bca6e18e0dbe5e2d37da716b993a05258a642c656a4e1c80f2db1f2818e5ebcbe5715448389079526895f8e620001b1c1dc857aa6165ec1d0b731127c424cbf0dec1ae33bbce500b9e7974d2a83626fe0be91555d79e1f91fbcb5df821738385cba29dc1a71c3ef2d1d3b3165ff66b4638b7121db9ecdfeb39d20163732d1685f7604956de9f549c5a7fcbf2a27b913a94107904cdbfe486df4a62dc27f0f7ba14c1103f9de86480c12bcaf1bab70584277a9fdac50d03d50e9e7bb6dd3b8b61cafe07c5513c4fbb35d14766fef0582ca1d78ebc4fb246ee3ac231eef770e74ad4207dddc8f3666700c84aa1446cb5ceef0b6f113041a9eeb8708564a4c43fdb46203dd1a2b2c48a0e485bc10a72a8a8e5b006d3d398941b33365b04b54d14d230950c7df048afd2c16ff1515387a97b712f68f65f08fd722d4b75c97007c4f7dfff5e5f22908b56bf40acd5263cc419007a355bcd1f4a3dd201286e58be1165e0eedf6c236c7aaa7cff3a8fbd6aee5d3ea5368bbf0aad8f41147ce874e2c97ed3fdfe859def143f63c1e7a093ce18615016a857e875a4099d7a56b036c7bdba205ff21841c4693ecfe08ae8faf10c73fe3a8e202a585c39ae8b084f2879a2c20faf8abe5163eb8acfffde4b9a73a9706bb5d3ae91235f673df8f20f5dd72c06df8a7401924c614eb12d915deffacba689738612780877f39a891b3cc0673c728653f72874386d6a097516d56c196c9f1515a62b5ddbab2c795d48be8b6a304533034f323c6970d43a08957d8b0db7cf80e6c02589069f9bf622e60f6953bfd10d68cac3d421bf9145169fa0b10d2384212556e042d95686c44bacd01b8b2e698163ca6d2b965557e8e16f0d3672bb32c0dc3bbced78f75918df59742fcb9834925b50c568ec305db53e3d7915851620f0763820ad511896041d7a836b764b51273f6ab1e4021e67bcc5095c02f55c132b674d47b36271830508c6d08e7578181fcf95c9027c43bebc56b0d083d6bbde10e70113ae41102181f147bd6aad58898d296b14ec4f7e049ff47831949b8f5aa29a2c74e7ea26a4270e84d4ace36407b255767f9eb9676d15559d1c403b1a5949a9ca2a74e6e0f2719b11306911799be9dea597ec8b375bac646f8a9a03e6f2271d9fb5b695c51d7fe2125a08e243d63e5d426b6dbbc149a87e65f8b1888465f99ce519ce4dd8d51432e45e4bd01a41893189a8656bc9c9226fc4bbc38441569d3be87180c833d63d53adc15d953ec6fcd1643aa00f20aea7cc169efeeb962ebb724ba0008861a1fda988c93d3ea0e3224d4c72c0c2fecf4f954f9fcf47b5f39b59a9c4c12423382ae2ef547310490bb3d57661a51b9ee356d0720f6e376e2374c38e738e158dbec8d7cc5a23a6269a3ca441a4ec406ddeef5a0d6007d0b3590ba19eeb2a6da67fe21b68625d1d422739c928c7b9a49163a6ffe60cfce4cfa918b690fe5b300022e88ff164020ce9815d18c97a63ad3383e1101eb523c5e1d20482dd6d0411b13b75c89e864fa6bede2674bfa5c3283a1487a3093ff05dba3f86420a7a9ac62c59971fa9d10c9ebc68f36d65e798f95c3a2cb11993ae1454855cda4d8290f2f0aa8f48cbddad92211a1e1a38588822159c257c077a7bd1c1afeb3644e6001a1f0dc0833993c068879f484d6a4da8c1fb85959d282be52583225b60c31cf1ebe0e74bbd3fc74caf039ad3c03f59b5da694fa810e199ad7587b593548c828a18c6a9b657df6cb39e839f36beffc07c6e85c8bbd7e98646af879bead4d3e1b79c401eb6449a4200f1cbdad39329fc43c5553a286a0"
+
+T3W1_DEV_AUTH_ROOT_PROD_BACKUP_P256_HEX = "04c6a673af4ec44b10441b1d78676e15173ad0e36df9f7f2fa1cd819955f20fe32917b60da5fed3b3aa54a9ab8b3ed27d198b3768cad26eef5935cd87af0af065e"
+
+T3W1_DEV_AUTH_ROOT_PROD_BACKUP_ED25519_HEX = "5612606584ee7e0bc313b13f7ac94156bb4cb75bd77585ddbe579301306e85f1"
+
+T3W1_DEV_AUTH_ROOT_PROD_BACKUP_MLDSA44_HEX = "fedf8b0c16164b9cec427882aa03d3bd6a1588cfbaebaf93cf2fc52f275417777433a938dcd6516345148f728c935a40ef3b6c41fd3ed831fea13774bd39887da8b06e2e671cc32a1c72e44a13d1cd985dc2ddcb63e457bbd29d38186ddb776b8e73b645c8bf616309f890d175538a9d10c82e595dea03f70564ff69b53497ecefd51fd8320041d9b1092386033ed37a93dd9b4b9da1297f808eac21020b8dc4747e01854ebdc407a04fc18b2758720125acb41f0c60e16cd53707a65392feed06c9fcc28a3e738dbc91614e89e5d535274c6b226d83f335a0dd088755571cf62496ca4642ec8e65eba8be2b8cec46416c6a3ad4be10569ac532e02d6e06b6ce0c0d4b7a99a11c910f9f0631b0cd72e20637237eeff723e722f7aa626732434c47843a099739e96e31267d8d6905d8b2b712a5a69d9343a3c1e07afb414b73950f4b1df196243005fb61c6200ef346826d6c0f4cc8ede052ed48235997bb366dade4483bfc11fe65fd0c5539e89d8bd271e54e30da6e5192a0f343dea3806aa798d12d62251a063d071ba67c35d3a26e582c2d361cf2d0fc36fb1b5a46e469669338b1c1744bdfe365700a6a1c641ab2b7906e2b7c0c0a9af8862ab5751a678e3e0156847ff6093ca7ebd48dd8b1d6f7736c2039e705c1e20f42ed5cac6db3dc7a7e2facbb75411e7fb8a156df52a2926afa9070937cde4dd4bd456294ba59bdcf123f11dcda267d475721abfecab1b31848a27236aa751e5b55015f033d87fb9cf5c086e09f1667cf7ec2e72436c907c5763690d698fffa997709bb89526cae772bb962c06ed1b89d418835672b85e1a1b2e3c55f4e607ecad09bdb3a18224b9805659aa2ecf0b62dbf6265e27d4101450edb590d52d525b62b1114dad2eb06c951a2c77c7ecfbf5f1f6fe285f39727958ce0b5cfe8fd465420c270309999e6694ee31fcb7d6480a75d0d72558cd6a050b8d11a9a6d7736700027fbe14b48949b7e1af2ca148ad4e4b4b93e9575a4119afd1b57c250606d5a4e258c2393c104d651995b1e75887f492ff05e92e1630332f176d86a0453b412d0869d98d6ab27377a74766e3cadde29c1853e6398a9edfa48c0d14e7c148b048f1bf25d11979e94878cb86eaf1e55638c1b39e0ac5254a009bf957f4b624796753c3451246e5a7b9022926aa77b7a1b4ae7d25f776d4395ba98a37d9e21b221da29564e50a669056650a40489386e8909c6ca21d369c3495c44b2f71373a392c9fa89c9085f467d24d6219fcdd2b56126792eb6a14269c4264a56926b1a7d9a1c03d9649d157f938abfdc2a56c20795065774838030da41a4c6178919cc1c6c88de1458d9baa1e51a4a1994e6d5cc94b049b15c235c5cf46d2cf23f09d565c5a5497ef0b3a5fbc8d1be8ed78f3794c49d4936139b0419faaffc52b55cb91f6e1bafacd55523c0b7eec56d98e4228cd0f9d00bc9866dac71e43db2b2cf311999d7bc3a49219836f558cbb5d8faa79e83079c6ce92288aae852553b655ef6bc87fbb25ca3ab482aecaf0a86eecc92341906cc89d234087f5abd6d2100a60d361d516d460d436b46706ad44b8b4ef3fe54ea198ffc2cf8c8e144ec62c4ce86ed5d181283fc17c926668ca4e0b8683e0c7bc662a54ea7f4c830365ad1cdea58abee9a726168ce9870729972884ecfe5baf06f1ee664aa422e26f9f76e20908d72e78c1a2dcd94fe1c07573d7706d7bdc07d0b41498c0d52ec3a90d6e7c0fcef597a884fb2caba29c2279569a1e64dd6c7ed4b312d2197b6391407899b25d21cefd1408eca42204f76cb0436f44c0a9c2e1eca19df8d93255c0da6469dc47da883e186387f76011cc8"
+
+T3W1_DEV_AUTH_ROOT_DEBUG_P256_HEX = "04521192e173a9da4e3023f747d836563725372681eba3079c56ff11b2fc137ab189eb4155f371127651b5594f8c332fc1e9c0f3b80d4212822668b63189706578"
+
+T3W1_DEV_AUTH_ROOT_STAGING_P256_HEX = "0465e88f9b2cea67e8364f0cfcfacd500af24e9040b357beee629ccc4fce1704d1a7ef7284f387708f92ef14600e2caad6894016fee819d623b95d66210c3e7519"
+
+T3W1_DEV_AUTH_ROOT_STAGING_ED25519_HEX = "cd318dc8405ae4f4144e3284dcb7b0cb0f0c2195c2ca14a0f6fccd9104e32a4b"
+
+T3W1_DEV_AUTH_ROOT_STAGING_MLDSA44_HEX = "1f3e5edad45fc6980dbfd597ed17b77e4d4ad1b1ec4804e04dc061cc2cfe77bc96fbc93f698f1fe00c47177c8150276dab86cbf407add7527deb09b65a6623ef581422292d77744be64f4401ca65b9bd027e32a76f307413b086869eccbcfc5e8823be8e0b3897727bca568feeff62957cd1e261e4aab67271725d240c7e7d2a20a5c201699be83d6c6a57fdfc09ac9b6b599e2a14a50e421d246d1d1df805db0b25534e500fed76fa89975a4270e274a9fa72b528e47d999abdeca5e08e51d447ae4019f699088d485bb52d5eec7a8c725cd34ff955c16437877a131f068438b5699c2285000463e24c633b023cde279be015db2f8b16de07fa82ee9adcbf868b898e25eeef5d60d03e1da874aca6f2089b1e7c72d7b532d3a27e38936d53c0080f9908b6727b13fe961ec8b08004f077b9cce95b5eee9b44d351e79eb222aba1bc18895d36cf4843ffcdfc735e1b66f3e72db5aaf8b5ecf56dbf0d616cf53d192a60e61ad3c51a595213100fd00835434a28aab3eb5949d3405de5db1a586bd6e937444913e9f1d4c00247acd49a2ed9953636e5d74417b4c7144c6c22fd8f7e25cb6cf6c8510de6915b74c95a28c197152208096d0249b86150e807978ca985c110d07b7d0a24434039f6ef12a69d3e073af6ae44e7c4606a354a3e953bdcff10c8dc68b807f41ac563ff0d7141c328b34152a25a16e9cb8228f7707356d2d7f3caa8d778a85e3b66242c124281c0f3201ad28596b868db138149eb98b821dcaaf86b5e11c2ac1161975bf0b2ecefc111b7b7401ce261911526618044d126eeee885efe51be0e32e93aaaffe34899df5b10df7c5a9c54c5b4704671640a92e8631f0d401f44c2238b5f9a37499b3d83c1c60096f2b48c3081dd9769db325c1cd1ffe84bfd8a80dde3cd650c49e14af3ab6c317ee74bd39e976ff5b7ad490e80f3eff9edf3b3855070a5a06fbe9cbca54f521e3d74cf13a4d116e23e531a7c70232c044b7e7d02467afe2a40def14298688eced5d3d87a102d31d7cd5409918ced4bab190505df48f451deea1c29168246d621529f0346eaab0e2302f3ce206dd84837704b8bdedbadea5b5822cdecbfdb180cde14e62ee26a929f0a37a99bacfe237376a3e6c289b06b8e93ed9d1435e3ee6399ab1a06d4f70097f80e26fe6f60b27a68104f6333b8db1bc78e12d54647b23feb0f11ae070f3a6be9d9f4d89a6b5ef8595d010d410e72138cfcbd5e41cca1df33ddad657b699cf4d3dc602888e5aaa0a7a2325ba4a36d7de49c591d8e355fd1de644d772bf2a060093743388dbe5d30a2d97304abc17c547bd65276291d6aa7b0723703733239fabef39c2de47071d50074e68fbe71c88f75d4510bb5f6bc244b3e7b219eb89fe5f148459a2d693cd3fac32aa069cbdd4e27c9778096f6805bf6df9aec9671f0a58b28704f74775e81ac46826c1c4709b0e0989d6e8e73bd1795ce85d85c14ad2997cd2810272a5682e7ed9aa7a092708c0f4bc67f68d317d406a96ddd2842ea22cbf3410cd7a77005b61115b794894cf9d10ebb4f5552bec8c21d90ba97d6139d5261d7f51f4009c3618f9feb22cc929ade204eca7c0f813409ceb88a13512f85e03948314ba9c4488aafda88ce447a0e052a6a605e32d04a20e2e52c41f371247963f24fc28c5cc1ddd8fe1681a2a293daf2688e9b026303a76cc60f40290c4d823efb85f36cb5e092369cc20515a8077e7702ed54ca1565d37b83184ee46c4a6adf2840f5a5fb002db70690bbf93888e685fdd1f9ea211b42693e0bd5ba5235a6ea1b714774d13279d7db3440f7fbced53f203ce6500555bcb9251e6f36d3352326501c"
Why this scored 18/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.