quantum-resistant-rustykey 0.13.9 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -61,3 +61,8 @@ TypeScript types are included (`dist/index.d.ts`) — no `@types/quantum-resista
61
61
  WASM modules are compiled from pinned C under `vendor/` (see `vendor.lock.json`). Independent C→WASM check: `REQUIRE_REPRODUCIBLE=1 pnpm build:vendor && pnpm verify:repro`. Provenance: [Supply-chain provenance](https://antonymott.github.io/quantum-resistant-rustykey/docs/guides/provenance).
62
62
 
63
63
  > Pre-production until v1.0.0. Prefer `@latest` (or a caret range) so dependents pick up patches.
64
+
65
+ ### Browser OPFS encrypted private keys
66
+
67
+ Browser **keygen and sign** for all four signature families (SQIsign including `*-webgpu` ids, ML-DSA, FN-DSA, SLH-DSA) go through `loadOpfsSkWallet()`: WebAuthn `userVerification: "required"`, `prf: {}` at registration (eval only on get), AES-GCM wrap, OPFS Worker. `load*().keypair()` / `.sign()` throw in the page. Node `load*()` loaders and `verify()` are unchanged. There is no plaintext main-thread fallback; `crossOriginIsolated === true` is required. Docs: [OPFS encrypted-sk wallet](https://antonymott.github.io/quantum-resistant-rustykey/docs/packages/opfs-sk). This is not GPU signing; `*-webgpu` ids still use WASM and do not write keys to GPU buffers.
68
+
package/dist/index.d.ts CHANGED
@@ -60,6 +60,98 @@ declare const MLDSA87_KAT_PK_HEX = "6690ec64441501ca68d249f8d9975a99a48d3a01aaa2
60
60
  declare const MLDSA87_KAT_MSG_HEX = "fa42ec123aa8d3b231a2811c893254af71bdf4d9a6907ae22ca7a603f83f6a2f0154c003b4cdcdb18d331fd6fb7a66240ee1a52a4dcc36bb46a1e0085961e650797c96f057629116e841a6dd4bc1840cafff64df8fe3ac9844186545e3b5f233116b977f87162472c0350ef9657bd3ace7c4bd4b94f7bc10fc1e067bd5514bf63a0b581f6d6cd16c4bf9d74bf4a8b64b933b972fab2c3f698a04ec5882706c978002a21bc667e77ff36978d4614615e97688eb42e9ccf9dc261f8755ecc4d5c4cd389209912dd47f7d81fba50966891259d81d583439d0130c34489ae76500ee0e823aeb596fc193e1207cbadf06106fb96ebaedb3e4460724ec7853c0b59ffa3bdbab1ad5438114c5d03c7b41f5ff85870950875f3cc9ba9c0f2eda8387641e9cbeafdf8b987809f51a297d9ee31752c6fcda25d33cb8ebbb37b34d4d762fef4ddb5f5947c682622e23c3172884f1505d7b51b276b2f9fb17f7a60dfba72db8325102903375ce17af51d7cd37cfe26145aef57a2f61414f6b93ce15de31b406f1fae70ae636fe52f68014b801658ee60c843fb0ad1fb3195ce8c632c7c498c30ad932c6b5eee6845ea29ae37b9d3832c696d976f4bedf24c19df9ccba5df590648f563997547ce6fb336e8d4374b655b48190bd54fd526013ca1b32d5e1b7cd2fdd5832f3ecb456532e73471ff3eedccfcead722b246ebcc149264babd0156f7a8d803251862462f4bbe1c3b914aa3a16c603ea51325baf0fa9b8184fa81135f12d5bc92d05a3d2b9ffa586d47e667a6275f4bd06079dd657ad37f559de619a42b541208e0caf0a8309f2ee08b25d479f12f6b04254eb334ee9d5dd0f27dcacedae3931c5058c59263711f13aebbf2d8a461c358a4f487be706261a65d64194fa2cdac8dfe78ebb4781008bcfd23974043bb351bcd7d8c777181953c1d4da26c2e0c47360c4683e97d80c6317c0940059e7ee3ffd0475bfa03a8c4826269354e4174b63d3935cf37bb1553196790204603f795428be3e0e439807bcb7e4efed09a2dc19c4f440d33b17fe3b13b957a7f6432c16139df7c13110581466970a79ec68eaed21f9488d568cf21f7f6f1f9cac6d54c15ddc55f490fe130c8296602e377dab325503154b058af2699288bf441ddaaac7c641f7979a40f137444d1749f684a83fb33c7757341a035574f0358235585a9adf56b2dfbd5e6ecc5b4a6508e06759c70bf49c77758a1d7820b4f6090d4d81aa56f7b04f4bb33350b3ece25292240a6bf942cfb602b19290a6fd92f1ae22b83d9cf82cead25309daab9e28071ac376b3a5a52bc58a1ea283e282a3558edfefdcf3fd1608d7b01025085ad5a5347412495320d09dfeac3ab201049be278123580445d7c2d0cc9d476432a72c5d1a4887d651b67c36033396f2a22d2ab26534f7a1fa649bcf27864bbe431d1381b65d5d4b0c236c88c54278d1a6ea57184b8a714638e2aa678383f9ce4f41887c053ded0945763ce68b208494dc1f5321449affcb9928cfa356a2b13909f7b959e744f0fa0b9ba34b460a6ef885f11a34cd03b5f8ab7fc0f637f8a4f8c182f0fa291a95e6541024fa839b3b5a1ef79bfb9b82cc0ae1e2647d3b450a309636e681648df011fca5c7890ea7db0ffd0c4b32293b2fa8046578293c828c1b9933926eab28666a39c536bb2ac0606a0b910fc750a36438a581b9dae839d72350e2596f01e6a0fcc39be59d73c539be30605313b5ed0df292a4454c252a061f52aa80648e90ca5ea4b5a45e9606dceadddef4ee5939dde156e80fdc3555b267fa8b9440b0079d255eac4d83ce54daa2708aa1d791f0aae6fb307c1bc6190af23972b370a95d757fa686eef410c911c303c5f54047fbeabdfc4dae358733bc3d906e5ce027de7865dae9c37cbe97349975f35f82569b509652db4f21b340696a039d8b556287c653584beb98824d894b6f5185e0adcfdb2bb3bf77ee31c0b1b68245ba47d293fafbe40d4231c70445dab980e26506ebbfcde55de95d83ba509a7da2acd81842cc51c68cdc6d8db0799d1cfba8926b2f592f1dd29a9ee5c178c06acfe230a162c652135d94500add907ffcdf2efc7acb6a6fe34e3aeea4dfaf5aece73b1e20767c3bf8135dd58f3c6d58b13f7e952c55a795ee12b71daece757123239c782641af7b644b52226158729a5be9ad2a50c27e795f616fdfe1d0774a35bf2e01d6c9326e69df679adef6f75de298fe2608bb305125633168a0194acbd6211968a665235a0fb5e58113a3ec80ca1fe92cac5d6b5f17d466fa1332144f508b4ebb87c16ddbb59a73741a58258c6d54aac4689b4724dca12a0440e8f48329ffd9492049e574d451c7f372480041e8a7d307c54e4f39c46ef56d46423d7d9df5cc1aaa0e24405c6002b7d51b83d21e60567e668278f61a7347448a31d4d7099d0f062a1eb23f16499a3e3469bd0bb37faf1b29371aacfbe6295c3d4a89e6ae371192273751bd8b7fb5712f74dc43df849f0428831e2b2f264d7bcc4daecbbab9b310ad9c904283d7ae376239c33961f5a9dc0634a05147cf2eb789d59529a717baf2be4e3989609548d8d465fa4dedc751617755e365bc615ee715f0e7cca082ad5c87b100c3571131f9aa5cc2a6b644b861a245bc547442a3bf0190aa928ef335a71ca092963903a723aa67a850206077b09376cfd629ba0d1a4739c6fe44dc5152bcf3072df54bd8622bd60e815cfaf8d88eef7ed045e29a23ce97d20175c309b8e9055b193906a0024705c8c3dddba2293b4cc14e853a68080c4024a54e2f77e499ec5d0f143415403df41abdfaa663f33d1030fdb7a39536146f4d5e56ee0661b3c36a41deef497c3a78e22a608c77599e7b8344813ba7f42e2bfe5da05fc9202e7b3a71f0027ec064b2295f97c36212ccfdae100e24dcee356a444dafae2e53c889fdc29f44474c9b91796e29ed5e6279ae0bceb381ba2c4dc9b6474f0a51de10434cf635dbb0c8bc51a1b8512ab7fba18358018c4ea7158033ae400d039e3d49ca98d1d90ff5d1af881d5aa74a5ffc19c34add47aba8b92516062bad5040d9bc48f2b126d1befc50afad24f7dc2b966f5ba05ddd5a764c7bbfb397fc56714cad1526c2d0cf47ca112827bde82468d8ae02822eacfdeee30bd3706e9bd024885d855960a4d998e17a4d5bcc3d821ffc1e4f6820deced20675dbac69a0b2177cf4654008108728162350fd7ef454ceb83d1120b34d18ed9d9d69e7dcefcc4267cc5020fc3a5d0d4ef2b539cc6c6f605da88c25e329d3cd15517a552dc62acb6d2d59de64b2673463044a871a2e4f17e287bdf7ab296fc1aab4e3636ec0019989cf680b8451f81b90374f42eb8e71f8b4e9152f6fa48ac538ee306cde076bb24736158c27040107b71dac35ee98afdb11b17ada7258df9f5b9f1f8569bf294c6d3deb9b5993ba3fc397883f43d65448639a1c0743d8f022d16f2fd133c4af4f4ce01c42d113653db8cea3628ba10e7b70434a08fe762c7970bcbecec172fe670a13d05251c49bbd931a8d704260ef802df154222bb9532d326e176cd10848363ef5d37b213c6cc47575b251a36ee788298fc709b92d5ced8f018ece990133556c20ef29f9190ff50b0d5f8896e22ec12ca07e045da4672e1fdc84313167c1d50e5933c2300438a79424be104b7cca1332b0365ad631aeaff31f3e21b0a429b91dab055105617162fb54460c445a3d5e0e44d55b20ef7003ba3923a17723fbea31027a88cac868080b574a564568e926c0a555bc8e5abb9823d0296d798cba45aa9b653d80fe0363f153a5ec77a3e3e3a6ad3e31799675a63ffb76ce3c696bb133c1fa294c8fc3fed6cf4303f0eb83aaae65c6d54dfe0794c4b1bd44fcda334457a6d80b4e82496d727c2f713b4a57ed3073a86fadc3580bdd38bb85fd467b06408e4e58d8c41e56c574a89609d4dd7047aa8b67e073c2a5ffa0df6cd91ed22b12395618ca9f97cbdb88e3707957bcaca584a4df618d3f969708f8709ff9dfb8e521fdc6818304ec89fcf5101a59bef8217f66b8c7c74d1fffd79bdf8c11c8d0a8fdda284fee1c0c4d6c96bead3f6e22d8749258da88a6bf4a4da49d8f525910bb924f788c976cb3c831317e86975d94651b21e5327472f87656bfbc91e44d7eeb1d45fac3d34e0a59c4dd5d712d15fa0a3681dcd1343df19d135bca91c678a58eb29b9c8157dae6e7f3296076100bc22141831a89dc2176b9d752aeca35fd8335536d8cff374b8d410ba8f2baf7d8ffb215f08f49bdf8fc3f8ad3dce52bf290f5d4585f0fcde811d0dcc882c861018da447cabcc6e3579da27d4ad7592c6a199e6163cc758d378cd2b772a14b9b698a622cf94f3580f259a0dddc475acad9538e142e21eb73ba9d87004db94d087b7eb4a5a2227fe82dbc834f30301ace8d2070cfb9b71a1e20044f6927633d7598d10df705d7eb4a1337db38300b77fa06be638b3ed5e98965ba7d8d6c931ff8e4c35ab82a217ce0abafa593408fd8ad91bc0c475c2248e389382882c896e9b8cb1bb818a909b61305cfad77c972c18e4d4624565beb049cdc03b1e03482a059277f06020e15e3b602582260cf24f74b185d0578e01127c11dc62e9cbfb86b38206cacc0bde9eb42cf046783ac22630a907198afbad0b5c43fb3ebf958a2ca69dbde83223f87ccb10cb059a5d55784f9bf874f8a223706b38edc488a9ae7f318ba3ceb312c2291effbbae6b18444a0883e86e15bcb74a6b70fbf44c177c87be371ddfa75efc380a0e30afec8fe1662d3adc04316cb74f6b4b2caf4acc374eafa83d4d7e7284e48719dacc0b2396972045c084652b2ffb849c522c428451e4db3bd3822601abeebf412f60683bebbd776e339bb1138a822b644f2a604326b7794208f7e00e0554e17197f0ae5a5fd4c7b26f683ccb27e332b3902c568d605732debbc70fb370e7d67067d8f6bd36bc91a5b7c19a5896350a18aa50f6dcc4484a8eade416f0797f730ac0d20032fbdd0387091ad5abe5e0c3d2b88932e4f29742670bf29a3a439ac08d6c80385907c3a1dd34e87306af5681481f5a8b390ce08af92c08f69dba386f7d2185016729e22c43c33fc47d906e6f01905572b217e1136de7613b3407651cf86504751f57119d910ca31b1f4d725b683cfd02d631d58297a55979c77439e6df5f11efecd6abfe932ba4879a79b8c66028b06dee447b0a55f14ccb56a5c936943d94d714d38418a9eb47523c2a73e370b01e90aacd24743725c370ee54eada7ee0b20d5c28777fb95a3a12b8b23018623b2041804816474af1008b523e73e4fdff056c43d51e90f19ed9c1146e6537b115af6138e7da834df6e37ab9681d931c4f811eeae12e119c59295acb633d2e6cb9f470d18f337e1eef4e72e7bbe91af9a425529dd1f1a58580f16c66f8729b68ca35a283163741a21ef0db87b3918ec58f533effa6f9a25c778609d0d69d0ecad5257949afaa4ce224f896744d1c0c89c24203073d708e437f522d631a669bb56429a4c01b5008925b7b70343d21aea5ea2437715272f379e69599b83da75e952dd495fcc2f7adf9b4567a31ea74d9180a6a0b79fbc889f92566b7c949bde9d5ad5aa9163ab910f59d333adc6c19df9d5ee375267d0bf0d6eacfb6d2ec4b2dee32e64aca1237fb80918885ec9f74c9db38a41576ac1bbcf725bb4e353aa17e221fda5035f51841745a2141390315923805f0736b6e4cc9821c3fe254ac55a2d2c1880132accfccac0f83c3759dd837080ffa8bdc7340ab210cfc04c1c451f71d97df113a1ea23391cde7ab196dd57f2100a7a5a3733ab2d3c31fd4df609993bb9c314b1dfa38afb59eff1625136e41e1dc655a570c944fe3fc0c73cd58d190e30dbf88afb75b875bffb238c21daedf36ed2cb1f17da07a25e002788193af68d7c234d4f3a52e0d8e56d7f887b92fe5758d067dc0a85217e1b32edec4e9dd32f73af2f203236d3d6bed5a4495822d53bec7625fc5a7a3c9b437f760e399fbe89b6c7ab50deeadd8eccc246472074fd9141178c0d2799e72f0ffe1b0fb5a098f51cc4be45b4164368734d8641993c895e7f3baed294db4e750d5f77225350cc5313ef83b9c37cccffea10d8660ef48e77106e6081f3bcd4a07e81b281163d895bb3954627b3a9bcefcda28f797bbd06bfe08d5fecac8fe85a074753805c8a92799a442305b46f04704b1d11ec06ebe7d2120f1ba8b713afd6aafa86c82a07fcdf8e9665539f18cefc3616f05c6683549e0f8d98596a110fffa7b22e835b3a874b69786f6b89e75faa5875c9c7034798c98de202b1436647fdf1ef4aeec32761ffde0393ff5cd280023edbbfa21f01dee290f1aacd3a654f0d77cc4e09f98e861817d8c8e22a39cb38bf3d169263bfca4fe9346d593f89c8a6f5ce29280b3f4f557e1361d941c8270e4aea46f30c44cba0f4594938d4042b89a21aaa51381612f63022d73f50be99327d415d6b037ac1902f613e2e357f785542c287eafa944fa8455a7dcdd4eb0222777eb85c597e4c39f5a4f577be6850bdf0bc2a52d110b1259db6e95fb4b74514d8ec86862d79117d2568fbabc9dd5f2eba32852a0fdb1f0e04d5c56aeb71a2e150cf551d970ae085d62a3df01eb60b5321c4c157a895d42e0a2d810dfef79753590a61d53080f38b9a3dbfd409192b95e3c45282d4fbfbb294859e8a867ab3960e47094a4bff278457a653a44878b3a8a81788b28d95aa6244bdc458054b21edd2085cccc1d3ad6c76e0287f6e406068eda3d5a868959e5b03db1df95b9e647015b1e4b8d1a14c8dbfe1482bf0ae3d62a72ff669cb47afc6b12e6e0e616d4dbf0c192d9bb31788d40da0e0085c5f8971d97f56a94d7099435d97c06a755a2eafe9947b7a2016e20dd933ea548b0d6e8188e358900d375387934da295155217f8056b05bad11265320f63e0a1083c81003cd5cc9d42241aff5f5c9c8548f161c9e4e2910c0d9b674580aac42836b2e42fd2fb86872bfcda967713563857e5dcd38c2753ec6c640bc35ce89a2cca9212b594f46b25c4fde148defd70095eb42e1ac78eba596879143e215b750d35a983e72cb4fc85f0a4523670cc6580922d1ed1e5dfd64e793f6a817a6bda17346205347e12367d9613ea9dcd3388d30a9e99fb72a97f4aedf1f9532282a9eb422f6a099f601f3c28817b651ab44072829d1424471c36ae6b94949d4e5eff017905521da61b601ec2e117a947dadf729f47a2219422e0943d1014ff8ee21d303ac34ffa26dfca24beb84727b063ce7094137f6b8f39c4b8ff88ed70302ec70a08c81d065b73960eb3215b68dbd01d2a90552e45ec25f857c99b6dccee8d561a112307cd9e5ed5b2696b9187819e546d45dbfd9638e82d0095ab552125ff6a54b8dd07303d52f69deb573e19369df32ecc93bc58d21ee71853452084ecb1099774c81574cd20f0f224dfa510008045b63041e23f96ef1cce51c4613e551b6d90773ea97c442370bed34337fedd48ecb47375a05a4180d61e4459a83defd4456cce8258ed44c93bd09c33c06d0d61280a024102aa883c12d02bfe4570041ce293b035500542ff05862028866450f20c99d9bc4ac26805a22e97abec4a5f5bf92298115f19fb01b65d137aa02a5aaa7c083894cc0d3f8ab50f5f5b16f94c18f0c042d11edcfa452ea5b98a5d1d04f179aea52863501c4bf3a6ee596f29a76fd76087b51bc4591130abe4e8492321a368be74be69237988756ea567fe2af1138df2ad7eb07dbfee5d1e4bece891aa990eec84504d356284ef4822cbb2a63f7c88cd89e3cc308fed1ec1e3dba868d0a83a581e2da779e117e679bf406acea040e9f445b949d4f12d0a3bda3e4d58fe9e888d9a62f71970ce86c3c8cd5d9a18e8f03124a7076935c4cb0547284877dbaf371cda73b7a0721e9b4d227f99bc22515422b618f835bb5301421379381c0ba93362798feb6d0ba64a2cdcb2cc4706de7e7f3454211f01b09cb5e0c356cc3b77ffeeb6a08aa0c08876d72809e64818f2056a3573840b97fa030420bbf5827d7226b30ad5491c38b3e2b85fb90914b4cd61e645c43e622afac3ffccc354b340d680311e9b157ae85b2e73d5bef65bf9cfc7856f36590da3455e105021676727c877560502d48c42d12caec1e1b7890b1421242a8c7bb83c8533f327684c04f9f0558d3801601af3f211eafe9582e74875789c2661578d45af67652dd87e54bc1b3454c8fffe73b057858219c167a3fa51cb95cd08203e552e8d3685106279742bbc56398d39041b35a4469fbcabc2e5fc858051e28078717de2020419b9549e253eb5944d908fe21d884d7091ac472081403e7500aea2d15093ca0d2b21937314e83bf3dc54262afa90f09551c90537ff2d35ad2c6986613291f863bb8a831e1daf39a6e4364db6fd6aee970fe57349078597ae3fb1124e8f203a2a0b2385d927f07ad5021ccd86cb756e3eb805816cbc03974163ab0e98744bb3a1cd192c5b99969c81422f4c9ec6fb594e49869a42c1f733378f2f7fc471ccf45ebb847214b3b7c552484363ef3b1670d37f8055689a7f364f2dd0035ee8e4c4b60e77b547dec8ceaeef34b1f8365117928e68b94672f2d660dc40ed7256a4870a3b9a3042a8ff4c38c6d85b70d002900b526a037fef00504eca5e471af185774aa581fac66c69fc91d8a846c331a0cf136bef07ddff2c8c3660acbca59114d11dab9d11af15fbea5a48029c7b46b0eb8703d83fd29322e7b72110c256c4349475238d842d27c2eb9bb1aaf0d6e3bd4732f380ea2589f4ab2fba39620197ac0538d970388de3df07edfdb9d74e5291f0931259f2c97d6de56c1b77fc2fb0e95588e94378d450698ce65a67937f60c6a7b66922eaed34ee8c425498f770c5525591393804fa5859c5fd3727b809b049f512e8c182168a9ec0ee4dc13e2666c41e026153c955d99077fb39657bf5dcda1382bf5e34d364c6e4f28dde9ad0450f62b32d94d3c3cca4612da4f6dd6f915eccd8918325c9773";
61
61
  declare const MLDSA87_KAT_SIG_HEX = "85cb1db5334f679d21f457df559241826480bc25668b6e5f1e878344807efd487b87e9857291271ba7271368fe42be6b3c362d4c48956712e38ec470f0e7296b27da3df0734fd506dbf01cb53cfd471448341176006a82d166c324c798bc7a92e2d135f1c9cf63c06964926dc43199bb5ab20705f9cbf0fe28a62b41e51651ba6429ce70a8ece844a3828d160ab90900be47a3756cef50ee6fa32c3d9303cfeb4f4e6c21d28833daf8bce21e018d466a8bc2cefa1d0bb743aef781d082e84c1ca7e7e560fa85999de8bc77433eef62b14675886697aa28cd760ebc434ffe8f717a2d4f395df97a6ced984cf065e9815fe41887a22b346c993ad877f2b601b1c4c65ba40b5dca82fba407d853fd99a0767289a4c192b81beed1685223938bef86b2a37aba62aa95d24b1aa65c539a1694bf6b8957b5ccc4aa3b508278e2a5bc8dedcbdc07b944997d03fcc8bfbeaebcfef14dcaaf064fab84c953f43e3f6263d53cdf448d1602fe2f596fe0f5654c7eba92aaaa4bdaa01f6bdf968b3bbf288156c33701aaf020af7b9dec04018212434c7b3ad425d70fa7d42c0456da45efd45e4b7f9d539ef223c6efcbe830fc15116e45ded86a8ae4d9c685443bbaa3acd5e7a02ce23057a644b09c076e70d84b3a91621fb7e398f572cc4c16a2355397a921591b6e628a212e709c67ab974e5719b6872d71325be3a012497bade25735ffdc81c02210969013dbe567ffe589f8d3ce77d2f7c01d50285ced55c4a8a3123b26813f41c0d7aeb527721590371e2a5bc3fd0773fb32dddb8f5d79a9c104d18539661b23dd4ede4d68034cd3a589659fb99e4d20063e89ca6d6933ad9bb2742956fd7ba3d5cb488b9ab3d8bf5676e01eab97c27f65e73e18142727bc50dd48a67ff0205d78a8b502e63734a7db7600eb15b18c5a8559477a13c34f8f3453ea04da442e23feb0fc0cb22996d6723067c3c18c50927c1c70c6a08624cc5124a2bac4c4a74f05bdfc61cdd3b89b16ba6de963feeb73b0dc50f3831db63d7fb252577f65c4c49d4fc5761ef386e03e0fbcfb7704b418b82b88f52d745b4dad3824c584eabc8c15c0bf415ccbd09eba6e7d8eee0d18d6306fa35652b7e3d7078249e47419be7436bf0b2c020735dcfb836828e054b4058d54f671e1f514193d9ac81a5f9c4955e7db5fd7323abea3bda1beff6e3484c6e64741389101d240b317981a516e9aabd2d8ba9f4df343914236b542f4fda5acce26f455a63dbe8f327f26414206835d6d331a7bfb79a75ac40a7920ceb5e7982117f1d15a1b1d0d61546f4d6c6a010976059627facc17d115ff75de0b28572abfaff3f325d1104cbed0115469d2e1a87093a738797f7ad53badb87e5c72143d69f139758ca17c995e8eac91aca06b72832595109f506714986a624fd1f2779d3716742e402b9d800d6c4e6dc97caee2f5e92094aa2d80e483d1d629058e60e4bfc9ee4056af36598dca2f84cc727157b0649109ba77a32e4dcd2a1092714363833278c96d95248f8567bd2acd0447c93f9dbcd75e06cea722ddc881a1cdf327b33e75718f9c14a6c44d8d69a39f7e2714923d29198db619e907a5a2b36e0bef83824063120f70851ebbd132fc6c8d090f735fa3762f607b96158ce3c70b1e97251f3361e02e0d4f02d4a3762c0b11af01736f9c1c47c88b350e9a6185c737cd8c25391b72c4b6832482341c3442feb55fae56994172ef2630e0efe11f2e2bd718f2c92427be2cd3f0ebabd78b762d39df48c057217ab83c451cb0cc96521eb7ef9d9ae72904b316a79eedd0e255f8f24eb00747f00847a237451d6afbb40e812dbf53524802539f953279f619ba95d27f420893f60b761fcb3dfc6da4dbedfbd9bbfacc70c55ea18ff2ede9bcb862d15c47dbc69af3f9582b7f9c68ad3a686b1ca28fac0e38c203431ebf5aa36d2905d7ecf3d4b7278599c9151f6b6fc7697c2a47fb0ea6b2c080a53beb1d337811dd68f207b14ba2bb3318a1167426f61ec540f16dfe287232ecc2cc721eef09f8e4b7cc654d675353b531ae61eb5db41fa4905ba97b88d263781061d6d5f8ecb67e97d4de4f1027eb6b0282bcc8343e203fe0c498d322995bff395faf70cea62a596cbaa540f421e5f3f97bec687584bd86e0bea5ada6aefcec73dee9258a54de1f6e2eea8b54483142f3d4d5e81db8370eb1fb80fd7aeaf51ebf2b50233b2feb31e1e62b588c25ba5dd71bbf4a503a3a1510340972d92c2273dcfc0539b49b0119e969c5beabf15ef3e5d39eecc0f39158703e7b6a1301069921c2dae9c10ee0ccad51d46251602c120c24fb3e394d7b7c03ee681630a146c8679d82a224a5bae9a648fbc45d0c7278bc1cf0e136fe48f24b8d239531e64706bf96696a4414c4ca4ff17e2746dd86dd1aa443e929e0841d7325b74da6d7c316352b0584a1076829f0cf0b1e0b7a6f8bf64c272896783c7a832fc2200f480bfeabc1c72c532834443157adc292222195ab63e7c5a73d46d93f553d5d1986e54579670dc3c20cdfde434f1567cd500cc00697ee92242d66092c882c337392a3a07ba255bcc31620494b7163429aebf7cff039c7f37c989fd0445ad532fc58fe930d77ce864195aadfda21b8fdc6aa7561b294420f944a5a915212b50a83e8c4505d5056642be5cd83fd5d8a7e69bab2b4c1f2774729beb7092aeafc9d261176186c83e768c2ad834d3aca0396ef66f6f0ae8f87dc3cb1dae8ba48e3e20bc5b5fca2aabe375ea124583e83cd9052d450e3c4020302753169417ab72eab0b5453592ebffb546586d0b69b149df08b9bda9ddb41e030c8dbb5bbe28b802a3c721bbde9653ad9169126b43107bdf873159c4b99b29c182ee71c83a8fb8e4acd6626941751c8357f297fb346f3641926750e93ccb8d9e6190ec737291ea405f35d906fdb688bff43ce91b52fdd687d004753a557dc4077843d9e263bb2b66f41506a0444eb59baa8759b117d4f284b672218c9209b929227aed906543130321d5c461600974f8705b2ddf7ddd8267944a3c21566becef4840f167b6196716089701d913705f3898210eb562ab54de1e49e1854880948ff2eb29e12c8b609153c345d5344ed77d0ee8fc5f2fc43409d5151e8982b9a9530e55bdec846c1504f2ab380a74cfc5117aaa3203f5ff042a1b2078d86a0f55f1f29513a7f2a206e91449204390d0dc708aa48d40031ec82ac501d5d45b2c61b57530c4dc8cbfa09fe6d3a444529742143848b2f62b02a45020faba5b0a18f437559fdfb18dfdaf1cd938e9b93f0b999e056a6e23cb93c08e8241340f75180acecdfc0b3be4275a056228fec4ddd6557e60285248a8ded0407db339dba867823576c5cfd2708e3ea3abdf360cb11f05ae85e288990935d65ad19e9d84d6248ac5fb036db300dbc7e6df91f46bf206693cf5889f508c571d0182b048cfae1a23a6d2a52a8b15f676f9f45d35cdfb72f5ac33961b8347c91d3bfac4631f60077d8cf3b183c68e41846e22099ffc1c13ab44143a7985937e2f470d48243aacc18e931a373b2636d955fe822500a07221d59543149fd6271de5de78b68a14f9428812181c275ca4b9b7943a9256335befa0396991f99887a9d190ea73db8219f30b743909378470684700458326fd40ed08d935d41544f880ef0003acb5c8ae1a20301d5ec255c590850761b10b123b9291f4896c7d4a5abc6f9dd9129f20c9fd125f96ea948698c5b90ee4e8a687e05fb94647677794d70f80f3809dffa1033f6d9703e0bf6c998186eadcbe1b6c4b051eb3f0aa567c08dcbeac93dae446673a65730b9fd3b40d93c3c526e8a74dcebb054e20d73420175795814725692c908caf1a658e4f19f77ba7cd5f4d9d81cb3d96522e0d843627ea19f738f118012d869fe557078a71d9663df761e4b9bc829d38fe0eda8206613d795da3db6eaafbd89071829d7a04402cb13d2e80a0aafb722181feacc6ecdf6847c087743eb1ef135be48c1e7c07402403594d66b75cf72aafdb09f143c19966b171eaccc20fbf1a6a9e36cc0cddb3e4e4caeb720b22fdf73f78bfff687a90124030a9c0b7f03071e959128b4383f03b085025de4ebfc277ce7ebd8040d45f614c2189d1f518a1fa1f780d4ab7b12ca7dd0cbe2d91aa029d75342b81cd09ccc693ccff7ef85b4a2dae13962b20102b5db99f34184ef1575253b400d7b914dbe5ddb91c8b10bd3d320967fb883a67d6641e089dc8dcd67e62d74bd9d90a37e210bce6c96b1fd51319f1626cdfd39a7dfb86fa894ec186c637c4b09714a32f6d3e347e57a537fa06b5c56a85e2783863bf442d963e0719ff75d2689a3cd505add9356680e6d873e9efbceb383cfbf05953fc7b04c5d0c765dc0411719ce7be4bccd5340824044c06b939211d5662ee6840447d10d9280f4e09b505d0d961db95a9ab253ebddb9478532672eff7b198fb4f8a050ce40bac13cfc016d6d1f35a24ab2d3285a4d6d679c295a78ac8fe4343faace82a8067420d62e879226f855c3551c0a1e4bcc686c34339d1a791fadd6688e673bfcc7915b59fafc430ac92f9674ce9309817c283ebe7fb6564f6a599676e8f8c15732772325ddc1f4f94732a9b6e85bb5ff61137bc3c3f51ddfe02192a57d0698bb9dd73bc412e751afa8993e3dda18ac538f4fc78bc73cf515244f5e68dbe0c9ef6a454efe083619b9afcb365abb9ff8059bad5cabaae15771620fe01b566114735bfd7cff8c68899f5c48fff3446b259467b1ec722336fc144d9b104db46070a1f910b925d3d17f4fa9f0ef2ab678457fa89e98e778071391e245437d0f4f367dd4f5a26dcb7bdbbf93c5c05cb80b86c58d96d88f7698d528acb4427c41d7df2032cc0bb68e6dc1df692850f6ac2937eb60463a4fe315a44b7176e85433831309e330a6627ceb481833d8fc31f4f45df20d679d3074de842dbb60c1374e8a800868458af7413302c41da789d2a715d23d7031489051336f8d1f51a500fa9fe1e28e01fa1bbd341c1cba638acf0ed5fd21bcc000c31be4bc7ce3c4ab3fb64f896e4c10dde48bcd651480dd74616d703e7a69a174b4de8b946c37a885a728f9224361dad9679c0711e9f4cd2e9761ac6e4b7df7f6ec23b8174685f8179f830f37e1c2b96e5b4d9b4c7321cbbe89d2523a92fd8427640863398a087988828cebb1f21ffe1170fa9c8062c492a62f65768aa26ddc9497295d08bce336b555dba060cfb6a89975fb92f60e2f67b9dd5e2181322850338ea0aa50bcba96e702000431f09e465f8cb7c192d6e073a4a28785307fa9950d0b331bf3a20cfdbd505ad0d2e8775f30fe04b000e6e6649bfb9a954e07f43f590328b1ef7f7d444b2b2e9d0ff27aa654d9f9c75db0df16e98ce2ab625daba5a12eac54c47530f4aba0f50e73cedde9802bb21091ecde4fcba6589fefa28b6958e2f4924194b16e35bd99b730395f5b70db0b626a8ddd67ba23438385834fdb2c01d02d224c4a0e8c93942806fbe87ed9b5e57fb719f579f056938d5baa70101caf20b9eec186aa63d2bba4bda421c2cf9a9adcf072df8f0f17fceba3b208cff92ca48ed56826be0fa49cfe6493d282b04e37d7ea8434991724699f5f98b7fa03e53ccfb8f38d9f2e4dfb531a2f112fc8ad71b245b517f883d72ca548de9778baa46dcfa15bba379b5fbb56085b0938efaf34a85d6772b55ee1d9b9045a2e80355ac990dc18e6d7b33935a2d8ba4fbd0ac1662a5958a7a12e5b921f915ef229823b9697fb78d2df7a793d251478d0950e640edd231616197b3a54685db5a2d8c5283dc37b18a526a89d7e1263e03eb4ea6837663fefeedb85c4db818db0af1b086bcbabac3a9b0daaf4705a7c6fc4359bbc2da89aa2a9e0e5d7556f9e30ccdc2684ff10c1cee185933f1a2c01eb8f707a3b0afa543fd00799fa768e6d0d0638036b0579e7b2bbd010dade86dce5dcc10415ce70f1357747c396b09496ac4a7c9fce453d7ef09f78f270477a435c090df6ba9db9844ebb6b3b3375ce0850bd64421a574b4d5f69e315ae7c4a87bf63fb729c6f0897bdd28d6c20af1fbf44ffe5653bb635b1b2a16883e61450df07132ba0fa725eb550a2273d047b9bbb97b68838a54f8fc6c16bfbbb1c997fa145bb292b484196d92c234d88b95c173a79ed0bdb2d3e82a7fac53707da89f6cebea1330297b630b5f111022fd6f98a70845aa4c1848689bf376dee546f69361bbca3642d63b8268c2be5fc7376f39438e1c79309f1e90de757f99265e6eed047f0db0cbbf94892aa7b4d1179723370b0c7ca01a6081711098253683383200630a6e604d953035a7ec64d887633af980fb518eac72479504a342a895b25b313979885e0d8468d7f82fb92e328b0a9787042b813ad10f35b8ccd6bcd9527b4f245f07e66a587fa77c8c10d5f69a4acca2f36467c7d9ca1cfdbfc2a546685861688011a22255989979cbc535b73f1f9062131708b97b1c2d354769100000000000000000000000000000000000000000000000000000610151720252e31";
62
62
  //#endregion
63
+ //#region src/opfs-sk/algorithms.d.ts
64
+ /**
65
+ * Browser signature variants that can store an encrypted private key in OPFS.
66
+ * `*-webgpu` ids use the same WASM as the matching SQIsign level — no keys go
67
+ * to the GPU.
68
+ */
69
+ declare const OPFS_SK_ALGORITHMS: readonly ["sqisign-lvl1", "sqisign-lvl3", "sqisign-lvl5", "sqisign-lvl1-webgpu", "sqisign-lvl3-webgpu", "sqisign-lvl5-webgpu", "ml-dsa-3", "ml-dsa-5", "fn-dsa-512", "fn-dsa-1024", "slh-dsa-128", "slh-dsa-192", "slh-dsa-256"];
70
+ type OpfsSkAlgorithm = (typeof OPFS_SK_ALGORITHMS)[number];
71
+ //#endregion
72
+ //#region src/opfs-sk/browser-gate.d.ts
73
+ /** Dedicated Worker name for `loadOpfsSkWallet()` — the only browser realm allowed to keygen/sign. */
74
+ declare const OPFS_SK_WORKER_NAME = "qrr-opfs-sk";
75
+ /** Static OPFS slot used by the pqc.rustykey.me wallet demos. */
76
+ declare const OPFS_SK_SLOT_SD_BUNDLE = "sd-bundle";
77
+ /**
78
+ * Browser page, SharedWorker, and non-wallet Dedicated Workers must not
79
+ * keygen or sign with a plaintext `sk`. The OPFS wallet worker is the
80
+ * exception. `verify()` is not gated.
81
+ */
82
+ declare function assertBrowserSkCeremonyAllowed(): void;
83
+ //#endregion
84
+ //#region src/opfs-sk/isolate.d.ts
85
+ /**
86
+ * Browser-only gate for the OPFS encrypted-sk wallet (`self.crossOriginIsolated`).
87
+ * Node / server loaders (`loadSqisignLvl*`, `loadMlDsa*`, …) stay unconstrained.
88
+ */
89
+ declare function assertOpfsSkCrossOriginIsolated(): void;
90
+ //#endregion
91
+ //#region src/opfs-sk/lifecycle.d.ts
92
+ type OpfsSkPrfMaterial = {
93
+ prfOutput: Uint8Array;
94
+ salt: Uint8Array;
95
+ /** Must be true — WebAuthn `userVerification: "required"` succeeded. */
96
+ userVerified: true;
97
+ };
98
+ //#endregion
99
+ //#region src/opfs-sk/prf.d.ts
100
+ /**
101
+ * Read `prf.results.first` from `credential.getClientExtensionResults()`.
102
+ * PRF must have been requested at the **first** registration; existing
103
+ * credentials cannot gain the extension later.
104
+ */
105
+ declare function opfsSkPrfOutputFromExtensionResults(extensionResults: unknown): Uint8Array;
106
+ /**
107
+ * Build wallet PRF material after a WebAuthn ceremony that requested
108
+ * `userVerification: "required"`. create() uses `prf: {}`; get() uses `prf.eval`.
109
+ */
110
+ declare function opfsSkPrfMaterialFromCeremony(input: {
111
+ extensionResults: unknown;
112
+ salt: Uint8Array;
113
+ userVerified: boolean;
114
+ }): OpfsSkPrfMaterial;
115
+ //#endregion
116
+ //#region src/opfs-sk/wallet.d.ts
117
+ type IOpfsSkWallet = {
118
+ keygen(algorithm: OpfsSkAlgorithm, prf: OpfsSkPrfMaterial, options?: {
119
+ slot?: string;
120
+ }): Promise<{
121
+ public_key: Uint8Array;
122
+ }>;
123
+ sign(algorithm: OpfsSkAlgorithm, message: Uint8Array, prf: OpfsSkPrfMaterial, options?: {
124
+ slot?: string;
125
+ }): Promise<Uint8Array>;
126
+ verify(algorithm: OpfsSkAlgorithm, signature: Uint8Array, message: Uint8Array, public_key: Uint8Array): Promise<boolean>;
127
+ hasKey(algorithm: OpfsSkAlgorithm, slot?: string): Promise<boolean>;
128
+ publicKey(algorithm: OpfsSkAlgorithm, slot?: string): Promise<Uint8Array>;
129
+ };
130
+ /** Host apps (e.g. Next.js) must serve dist/opfs-sk-worker.js. */
131
+ declare function setOpfsSkWorkerUrl(url: string): void;
132
+ /**
133
+ * Browser-only encrypted-at-rest wallet. Requires `crossOriginIsolated`.
134
+ * Decrypt + sign stay in the worker; the UI thread receives only signatures
135
+ * and public keys. Node loaders are unchanged.
136
+ */
137
+ declare function loadOpfsSkWallet(): Promise<IOpfsSkWallet>;
138
+ //#endregion
139
+ //#region src/opfs-sk/webauthn.d.ts
140
+ type OpfsSkWebAuthnHandshake = {
141
+ prf: OpfsSkPrfMaterial;
142
+ credential: PublicKeyCredential;
143
+ };
144
+ /**
145
+ * Trigger WebAuthn create/get with `userVerification: "required"`.
146
+ * create() sends `prf: {}` (enable only — salt/eval in options breaks Safari).
147
+ * get() sends `prf.eval.first` using the RP salt.
148
+ */
149
+ declare function opfsSkTriggerWebAuthn(input: {
150
+ mode: "create" | "get";
151
+ publicKey: PublicKeyCredentialCreationOptions | PublicKeyCredentialRequestOptions;
152
+ salt: Uint8Array;
153
+ }): Promise<OpfsSkWebAuthnHandshake>;
154
+ //#endregion
63
155
  //#region src/slhdsa.d.ts
64
156
  declare function loadSlhDsa128(): Promise<IFnDsa>;
65
157
  declare function loadSlhDsa192(): Promise<IFnDsa>;
@@ -91,25 +183,30 @@ declare function loadSqisignLvl5(): Promise<IFnDsa>;
91
183
  //#endregion
92
184
  //#region src/sqisign-kat-lvl1.d.ts
93
185
  /**
94
- * NIST-style KAT verify vectors (count = 0) from upstream the-sqisign `.rsp` files.
95
- * File name is historical (lvl1); exports cover L1, L3, and L5.
186
+ * NIST-style KAT verify vectors (count = 0) from upstream the-sqisign `nist-v3`
187
+ * response files (`KAT/PQCsignKAT_{270,417,549}_SQIsign_p{324_3,500_27,664_17}.rsp`).
188
+ * File name is historical (lvl1); exports cover L1 / p324_3, L3 / p500_27, and L5 / p664_17.
96
189
  * Used for fast verify-only tests (reference keygen/sign KAT are too slow for default CI).
190
+ *
191
+ * Count = 0 has `mlen = 33` and `smlen = CRYPTO_BYTES + 33`. The signed
192
+ * message is the remainder of `sm` after `CRYPTO_BYTES` (same 33 bytes as
193
+ * the `.rsp` `msg =` field, ending in `…556ac8`).
97
194
  */
98
- declare const SQISIGN_LVL1_KAT0_PK_HEX = "07CCD21425136F6E865E497D2D4D208F0054AD81372066E817480787AAF7B2029550C89E892D618CE3230F23510BFBE68FCCDDAEA51DB1436B462ADFAF008A010B";
195
+ declare const SQISIGN_LVL1_KAT0_PK_HEX = "AA943594EB7DCB5EEEBE30D1D266941B110C034804A958A151F308E8A3DFE05B4FEDF8D12FA25DA215CA2EA5E7E346810A30D23E62C01536DAD9901901D1C72A81E912436CB95C0ED921300A9F1017309B2905";
99
196
  /** `sm` from the KAT file (signature || message). */
100
- declare const SQISIGN_LVL1_KAT0_SM_HEX = "84228651F271B0F39F2F19F2E8718F31ED3365AC9E5CB303AFE663D0CFC11F0455D891B0CA6C7E653F9BA2667730BB77BEFE1B1A31828404284AF8FD7BAACC010001D974B5CA671FF65708D8B462A5A84A1443EE9B5FED7218767C9D85CEED04DB0A69A2F6EC3BE835B3B2624B9A0DF68837AD00BCACC27D1EC806A44840267471D86EFF3447018ADB0A6551EE8322AB30010202D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
197
+ declare const SQISIGN_LVL1_KAT0_SM_HEX = "AF9119C1D62766FE4FC73791F2DFE76016E57EED4FC02D9E1A34244262CFF1A352BFE6D09A98EEDB2E0C04E419B973696F5C9F12135565EE410B05CB9B9DB2655218CA918D151DA2B36D5A14510D9F6CC729D1EBCF6D05702826D5A7013998E33A1750117E4D665FFDD21ED048147A2F5F7955D463AF8CB53A673F66AE0DD5380F186302369A07D48FFDE881F955A871DDC372ACD4A6401884530B6835FD5A050EEA188026474533AFA387C4CC966CEF0D81EC694F3C90E2CEE6C6C0CB0EBF82682562D6D7D80D02D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
101
198
  /** Detached signature bytes (first `CRYPTO_BYTES` of `sm`). */
102
199
  declare const SQISIGN_LVL1_KAT0_SIG_HEX: string;
103
200
  /** Message bytes (remainder of `sm` after the signature). */
104
201
  declare const SQISIGN_LVL1_KAT0_MSG_HEX: string;
105
202
  /** NIST-style KAT vector for SQIsign level 3 (count = 0). */
106
- declare const SQISIGN_LVL3_KAT0_PK_HEX = "C32377D6F6D70729884A7F6877EF4791E35D21F751A3E96DE23F9A7A3C01BCD8A5F146DC19E4E2AC63007457F97D8A40EE84AEE7564CA9A7FBE6200FD3E5E55901BFC60EB25C50D39F5C91C96510556BAA22028DF76360841721A601D65E8D0F06";
107
- declare const SQISIGN_LVL3_KAT0_SM_HEX = "0868CFBF275B8E7B19BF597D658D62CC913B9B2933E30A297288FBE687F6F6B8AC8AF7AA007F191386BB1A203CDDBC2BDB42792D05DA69A4507073D12B0BDC47E2B36BC4BA45C68791918281E578F2DC14294504726DCD4CA4C4565FBB89A12800048C7B84746A2CBD8247248E248B70B51AE91994957857692A028D8F5CABABFC91E4BF1C5D350219A0189C57DE4A7710D29E0364C79B2188449EC0397359430D594C7B5980CC67551933A902D3C11F0FBD6DC39711D3E1F501159EE7FB85CE81B4CE24E1016006567DF469315D513E73F69F6301664E6449AF9DCEB4000D15D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
203
+ declare const SQISIGN_LVL3_KAT0_PK_HEX = "120516638BDB039F8EF434D76D76EEF56F2C037B50F7ADEE93406DBDDF66522741D1B2C6C5FC1D9C5716D958B6FA65FBDB954DAD121A74621E8E6B38FB6F5A01AD41CECF084BC914E4CD93D3E2BE6A2445F13D6C7D0BD3595C30D4F6C607B90D3CABAE3528656570D1FBEE620C2BD02FE1F7D919DDAD183F6BDB14981D06910113";
204
+ declare const SQISIGN_LVL3_KAT0_SM_HEX = "0DD29C66B2D5C521CF9B77E84986C1CBD7BA2A9DB1CB4DC2C3C95EA86960D8F3E9013C86A39AF926DB126DF33A32F41B239D091D54475263A5DCCB06D29C980014EF29BD87C65F1D0F52AB25227C1B87C7D2499CDE2B4831B42555CEDFB4AD3FD3F4D366E83407A93603617843A545805F6323BB0F4D7779849B621E2460850137910E07515F966E11A5A6A8267DFF3D30B696286812353C706A1B7F302D86846591EB5A4F51308F1960FCB0C33A35A1616C2594B3637EB499EC924493BE9C580BB75E159EB8F293A08BC38373C110E6CB6AA1E5B17C4A5B6B0792FE31A1788B4E535F8AA82C90F684B93C64FAA671BD5BA50B50405C91568CDCD818AFD4444CC7A34821D485CF67D4D72EF2B9786D8DCE77B598ACEC2B61C504203156E084364626A1AC1CC478F79D0EF6E27E7CDCFF0A09D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
108
205
  declare const SQISIGN_LVL3_KAT0_SIG_HEX: string;
109
206
  declare const SQISIGN_LVL3_KAT0_MSG_HEX: string;
110
207
  /** NIST-style KAT vector for SQIsign level 5 (count = 0). */
111
- declare const SQISIGN_LVL5_KAT0_PK_HEX = "86FFA3B0F73D55A64D13C6F89F28D75FD17C5E2368E1D451127C16D1A97CDB440E20333A233AD2F8E4D70187C8AE31602049ADE949A87F95E79DA4C456F5D400B2485A96D04708A2F30046812B8D65A3BFBFDED0DD6563462F9E2BCE760CD753CAE8471BEC7049EF28FFEFE859C15DAC49DB959AEE99842D97A380A70DD7330106";
112
- declare const SQISIGN_LVL5_KAT0_SM_HEX = "6B8EF5D7689A1EA1CFCE9C6F7495E309E9D1D1B03E61CD97088E679C4901D0B6B6D38217F4AED6C44949B41F9AF80B43E84D0C91BDB1D00E06957BEBF30A58012AD01E52CF7906CE197AD06696F7FCF756908EA980549E7C215D089BDE7117799F628817A1B9C8FB7FEBFF7E9D9B776142460CFAAFC97D48A57E09E0DA378401000229CC8E1B94E1F2F8AFDC42066BEACE076E3E70DD01F90C4D01DAC17BEC58743532848D438A87A574D9DB940C17236AE3566281E27A99EFE5EE26E05B88A1D610A80B3AF38267D845C7FE330F199B43794A9B2E14846924127366B8F6A1F0F24D3C4B54D79DBB61B098BF32D98EA8819F7BE4A5FFBA29E88B1A996C6CDFD32B048BC2ACFFA28870181447FCC8B6F97B63C47CB013C6F3D84CBD07619A5C355B000911D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
208
+ declare const SQISIGN_LVL5_KAT0_PK_HEX = "549BB0A2966D55E5941B657E68F19F568E410CC9EB7A3D404B0C14A9FB232C53258D19E6B62D609DAB0562115954074551BCE47A2D155D73362805100DB9F0C09B98390CA19E65068A0A162EFA919B3AC00769075A4F55F8C80CB15B8111727CC0C522BB3FBA1F8FEFE573060623999270501C9F10BDA692DE97E4578DEB50F7DA513E3214112F47E6D198DD4274C4468934DF5DE2774B1C98A8FE1D1C030B8797568B209965B11008";
209
+ declare const SQISIGN_LVL5_KAT0_SM_HEX = "8C18127B477FFD59BEA23A07A4D02A4D6C9086111D98F1C5DC50F3E4BDCEC99E58203F23BA228536158843171E10B7BE4F822EF0FDCD2690F30B75906C798921FA2FDA66C958279A3DC11E21BBF5E46885710B06621F6E89E7DF3B12EC4B01D61F91E84B30398F48FD6AEAE35C66D5B866C58D74A635298D84D82736C52390375D5EB3B9E474015A5A68AF3A941E7B2C2BA475D7A9C779CF7F726F4B8D13972B28E093D4FF568310F537975EBC41683B45B1213BA8F75619507422077ABA77D2BA8535F91DEC6E94619AB005855923A7ED98A193354499831AD90141FA3E2307401A680E49198AA71DDB22A7A9B105B3F74DFEBDAB6231DF2B3DF40DE17DA57C08B9290C9F766C029C81B7680E026A60B558EBDA84B289C4068031AAF840C1DE3EA212177ED309C8F719D2383230F14654CD64D1F0EC0EBAEF2C13AFED1C02460205C212A2849877F8CF34134B7F95620B5B3137CE3AFE8F71E6D965C8CEDD7D0A38510F098D07A6A8EEEC98CA65862EEE6C4902EDA308A9A18DB4D16E0869AD9C8648EB79E64952F77D07161092696E49D214710225D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8";
113
210
  declare const SQISIGN_LVL5_KAT0_SIG_HEX: string;
114
211
  declare const SQISIGN_LVL5_KAT0_MSG_HEX: string;
115
212
  //#endregion
@@ -156,5 +253,5 @@ declare function loadMlKem512(): Promise<IMlKem>;
156
253
  /** Load ML-KEM-1024 (WASM). */
157
254
  declare function loadMlKem1024(): Promise<IMlKem>;
158
255
  //#endregion
159
- export { type BytesLike, type EncryptResult, type IFnDsa, type IMlDsa, type IMlKem, type KeyPair, MLDSA65_KAT_MSG_HEX, MLDSA65_KAT_PK_HEX, MLDSA65_KAT_SIG_HEX, MLDSA87_KAT_MSG_HEX, MLDSA87_KAT_PK_HEX, MLDSA87_KAT_SIG_HEX, type MaybePromise, type MlKemKeyPair, SLHDSA128S_KAT_MSG_HEX, SLHDSA128S_KAT_PK_HEX, SLHDSA128S_KAT_SIG_HEX, SLHDSA192S_KAT_MSG_HEX, SLHDSA192S_KAT_PK_HEX, SLHDSA192S_KAT_SIG_HEX, SLHDSA256S_KAT_MSG_HEX, SLHDSA256S_KAT_PK_HEX, SLHDSA256S_KAT_SIG_HEX, SQISIGN_LVL1_KAT0_MSG_HEX, SQISIGN_LVL1_KAT0_PK_HEX, SQISIGN_LVL1_KAT0_SIG_HEX, SQISIGN_LVL1_KAT0_SM_HEX, SQISIGN_LVL3_KAT0_MSG_HEX, SQISIGN_LVL3_KAT0_PK_HEX, SQISIGN_LVL3_KAT0_SIG_HEX, SQISIGN_LVL3_KAT0_SM_HEX, SQISIGN_LVL5_KAT0_MSG_HEX, SQISIGN_LVL5_KAT0_PK_HEX, SQISIGN_LVL5_KAT0_SIG_HEX, SQISIGN_LVL5_KAT0_SM_HEX, SQISIGN_WEBGPU_VARIANT_LABELS, type SecretLike, type SqisignBenchSteps, type SqisignWebGpuSupport, type SqisignWebGpuVariant, benchSqisignWebGpu, getSqisignWebGpuSupport, isSqisignWebGpuAvailable, loadFnDsa1024, loadFnDsa512, loadMlDsa3, loadMlDsa5, loadMlKem1024, loadMlKem512, loadMlKem768, loadSlhDsa128, loadSlhDsa192, loadSlhDsa256, loadSqisignLvl1, loadSqisignLvl1WebGpu, loadSqisignLvl3, loadSqisignLvl3WebGpu, loadSqisignLvl5, loadSqisignLvl5WebGpu, setSqisignAccelWorkerUrl };
256
+ export { type BytesLike, type EncryptResult, type IFnDsa, type IMlDsa, type IMlKem, type IOpfsSkWallet, type KeyPair, MLDSA65_KAT_MSG_HEX, MLDSA65_KAT_PK_HEX, MLDSA65_KAT_SIG_HEX, MLDSA87_KAT_MSG_HEX, MLDSA87_KAT_PK_HEX, MLDSA87_KAT_SIG_HEX, type MaybePromise, type MlKemKeyPair, OPFS_SK_ALGORITHMS, OPFS_SK_SLOT_SD_BUNDLE, OPFS_SK_WORKER_NAME, type OpfsSkAlgorithm, type OpfsSkPrfMaterial, SLHDSA128S_KAT_MSG_HEX, SLHDSA128S_KAT_PK_HEX, SLHDSA128S_KAT_SIG_HEX, SLHDSA192S_KAT_MSG_HEX, SLHDSA192S_KAT_PK_HEX, SLHDSA192S_KAT_SIG_HEX, SLHDSA256S_KAT_MSG_HEX, SLHDSA256S_KAT_PK_HEX, SLHDSA256S_KAT_SIG_HEX, SQISIGN_LVL1_KAT0_MSG_HEX, SQISIGN_LVL1_KAT0_PK_HEX, SQISIGN_LVL1_KAT0_SIG_HEX, SQISIGN_LVL1_KAT0_SM_HEX, SQISIGN_LVL3_KAT0_MSG_HEX, SQISIGN_LVL3_KAT0_PK_HEX, SQISIGN_LVL3_KAT0_SIG_HEX, SQISIGN_LVL3_KAT0_SM_HEX, SQISIGN_LVL5_KAT0_MSG_HEX, SQISIGN_LVL5_KAT0_PK_HEX, SQISIGN_LVL5_KAT0_SIG_HEX, SQISIGN_LVL5_KAT0_SM_HEX, SQISIGN_WEBGPU_VARIANT_LABELS, type SecretLike, type SqisignBenchSteps, type SqisignWebGpuSupport, type SqisignWebGpuVariant, assertBrowserSkCeremonyAllowed, assertOpfsSkCrossOriginIsolated, benchSqisignWebGpu, getSqisignWebGpuSupport, isSqisignWebGpuAvailable, loadFnDsa1024, loadFnDsa512, loadMlDsa3, loadMlDsa5, loadMlKem1024, loadMlKem512, loadMlKem768, loadOpfsSkWallet, loadSlhDsa128, loadSlhDsa192, loadSlhDsa256, loadSqisignLvl1, loadSqisignLvl1WebGpu, loadSqisignLvl3, loadSqisignLvl3WebGpu, loadSqisignLvl5, loadSqisignLvl5WebGpu, opfsSkPrfMaterialFromCeremony, opfsSkPrfOutputFromExtensionResults, opfsSkTriggerWebAuthn, setOpfsSkWorkerUrl, setSqisignAccelWorkerUrl };
160
257
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/fndsa.ts","../src/mldsa.ts","../src/mldsa-kat.ts","../src/slhdsa.ts","../src/slhdsa-kat.ts","../src/sqisign.ts","../src/sqisign-kat-lvl1.ts","../src/sqisign-accel-env.ts","../src/sqisign-webgpu.ts","../src/index.ts"],"mappings":";KAAY,aAAa,KAAK,IAAI,QAAQ;;KAG9B,YAAY,aAAa;;;;;UAMpB;EAChB,IAAI,oCAAoC,aAAa;;;;;UAMrC;EAChB,IAAI,oCAAoC,aAAa;;UAGrC;EAEhB,IAAI,+BAA+B,aAAa;;;KAIrC,aAAa,YAAY;UAEpB;EAChB,WAAW;EACX,QAAQ,YAAY,aAAa,aAAa;EAC9C,QACC,YAAY,aAAa,eACzB,aAAa,aAAa,aACxB,QAAQ;EACX,iBACC,QAAQ,aAAa,YAAY,yBAC/B;EACH,eACC,iBACA,QAAQ,aAAa,cACnB,QAAQ;EACX,eACC,kBAAkB,YAClB,QAAQ,aAAa,cACnB;EACH;;KAQW;UAEK;EAChB,WAAW;EACX,KAAK,SAAS,WAAW,aAAa,YAAY,QAAQ;EAC1D,OACC,WAAW,WACX,SAAS,WACT,YAAY,YACV;EACH,iBAAiB,OAAO;;KAGb,SAAS;;;iBC0JC,gBAAgB,QAAQ;iBAKxB,iBAAiB,QAAQ;;;iBCLzB,cAAc,QAAQ;iBAKtB,cAAc,QAAQ;;;;;;;;cC5N/B;cAEA;cAEA;;cAIA;cAEA;cAEA;;;iBC6CS,iBAAiB,QAAQ;iBAIzB,iBAAiB,QAAQ;iBAIzB,iBAAiB,QAAQ;;;;;;;;;cChElC;cAEA;cAEA;;cAIA;cAEA;cAEA;;cAIA;cAEA;cAEA;;;iBCuPS,mBAAmB,QAAQ;iBAK3B,mBAAmB,QAAQ;iBAK3B,mBAAmB,QAAQ;;;;;;;;cCvRpC;;cAIA;;cAIA;;cAGA;;cAGA;cAEA;cAEA;cACA;;cAGA;cAEA;cAEA;cACA;;;KChCD;EACX;EACA;EACA;EACA;EACA;;cAGY;;;;;KAMD,oCAAoC;iBAUhC,2BAA2B;iBAyD3B;;;;iBCRA,yBAAyB;KA6O7B;EACX;EACA;EACA;;iBAGqB,mBACrB,SAAS,gBACT,mBACE;EACF;EACA;EACA;EACA,OAAO;;iBAkCc,yBAAyB,QAAQ;iBAIjC,yBAAyB,QAAQ;iBAIjC,yBAAyB,QAAQ;;;;iBCnCjC,gBAAgB,QAAQ;;iBAKxB,gBAAgB,QAAQ;;iBAKxB,iBAAiB,QAAQ"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/fndsa.ts","../src/mldsa.ts","../src/mldsa-kat.ts","../src/opfs-sk/algorithms.ts","../src/opfs-sk/browser-gate.ts","../src/opfs-sk/isolate.ts","../src/opfs-sk/lifecycle.ts","../src/opfs-sk/prf.ts","../src/opfs-sk/wallet.ts","../src/opfs-sk/webauthn.ts","../src/slhdsa.ts","../src/slhdsa-kat.ts","../src/sqisign.ts","../src/sqisign-kat-lvl1.ts","../src/sqisign-accel-env.ts","../src/sqisign-webgpu.ts","../src/index.ts"],"mappings":";KAAY,aAAa,KAAK,IAAI,QAAQ;;KAG9B,YAAY,aAAa;;;;;UAMpB;EAChB,IAAI,oCAAoC,aAAa;;;;;UAMrC;EAChB,IAAI,oCAAoC,aAAa;;UAGrC;EAEhB,IAAI,+BAA+B,aAAa;;;KAIrC,aAAa,YAAY;UAEpB;EAChB,WAAW;EACX,QAAQ,YAAY,aAAa,aAAa;EAC9C,QACC,YAAY,aAAa,eACzB,aAAa,aAAa,aACxB,QAAQ;EACX,iBACC,QAAQ,aAAa,YAAY,yBAC/B;EACH,eACC,iBACA,QAAQ,aAAa,cACnB,QAAQ;EACX,eACC,kBAAkB,YAClB,QAAQ,aAAa,cACnB;EACH;;KAQW;UAEK;EAChB,WAAW;EACX,KAAK,SAAS,WAAW,aAAa,YAAY,QAAQ;EAC1D,OACC,WAAW,WACX,SAAS,WACT,YAAY,YACV;EACH,iBAAiB,OAAO;;KAGb,SAAS;;;iBC6KC,gBAAgB,QAAQ;iBAKxB,iBAAiB,QAAQ;;;iBCLzB,cAAc,QAAQ;iBAKtB,cAAc,QAAQ;;;;;;;;cC/O/B;cAEA;cAEA;;cAIA;cAEA;cAEA;;;;;;;;cCHA;KAgBD,0BAA0B;;;;cC9BzB;;cAGA;;;;;;iBAwCG;;;;;;;iBC7BA;;;KCHJ;EACX,WAAW;EACX,MAAM;;EAEN;;;;;;;;;iBCOe,oCACf,4BACE;;;;;iBAiCa,8BAA8B;EAC7C;EACA,MAAM;EACN;IACG;;;KClDQ;EACX,OACC,WAAW,iBACX,KAAK,mBACL;IAAY;MACV;IAAU,YAAY;;EACzB,KACC,WAAW,iBACX,SAAS,YACT,KAAK,mBACL;IAAY;MACV,QAAQ;EACX,OACC,WAAW,iBACX,WAAW,YACX,SAAS,YACT,YAAY,aACV;EACH,OAAO,WAAW,iBAAiB,gBAAgB;EACnD,UAAU,WAAW,iBAAiB,gBAAgB,QAAQ;;;iBAgB/C,mBAAmB;;;;;;iBA0Ob,oBAAoB,QAAQ;;;KC9NtC;EACX,KAAK;EACL,YAAY;;;;;;;iBAQS,sBAAsB;EAC3C;EACA,WACG,qCACA;EACH,MAAM;IACH,QAAQ;;;iBCTU,iBAAiB,QAAQ;iBAIzB,iBAAiB,QAAQ;iBAIzB,iBAAiB,QAAQ;;;;;;;;;cCnElC;cAEA;cAEA;;cAIA;cAEA;cAEA;;cAIA;cAEA;cAEA;;;iBC0QS,mBAAmB,QAAQ;iBAK3B,mBAAmB,QAAQ;iBAK3B,mBAAmB,QAAQ;;;;;;;;;;;;;cCrSpC;;cAIA;;cAIA;;cAGA;;cAGA;cAEA;cAEA;cACA;;cAGA;cAEA;cAEA;cACA;;;KCrCD;EACX;EACA;EACA;EACA;EACA;;cAGY;;;;;KAMD,oCAAoC;iBAUhC,2BAA2B;iBAyD3B;;;;iBCPA,yBAAyB;KA+O7B;EACX;EACA;EACA;;iBAGqB,mBACrB,SAAS,gBACT,mBACE;EACF;EACA;EACA;EACA,OAAO;;iBAmCc,yBAAyB,QAAQ;iBAIjC,yBAAyB,QAAQ;iBAIjC,yBAAyB,QAAQ;;;;iBChBjC,gBAAgB,QAAQ;;iBAKxB,gBAAgB,QAAQ;;iBAKxB,iBAAiB,QAAQ"}