Files
nostr_quantum_preparation/test/vectors/seed-to-pubkeys.v1.json
T

41 lines
13 KiB
JSON

{
"vectorType": "nostr-pq-link-seed-to-pubkeys",
"vectorVersion": 1,
"description": "Pins the BIP32 truncation rule and PQ keygen determinism: a fixed BIP39 mnemonic must produce the same five PQ public keys on any conforming implementation.",
"mnemonic": "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
"bip39SeedHex": "5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4",
"derivationBasePath": "m/44'/1237'/0'/0/",
"derivedPublicKeys": {
"secp256k1": {
"derivationPath": "m/44'/1237'/0'/0/0",
"publicKeyHex": "02e8bcf3823669444d0b49ad45d65088635d9fd8500a75b5f20b59abefa56a144f"
},
"ml-dsa-44": {
"derivationPath": "m/44'/1237'/0'/0/1",
"publicKeyHex": "95d5552cf564847ce3e99994365996241c0b5a01a0cbe9084cadc507b1bb6c6a3fb45c5ce3180488ac9fe2603d7119905c9592c2b3fa29a3435207175d9d29e9717f0ed45c2e56941ed7b71521e0ea4fc1d6c66551e1cf7a787c14855090e5704482c28af8959f3353715c22848d5597c96f400307a13d6b5285a3e01beeb227d8ce1b7a438bfc77f285bafe1b0d68cfa17cf29555e9be756dc3ceb74c935de2c106308ec9cbe9eecc482948004aec738db4a2fc584c0228ae1828bcf9683134249b1316781acf52301aa01f917614056e6386431b587ccc209f85e6613acc1bde4e1d65bdb194a8a5771262edf54ef10eda5d9dac06f1d6dbd3baef173261893331fe4416d6c25c8fbe09cf85e8f3868b4ad96ee2c6bc203d96f7f4cee974388de27bdcb76439193b72a7a4e7a655c00f474d11e64002c8a03d45df7152b575d513d256b4d34fdaa42775fdc57286bb45281bea21f008a38e693360605d238c3730b396f2ca3a1ff4b5c785b3729dafa3e394b2b068a90dead1fa7db4aecd8b075246654156243e89281af50f073718c5bb59a903d90f850da56687d66447561ed766957d0da0d326d110a0113d55df852e6b71a29f0852e7df2f3f3257071e39e9ff26d2b5ef5301c138496d79c6e9601f9497f760798075839ee2603d19d6dae6d672d72c2d44e85f3c6470463cdc6a7956c27918a2510fb4a0a4608a8be1a07e638cc2edfa373be6256a8aea28024b13e8c492c283fdd49a0e7c124ab123d5e1a504534d8d2ef9acf8f9b0947f6d3cf6a927d8767509e240c03004eb2cdbde2306ba8ab9c76f2a9538f2fba3271a363adb74298c0b923e0bd4eb8ede471c979627d628e7925f6519a86eac7907f7ba278f9ecbced2e1f7ae85516172fa91c9d89504b91e883c13487cf8e6e27a3786642503f6c9b4116b81bb306166b8db6216b9fa76e70a038c5e0bfbf92811918b380f563209f5b9845b5790972f8454fb8a7366f3e3f9a656a5ab88bc2ad300ed45e93a442185f7dbcca30bdfa1c2d06599dcee5604b89f2291aee1d8f2382623f8592031417125e29fb5175726c37b6626c0aee04bfd4fee1b8fd550def8fbe3de400c885f09bf9b476da6d0534bd0642fad0955989b662c5e680a54159ed152f1eae6a4db21896cc5c1fb7c5b68553882fa2496a92bd16d2d5f98b493c19c1bc425e02236b52ce26b6a2994a5bdf297f0366b3eef0879c14da236b16b9e7921d271b1c99c449793d19e4a6ca374d376fba30d61118c18f5b8dc6a56995861957ea3bb526b3b3513a321a43663e60ce4904a8248713070dd59fd81667d6282f7a7a5b04dd18c59c2ca2bc6c1fcbf65095b14b1a2e2009342957113ccef8a5969b7c5d88837feeb1cfd9d8f3f4c8c7b587f34e73d354762127f2ec554280427a22bd029e4aa6d9dc151d9032d0d71dfb31fec6ffe2760e39f79e0b0cd47663ded101a29c40ec94fa777565383f7a767e2c86a7f54e7d2ad1e0c370dc51567c15e87c4f8394b08387c12d05e308634779a84f18080b852ba8e0c264d9d6f4bdd1c9d08fb36b9875d8d1742210861258b2895b0f8c48054d17a8cf5b92785ad8aa3b196deac8a9b467e08635679ab61f542cf3bb925350a5ec28c96524e23e1c8d1f5064a19f36072025dae73a8f8d7cd6b7498fd1606fb7f65bdc73c440c3c020ad159268fd371adba445378414c730fef743f275e8de85c6f1b1d7131bcf0ddbf77e9bb663ee50c548eb3ac9553a9ad65521f933ad4e0a3d5cc0f0467cec16f59c61bd16ac4a90a1e0a8440de037d5a03b05685d1f64738e966dfaedc671a9b65119d0151bebdde1be4e9adb692664e"
},
"ml-dsa-65": {
"derivationPath": "m/44'/1237'/0'/0/2",
"publicKeyHex": "d6a42c3b541fff98d2b4c13c07482507a12dc8b6ab5f4dee1f05d5269f5aa3ee337b42fffb3fc849239855cfe52ce0ccb0af9cbfa6d163b0847651e64af7a2a57048b8c04472004b9d18d86032c9f39c9e02c06f7f3a87611be4767e3de5b76eeda1fc84fbd3ce7889cc14b67bcf4c22881d46cad0c56ec835e5709d2c8c8ad223bed2860ccc260ed053ca6e7555f98e2d23dd4d8afb88d0d74f5009ef5ee26725a11d2c8d14ee9fdca7d217b84eeacbecca30adba09e76aa8c318c0cb435228d7937945fb14d40626d869b7a5c30107276c42617664084937c70550d2e850bb635e2af9afc3ddbb5dab9e9a4e1a9a1c0928abb83da1e1952fbd385fc15fbf4377ad19b86019bbf097f74fa51c17273c2283630a066737367a0feb3aae3ac600b7235601aca60c70f292df65e935294beff9c22a504733d1f2c5886f6b68018a4b737def82a90a84d30c7312c5a56f0a0c56aa83cec0499747c05c7ffa373dbf08e738732f9b986a95d3808c74b8952d2d34ef29c003a3ea732bfb1f4cc2f8a7f34769777a213ca379d687ad8a17cb35c43f98f97face0b41b7f343c1d55d78872ef8ac0f0e5b568ebf19074b2b54c57ea115c1c60976ba78c9765e476dc94b8c9eb0941840bdb2625b76a13332fe330d43e2032e8b1936c993d0a679fc637d62a1249d23823bd6c80aba45b32ddbcd2cf070b34f7b1869ef9c880dc401fe630b340458fd6937a80f4a909011a0e6ef75101abff6aba7f86e9763964438dee62dead9a16379139045570310069478952501e308fe9f199489f7655d61cee04f739d63d0b9cec72deb491a43a53f267d249873e362c0b3c31ee802897c5b74ad9bba89680c5cff5de5511afa3a89f4fd74d2063da77521a7019916abdcda32737abc8cc42e390df81d00d8d0a7ba003af8f651acded0540422215186ae0d52feb0272dde0664683af6d7052cfa1c557f15e36fd771837c737e77b14299c94e7bdc9eda403a9bda4dfd0a98013bd404bbd2c044d9a612638c6a8f5e4095e733f8c3cefafccd9a8ab21d666a35879e72a6972b85f9f5dc9aba3bdc0a8bf858a14fb91867390250ec2cc803adb9f6816c1b08f87db9039f00ef10a3e29b96a661721efcbaf906539de0d342d1619b5ceeac18df0a732c9015e25d8cfa7567dba914c21947f05628d90154ee005072694d1d4337246bc5a43b0e3231be54edd47b3c7d5d8247c236fa9848c49c09bcc9a46812f5d0948621962fdf6c60b91d0fbbb3ca4cd0a9d74d7cb82a4bf43342080b33a45d24c32d6c9c5a8372693e88898e2e6616fa5810300a1c18cd387b34b406439fdbd1723e78b25e4adf65972b8f3e759bc8b262747f791886f8195fde431fa3526b5fd4eedee5d47f76cd47c3162408e4f92722ad9b3181eee720bc73c0b4549a093c6a9a51798579c1b3c99d716a0277f75ba3cb2e5d73297d020ce4eb4ba73d2d660164423395cabe2d4a6da708707152e662c285ee6c5eecea6a276d016be9783eff66177be33cc76bccc6ffde99e14f6c1bfbd7d6b6c3edf2d738914272b2209e1930619cdcef75708d0711977a00c2e77effecd85515de0fc8cad517391c6d4146c2e4e3b5bd24676e359ea884731449dce002ae1f1e1e6803e78ed853555063ac4b21d714762c79f5a4c7e8fe6f02ba1e9d74516e7ef9e80a6524d5213451c814582c2f6be486902436fcc5a3298e338e110d6f89a89214b7e8807f0d28198006ea4f5380ad85c39a0e5f5d312fd489005ad64cb996538ee9086f11888cc8dbd9f70388b0b881bac100af9637a2a2f68cbee4336a375ad8855abd1f39ceb56229f074b8802e88d0c4d9f0ddbefd7b76ad7e3d0ae210b3ce5995e7caa454b74e0a9a1522e401f2982aecb93b57cc66cda3f04bc844377f52b6a045966a4a3659a36beed8cca4898301f93c11cdac0545d91ca03cd3515e9adc4cd0cfa14ec56f07e682fde3ee81107a8e1338effeb3ad951ce852c1b79d74d2889f5f621720419c0c1dd1f0261ba594e6666029976bf4e0fb1309df83812314beb6210cdc37b92c9d320480b87a2d84cce84128c7e07fc392c77d32fd6fbc18d757992da93b4c74c941ec063ae12c824a11cdf7263ce0e3a6563817dc92aa7598f6b27d859a32a16f8bb1c2bf51eec9981f1f5ac8227e1e76037126417c409ac968f80945252da64216d7939187ed263bc6ccd519822e2d527f98473d65ec1f4cbae91ba28e56999876625db6bff0b5aec238a590eeb60fffe755f9f15dd755797cda4b582f94810e36127df3a22b46b9068f10c02210cbd75322cdab5c4da5403b4a6fd9cb4c1486ca554c15faad8e769c6f63ba6c038346db54b8e77288aaec3aa7aeb200fe002db0d420fa7c895a4b71ea6c53226edbe7adc585741d92d8c6de4498b95b72ec97f012f30adfa4c4024759e582b03806cfab97fe4691a25101f57ab8cdeb6e17bab4031d1184de082ee657fdbc2e5e44239d83d6d03c9bb2f664c1ebe9eaa2d6853216fe48863d6b42df30ceabe3eed7d8f515c1a89ba86648259724eb8f2c3cfc65eb7d7ef97746faa2cf80ebc8e121341941008c2b5003603be2dd73c0ccac4a671c3ea4f950d78323bedbc6d79dac4207f30c1e51f757a7bfa4eda443fa39d650baa49e7f7ced0b3b8845280b0bd2f112b92a145fd7fd83d5ebf62cd0bc8de0768106c7baa5d9b977ce75d77525ffd029b5da486f2614e6c01f2ebc803744ddaf8a072c2a6fe772cbab77a"
},
"slh-dsa-128s": {
"derivationPath": "m/44'/1237'/0'/0/3 + m/44'/1237'/0'/0/4 (concatenated, first 48 bytes used)",
"publicKeyHex": "7bbbe598805d0d4ac114778c7663804515479ed5151870e16c4cc4e8a2be5e61"
},
"falcon-512": {
"derivationPath": "m/44'/1237'/0'/0/5 + m/44'/1237'/0'/0/6 (concatenated, first 48 bytes used)",
"publicKeyHex": "09270868041e5d6d864276f279eb8602a5d22a04a0a9841ad4654a2e5b7d7817bbcb88b475440580c48ad6a8e93cc68393008d15ed81e86f3da032e124a8a50e164eacf7c74ea41389f302642a983f628e06e7103b42c58ba40e5c25046cbae1502a883cb492951a46c437510317a92de5a2dc2b424c2fcaae9d3250a0116a9ec0d9120f435c1de849821212785e015a27d0dbed4a38b5f956a915b7b0c067d3d22b1dfca7471a9fa3548441724b56790545416b39a10d3c8ac2f92f14eb297162a7ad59183bdddf56c0dee61c908d2650d8b2a9e4ae71d7e5aeab0282e5c2c9b3ac263aa9e48c9c8502e5f5059726a7398ce275c6f59bf0d1a58b68e1532c0f97d1dd2710a154645027a0a3406236fec4392e26e0eb0649e499766724f3168a4188a0a9b4913c972429884d5786bcf11f694d6938ab0ad573545ebe026c1890e7a7358db4d3211a909809aece6b816c5d2ec4beb827642555ddcbe99049fca07efba4901ba2409eb23b185081b5a4f49650948a6822d7e56c27a222e841727e2a633d0cb2a96acbed0fb8a45844ec2b323efee71707d7a8543c9b93c4840f113a52aa2ec6784422870e53cf4be94c5a1040e0a4ae7a8624dc119fb045961d48b02186a5596ae3bc9101b153bc5da53e581eaab2662e13853d94c9c7a4add9d631015dae8f3ec0406b4e4f0ac56f62caedb3ad5e9ef681d47ea074a6d6c11db36215fabbb01d09360abfaa07e4922f7eb6c70624e9b7314113c4c11264dc10a65ecda3672ecb0888e5e47da8065a1c1e935f147061c75d6d9041c635a4242a6ef90073f3aa9142ce6f13b6541a28b8c9b614c86163b2ceb053a5d1a5f02816f20a06168ea284e2238d7fbd60da7c91af748857e0cfa0ea84b8e59b790adfbaa283c24aabcb4536cd064da42c2e3c622aae50f69504c8d20fd5882986af31255c79540442a6451007a73a3a42e0c50c68f808d897c3252058c818549abdad55abba175f6215e4be544be08734e9dee48a0a9485edb7abc343c4173a02110217a483110e80dd2e1c8e347beb03d6099edd57a38d1fb98e8d16583d2ffe906e75dbdca8af0655bb6a9c5055194ce8009d9d5b22c083e89fc035a5e4afe51aadf5980805ba190518b5de754bc5604e6c5de3b66fef52278d3ad2b265323a9150111b276d7a2c2fc05eacce47e2e35bb7c10c52b5713a6368ea33aa39e8aa5f8117dc85d431cf4cb4ec94d564c6a64171f035f9a15883dc7e98a44da0a53e82c8925a72"
},
"ml-kem-768": {
"derivationPath": "m/44'/1237'/0'/0/7 + m/44'/1237'/0'/0/8 (concatenated, all 64 bytes used)",
"publicKeyHex": "be1320e2e705f9c74b28d1c1ce52a80e564f06870365197cfb34789cf25b2ce9c620f952581c73c737b1929c9f7ea07b076b96027b874f4bbedde86d9f6c8d9ee855587348c46bbd67a4bab88c66eafc4d1df95094faa3c1e2134b962807f13459805d4f2080732a43796354bf7b23f1866ef7779035d379b178a2c2077c2f336be795a1f1f20250835df36026602226ae2a528b10c92345c7f4840946faaad5956b34d91dee1bcd5ed03da5367b5eac4c22b17c1548164ba98441b8766c4b7026220ef53a5b20a3b910104890ba2ef7bbbfcf9a8f48b2576841bcc9463d224424c9143236ca521ed037f835317933bd568ca54722cdcd4c16dec2aba0ba8a90e6b51ec088604b908eb957aaabbea7f73233b02cb1d6817b56afb5d7bd1724a87e5ac4abc29622fa59fdb59ad1eb1096091244cb984efa628944479e551bf4a2531c642e4f0618f9a0a743b546ace955bcd15112234045e891629b384fd4c083067df4e0a08409407cfbada8282be089ae1fb510a2904c07619c11c2b8d560855ee90c153a76c971151eba6aa46b8c717a4d7d0c061b76af8f27a8e1cc28cf0cd01e002717c33434357bae4a5ec067ca75e2160b82bbe529ae7c920f6a57168590619d49a0faec214e32947b56c0cce13d055b7a3acc9b1272a1e98533926171c8204cf15c1c51fb0c250407474c72dea991f7f9481ae469dc17938f710812c31014679fac8b59c2db5008857cc3b3b9e2695017a623d83248b49c41639b5daba0579b842d0e49174f08553d06383669c4d5babc81643737f7bb4af5b868f43f31c7ad4f3abeea0148feb9489b2c97eb8c6978dcc6a10c8eb1055671836236ab85acf975a85440fdf31124312506c6b34867afb3f41734819d329c5d6ed6303f137aa96747c8a922a4a4acca60a6a37b79bc9a29db0c3b0ba23894543489169cd1111244f49c72456a59c249a95985b2fbc4959217cc8a48008a6915474e9d1cc07d0a7b888168976c3b25e320a05a0e5159c7aeb915248a912e07820fd410f1873de91389f5640cf5663bd297643582515e5c6e81433892d707fcc4ae639672d011283c779e0de63907db1b157a85780a0688c72e66b38b1d803b7590b2fe4347631b4767b76e6bd1b784fb8d81cc6a338bc1e699a6b3e4570298cad35a6158024b8b86b5eadc6f04a99f61284e69b6217b86c48358411c4a421962cc304b19e2894f3e8042cc585de9bb40a3c086a505868cb407e380cdc3ec695dd36be72bcef394b6aeab144a5c62c4c79af0c9cf04782bddccbf99324e0fe5a43c88b9e584c83f304e85596238547e3ba64515325d7f75c20783b090730f7d64bc4f9cb500743ebf0a506d196764214c2efc1a0a8880b3fcb17fcb4e7cc022e1dc3fc0d624cc1239c7308813747a78c8ce1be9bf73e68cd62881f1926c3e4b6a96ec8463fb144c693b1c51bf3664c18ac07f71db57a570b49335c2fd9cabfd14b62eb585fdc34fb11ab5f46949d4768bf7960c70c92f2d3ca23c618d3bb05dfdaaad9f4b081c588f394cbe3fd169a66279079bbe51261a439aa9da48c23d9882de001ae5670a7a19096cd923e24055780abdabf36a4cb2c0e4c84d4855640381004959c82240d99f45028d98598597ea6d38468027258ea48458d4d1a83b9d0af8e7b2b4"
}
},
"notes": [
"The truncation rule is normative: for 48-byte seeds, two BIP32 children are concatenated (64 bytes) and the FIRST 48 bytes are used. For 64-byte seeds, all 64 bytes are used.",
"A future implementer who takes the last 48 bytes, or concatenates in the opposite order, will produce different keys and break seed-phrase recoverability.",
"A second implementation should run its own keygen from the same mnemonic and compare against the publicKeyHex values in this file.",
"LEGACY: this v1 vector pins the pre-v2 derivation (non-hardened children under m/44'/1237'/0'/0/). It must never change — v1 seed recovery depends on it. New derivations use seed-to-pubkeys.v2.json."
]
}