@blamejs/blamejs-shop 0.5.12 → 0.5.14

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.
Files changed (522) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/asset-manifest.json +1 -1
  3. package/lib/sales-tax-filings.js +143 -0
  4. package/lib/vendor/MANIFEST.json +632 -416
  5. package/lib/vendor/blamejs/.clusterfuzzlite/Dockerfile +21 -10
  6. package/lib/vendor/blamejs/.clusterfuzzlite/build.sh +30 -9
  7. package/lib/vendor/blamejs/.github/dependabot.yml +8 -0
  8. package/lib/vendor/blamejs/.github/workflows/actions-lint.yml +3 -3
  9. package/lib/vendor/blamejs/.github/workflows/cflite_batch.yml +7 -2
  10. package/lib/vendor/blamejs/.github/workflows/cflite_pr.yml +7 -2
  11. package/lib/vendor/blamejs/.github/workflows/ci.yml +21 -21
  12. package/lib/vendor/blamejs/.github/workflows/codeql.yml +3 -3
  13. package/lib/vendor/blamejs/.github/workflows/npm-publish.yml +4 -4
  14. package/lib/vendor/blamejs/.github/workflows/release-container.yml +7 -7
  15. package/lib/vendor/blamejs/.github/workflows/scorecard.yml +3 -3
  16. package/lib/vendor/blamejs/.github/workflows/sha-to-tag-verify.yml +1 -1
  17. package/lib/vendor/blamejs/.gitignore +2 -0
  18. package/lib/vendor/blamejs/CHANGELOG.md +122 -0
  19. package/lib/vendor/blamejs/NOTICE +26 -1
  20. package/lib/vendor/blamejs/SECURITY.md +1 -1
  21. package/lib/vendor/blamejs/api-snapshot.json +207 -5
  22. package/lib/vendor/blamejs/docker/keycloak/realm-blamejs-test.json +29 -0
  23. package/lib/vendor/blamejs/examples/wiki/DEPLOY.md +1 -0
  24. package/lib/vendor/blamejs/examples/wiki/lib/build-app.js +31 -0
  25. package/lib/vendor/blamejs/examples/wiki/lib/source-comment-block-validator.js +109 -0
  26. package/lib/vendor/blamejs/examples/wiki/nginx.conf +106 -0
  27. package/lib/vendor/blamejs/examples/wiki/package-lock.json +1 -1
  28. package/lib/vendor/blamejs/examples/wiki/test/e2e.js +92 -0
  29. package/lib/vendor/blamejs/fuzz/asn1-der.fuzz.js +28 -0
  30. package/lib/vendor/blamejs/fuzz/cms-codec.fuzz.js +17 -0
  31. package/lib/vendor/blamejs/fuzz/link-header.fuzz.js +18 -0
  32. package/lib/vendor/blamejs/index.js +6 -0
  33. package/lib/vendor/blamejs/lib/a2a.js +4 -4
  34. package/lib/vendor/blamejs/lib/agent-idempotency.js +18 -2
  35. package/lib/vendor/blamejs/lib/agent-saga.js +36 -8
  36. package/lib/vendor/blamejs/lib/agent-snapshot.js +63 -6
  37. package/lib/vendor/blamejs/lib/app-shutdown.js +23 -20
  38. package/lib/vendor/blamejs/lib/archive-read.js +8 -0
  39. package/lib/vendor/blamejs/lib/archive-tar.js +12 -2
  40. package/lib/vendor/blamejs/lib/arg-parser.js +49 -5
  41. package/lib/vendor/blamejs/lib/asn1-der.js +12 -0
  42. package/lib/vendor/blamejs/lib/audit-sign.js +47 -1
  43. package/lib/vendor/blamejs/lib/audit.js +71 -8
  44. package/lib/vendor/blamejs/lib/auth/ciba.js +14 -2
  45. package/lib/vendor/blamejs/lib/auth/fido-mds3.js +58 -47
  46. package/lib/vendor/blamejs/lib/auth/jwt.js +34 -0
  47. package/lib/vendor/blamejs/lib/auth/oauth.js +90 -13
  48. package/lib/vendor/blamejs/lib/auth/oid4vci.js +20 -17
  49. package/lib/vendor/blamejs/lib/auth/openid-federation.js +214 -23
  50. package/lib/vendor/blamejs/lib/auth/saml.js +38 -20
  51. package/lib/vendor/blamejs/lib/auth/sd-jwt-vc.js +10 -4
  52. package/lib/vendor/blamejs/lib/backup/bundle.js +13 -3
  53. package/lib/vendor/blamejs/lib/backup/index.js +16 -5
  54. package/lib/vendor/blamejs/lib/backup/manifest.js +18 -5
  55. package/lib/vendor/blamejs/lib/base32.js +21 -0
  56. package/lib/vendor/blamejs/lib/break-glass.js +19 -10
  57. package/lib/vendor/blamejs/lib/bundler.js +5 -1
  58. package/lib/vendor/blamejs/lib/cache-status.js +3 -7
  59. package/lib/vendor/blamejs/lib/calendar.js +21 -1
  60. package/lib/vendor/blamejs/lib/cbor.js +12 -1
  61. package/lib/vendor/blamejs/lib/cert.js +29 -11
  62. package/lib/vendor/blamejs/lib/cli.js +94 -24
  63. package/lib/vendor/blamejs/lib/cloud-events.js +2 -2
  64. package/lib/vendor/blamejs/lib/cluster-provider-db.js +13 -3
  65. package/lib/vendor/blamejs/lib/codepoint-class.js +85 -0
  66. package/lib/vendor/blamejs/lib/compliance-ai-act-prohibited.js +8 -4
  67. package/lib/vendor/blamejs/lib/compliance-ai-act-transparency.js +19 -4
  68. package/lib/vendor/blamejs/lib/compliance-ai-act.js +6 -8
  69. package/lib/vendor/blamejs/lib/content-credentials.js +1 -1
  70. package/lib/vendor/blamejs/lib/content-digest.js +2 -1
  71. package/lib/vendor/blamejs/lib/cookies.js +13 -3
  72. package/lib/vendor/blamejs/lib/cose.js +31 -16
  73. package/lib/vendor/blamejs/lib/crypto-field.js +32 -0
  74. package/lib/vendor/blamejs/lib/crypto-oprf.js +11 -2
  75. package/lib/vendor/blamejs/lib/crypto-xwing.js +22 -4
  76. package/lib/vendor/blamejs/lib/crypto.js +314 -19
  77. package/lib/vendor/blamejs/lib/csp.js +11 -3
  78. package/lib/vendor/blamejs/lib/daemon.js +270 -24
  79. package/lib/vendor/blamejs/lib/dark-patterns.js +5 -2
  80. package/lib/vendor/blamejs/lib/db-declare-view.js +2 -2
  81. package/lib/vendor/blamejs/lib/db-query.js +34 -7
  82. package/lib/vendor/blamejs/lib/db.js +18 -6
  83. package/lib/vendor/blamejs/lib/dbsc.js +17 -0
  84. package/lib/vendor/blamejs/lib/dev.js +21 -2
  85. package/lib/vendor/blamejs/lib/dsr.js +157 -102
  86. package/lib/vendor/blamejs/lib/external-db.js +41 -2
  87. package/lib/vendor/blamejs/lib/file-upload.js +25 -7
  88. package/lib/vendor/blamejs/lib/flag-providers.js +27 -15
  89. package/lib/vendor/blamejs/lib/forms.js +113 -27
  90. package/lib/vendor/blamejs/lib/gate-contract.js +23 -10
  91. package/lib/vendor/blamejs/lib/gdpr-ropa.js +8 -1
  92. package/lib/vendor/blamejs/lib/guard-agent-registry.js +1 -1
  93. package/lib/vendor/blamejs/lib/guard-archive.js +2 -2
  94. package/lib/vendor/blamejs/lib/guard-cidr.js +27 -1
  95. package/lib/vendor/blamejs/lib/guard-graphql.js +30 -11
  96. package/lib/vendor/blamejs/lib/guard-html.js +26 -53
  97. package/lib/vendor/blamejs/lib/guard-image.js +24 -5
  98. package/lib/vendor/blamejs/lib/guard-imap-command.js +10 -2
  99. package/lib/vendor/blamejs/lib/guard-jmap.js +19 -3
  100. package/lib/vendor/blamejs/lib/guard-jwt.js +18 -2
  101. package/lib/vendor/blamejs/lib/guard-list-unsubscribe.js +2 -2
  102. package/lib/vendor/blamejs/lib/guard-managesieve-command.js +10 -2
  103. package/lib/vendor/blamejs/lib/guard-markdown.js +11 -24
  104. package/lib/vendor/blamejs/lib/guard-pdf.js +18 -2
  105. package/lib/vendor/blamejs/lib/guard-pop3-command.js +10 -2
  106. package/lib/vendor/blamejs/lib/guard-regex.js +8 -5
  107. package/lib/vendor/blamejs/lib/guard-svg.js +31 -32
  108. package/lib/vendor/blamejs/lib/guard-time.js +1 -1
  109. package/lib/vendor/blamejs/lib/guard-uuid.js +2 -2
  110. package/lib/vendor/blamejs/lib/html-balance.js +3 -3
  111. package/lib/vendor/blamejs/lib/http-client-cache.js +82 -4
  112. package/lib/vendor/blamejs/lib/http-client-cookie-jar.js +16 -1
  113. package/lib/vendor/blamejs/lib/http-client.js +39 -7
  114. package/lib/vendor/blamejs/lib/http-message-signature.js +35 -1
  115. package/lib/vendor/blamejs/lib/i18n-messageformat.js +31 -6
  116. package/lib/vendor/blamejs/lib/i18n.js +35 -21
  117. package/lib/vendor/blamejs/lib/incident-report.js +8 -1
  118. package/lib/vendor/blamejs/lib/ip-utils.js +11 -1
  119. package/lib/vendor/blamejs/lib/json-path.js +23 -1
  120. package/lib/vendor/blamejs/lib/jwk.js +20 -3
  121. package/lib/vendor/blamejs/lib/link-header.js +2 -1
  122. package/lib/vendor/blamejs/lib/log-stream-otlp-grpc.js +5 -1
  123. package/lib/vendor/blamejs/lib/log-stream-otlp.js +5 -1
  124. package/lib/vendor/blamejs/lib/log-stream.js +8 -3
  125. package/lib/vendor/blamejs/lib/mail-auth.js +123 -22
  126. package/lib/vendor/blamejs/lib/mail-bimi.js +1 -1
  127. package/lib/vendor/blamejs/lib/mail-bounce.js +8 -0
  128. package/lib/vendor/blamejs/lib/mail-crypto-pgp.js +46 -10
  129. package/lib/vendor/blamejs/lib/mail-dav.js +22 -3
  130. package/lib/vendor/blamejs/lib/mail-dkim.js +96 -30
  131. package/lib/vendor/blamejs/lib/mail-helo.js +6 -1
  132. package/lib/vendor/blamejs/lib/mail-scan.js +23 -16
  133. package/lib/vendor/blamejs/lib/mail-send-deliver.js +34 -8
  134. package/lib/vendor/blamejs/lib/mail-server-imap.js +3 -4
  135. package/lib/vendor/blamejs/lib/mail-server-managesieve.js +7 -11
  136. package/lib/vendor/blamejs/lib/mail-server-mx.js +93 -7
  137. package/lib/vendor/blamejs/lib/mail-server-registry.js +8 -2
  138. package/lib/vendor/blamejs/lib/mail.js +15 -5
  139. package/lib/vendor/blamejs/lib/metrics.js +268 -63
  140. package/lib/vendor/blamejs/lib/middleware/age-gate.js +7 -1
  141. package/lib/vendor/blamejs/lib/middleware/asyncapi-serve.js +1 -1
  142. package/lib/vendor/blamejs/lib/middleware/body-parser.js +19 -4
  143. package/lib/vendor/blamejs/lib/middleware/bot-guard.js +5 -9
  144. package/lib/vendor/blamejs/lib/middleware/csp-report.js +40 -8
  145. package/lib/vendor/blamejs/lib/middleware/csrf-protect.js +24 -10
  146. package/lib/vendor/blamejs/lib/middleware/dpop.js +10 -5
  147. package/lib/vendor/blamejs/lib/middleware/index.js +6 -1
  148. package/lib/vendor/blamejs/lib/middleware/nel.js +1 -1
  149. package/lib/vendor/blamejs/lib/middleware/openapi-serve.js +1 -1
  150. package/lib/vendor/blamejs/lib/middleware/rate-limit.js +12 -1
  151. package/lib/vendor/blamejs/lib/middleware/require-bound-key.js +1 -1
  152. package/lib/vendor/blamejs/lib/middleware/scim-server.js +1 -1
  153. package/lib/vendor/blamejs/lib/middleware/tus-upload.js +6 -2
  154. package/lib/vendor/blamejs/lib/mtls-ca.js +18 -2
  155. package/lib/vendor/blamejs/lib/network-dns-resolver.js +11 -1
  156. package/lib/vendor/blamejs/lib/network-dns.js +21 -2
  157. package/lib/vendor/blamejs/lib/network-tls.js +69 -7
  158. package/lib/vendor/blamejs/lib/nonce-store.js +9 -1
  159. package/lib/vendor/blamejs/lib/object-store/gcs.js +7 -0
  160. package/lib/vendor/blamejs/lib/object-store/sigv4.js +31 -0
  161. package/lib/vendor/blamejs/lib/observability-otlp-exporter.js +1 -1
  162. package/lib/vendor/blamejs/lib/outbox.js +1 -1
  163. package/lib/vendor/blamejs/lib/parsers/safe-ini.js +9 -1
  164. package/lib/vendor/blamejs/lib/parsers/safe-toml.js +10 -1
  165. package/lib/vendor/blamejs/lib/permissions.js +6 -3
  166. package/lib/vendor/blamejs/lib/pid-probe.js +55 -0
  167. package/lib/vendor/blamejs/lib/pqc-agent.js +8 -1
  168. package/lib/vendor/blamejs/lib/pqc-software.js +3 -3
  169. package/lib/vendor/blamejs/lib/pubsub.js +20 -9
  170. package/lib/vendor/blamejs/lib/queue-local.js +8 -1
  171. package/lib/vendor/blamejs/lib/queue-redis.js +5 -0
  172. package/lib/vendor/blamejs/lib/redact.js +54 -0
  173. package/lib/vendor/blamejs/lib/restore-bundle.js +10 -2
  174. package/lib/vendor/blamejs/lib/restore.js +19 -0
  175. package/lib/vendor/blamejs/lib/retention.js +12 -4
  176. package/lib/vendor/blamejs/lib/router.js +60 -6
  177. package/lib/vendor/blamejs/lib/safe-buffer.js +69 -0
  178. package/lib/vendor/blamejs/lib/safe-decompress.js +8 -2
  179. package/lib/vendor/blamejs/lib/safe-dns.js +25 -20
  180. package/lib/vendor/blamejs/lib/safe-ical.js +7 -3
  181. package/lib/vendor/blamejs/lib/safe-mime.js +12 -1
  182. package/lib/vendor/blamejs/lib/safe-object.js +80 -0
  183. package/lib/vendor/blamejs/lib/safe-path.js +52 -4
  184. package/lib/vendor/blamejs/lib/safe-redirect.js +10 -2
  185. package/lib/vendor/blamejs/lib/safe-schema.js +4 -1
  186. package/lib/vendor/blamejs/lib/safe-sieve.js +33 -1
  187. package/lib/vendor/blamejs/lib/safe-sql.js +88 -0
  188. package/lib/vendor/blamejs/lib/safe-vcard.js +7 -3
  189. package/lib/vendor/blamejs/lib/scheduler.js +8 -1
  190. package/lib/vendor/blamejs/lib/security-assert.js +6 -6
  191. package/lib/vendor/blamejs/lib/self-update-standalone-verifier.js +74 -27
  192. package/lib/vendor/blamejs/lib/self-update.js +517 -87
  193. package/lib/vendor/blamejs/lib/server-timing.js +2 -4
  194. package/lib/vendor/blamejs/lib/session.js +34 -12
  195. package/lib/vendor/blamejs/lib/sql.js +15 -1
  196. package/lib/vendor/blamejs/lib/ssrf-guard.js +52 -0
  197. package/lib/vendor/blamejs/lib/static.js +55 -13
  198. package/lib/vendor/blamejs/lib/storage.js +8 -2
  199. package/lib/vendor/blamejs/lib/subject.js +6 -1
  200. package/lib/vendor/blamejs/lib/tenant-quota.js +52 -13
  201. package/lib/vendor/blamejs/lib/tls-exporter.js +3 -3
  202. package/lib/vendor/blamejs/lib/tsa.js +34 -13
  203. package/lib/vendor/blamejs/lib/uri-template.js +8 -1
  204. package/lib/vendor/blamejs/lib/vault/index.js +13 -0
  205. package/lib/vendor/blamejs/lib/vc.js +44 -5
  206. package/lib/vendor/blamejs/lib/vendor/MANIFEST.json +26 -26
  207. package/lib/vendor/blamejs/lib/vendor/noble-ciphers.cjs +792 -1
  208. package/lib/vendor/blamejs/lib/vendor/noble-curves.cjs +3443 -1
  209. package/lib/vendor/blamejs/lib/vendor/noble-post-quantum.cjs +2737 -1
  210. package/lib/vendor/blamejs/lib/vendor/pki.cjs +39550 -13
  211. package/lib/vendor/blamejs/lib/vendor/public-suffix-list.dat +55 -53
  212. package/lib/vendor/blamejs/lib/vendor/public-suffix-list.data.js +5551 -5554
  213. package/lib/vendor/blamejs/lib/vendor/simplewebauthn-server.cjs +22459 -32
  214. package/lib/vendor/blamejs/lib/watcher.js +89 -17
  215. package/lib/vendor/blamejs/lib/webhook-dispatcher.js +25 -3
  216. package/lib/vendor/blamejs/lib/webhook.js +12 -2
  217. package/lib/vendor/blamejs/lib/ws-client.js +32 -1
  218. package/lib/vendor/blamejs/lib/xml-c14n.js +29 -1
  219. package/lib/vendor/blamejs/oss-fuzz/projects/blamejs/Dockerfile +1 -1
  220. package/lib/vendor/blamejs/package-lock.json +2 -2
  221. package/lib/vendor/blamejs/package.json +1 -1
  222. package/lib/vendor/blamejs/release-notes/v0.16.x.json +1462 -0
  223. package/lib/vendor/blamejs/release-notes/v0.17.0.json +31 -0
  224. package/lib/vendor/blamejs/release-notes/v0.17.1.json +31 -0
  225. package/lib/vendor/blamejs/release-notes/v0.17.10.json +30 -0
  226. package/lib/vendor/blamejs/release-notes/v0.17.11.json +22 -0
  227. package/lib/vendor/blamejs/release-notes/v0.17.12.json +18 -0
  228. package/lib/vendor/blamejs/release-notes/v0.17.13.json +77 -0
  229. package/lib/vendor/blamejs/release-notes/v0.17.14.json +40 -0
  230. package/lib/vendor/blamejs/release-notes/v0.17.15.json +18 -0
  231. package/lib/vendor/blamejs/release-notes/v0.17.16.json +27 -0
  232. package/lib/vendor/blamejs/release-notes/v0.17.17.json +31 -0
  233. package/lib/vendor/blamejs/release-notes/v0.17.18.json +18 -0
  234. package/lib/vendor/blamejs/release-notes/v0.17.19.json +18 -0
  235. package/lib/vendor/blamejs/release-notes/v0.17.2.json +26 -0
  236. package/lib/vendor/blamejs/release-notes/v0.17.20.json +43 -0
  237. package/lib/vendor/blamejs/release-notes/v0.17.21.json +26 -0
  238. package/lib/vendor/blamejs/release-notes/v0.17.22.json +18 -0
  239. package/lib/vendor/blamejs/release-notes/v0.17.3.json +43 -0
  240. package/lib/vendor/blamejs/release-notes/v0.17.4.json +35 -0
  241. package/lib/vendor/blamejs/release-notes/v0.17.5.json +26 -0
  242. package/lib/vendor/blamejs/release-notes/v0.17.6.json +26 -0
  243. package/lib/vendor/blamejs/release-notes/v0.17.7.json +35 -0
  244. package/lib/vendor/blamejs/release-notes/v0.17.8.json +22 -0
  245. package/lib/vendor/blamejs/release-notes/v0.17.9.json +26 -0
  246. package/lib/vendor/blamejs/scripts/validate-source-comment-blocks.js +4 -0
  247. package/lib/vendor/blamejs/scripts/vendor-update.sh +293 -9
  248. package/lib/vendor/blamejs/socket.yml +94 -0
  249. package/lib/vendor/blamejs/test/00-primitives.js +605 -0
  250. package/lib/vendor/blamejs/test/helpers/drivers.js +12 -9
  251. package/lib/vendor/blamejs/test/integration/audit-stack-mysql.test.js +90 -1
  252. package/lib/vendor/blamejs/test/integration/audit-stack-postgres.test.js +122 -1
  253. package/lib/vendor/blamejs/test/integration/data-layer-mysql.test.js +30 -0
  254. package/lib/vendor/blamejs/test/integration/data-layer-pg.test.js +29 -0
  255. package/lib/vendor/blamejs/test/integration/dsr-cluster-mysql.test.js +479 -0
  256. package/lib/vendor/blamejs/test/integration/dsr-cluster-pg.test.js +487 -0
  257. package/lib/vendor/blamejs/test/integration/federation-auth.test.js +313 -5
  258. package/lib/vendor/blamejs/test/integration/mail-dkim.test.js +80 -0
  259. package/lib/vendor/blamejs/test/integration/openid-federation-chain.test.js +275 -0
  260. package/lib/vendor/blamejs/test/integration/webhook-dispatcher-pg.test.js +96 -0
  261. package/lib/vendor/blamejs/test/layer-0-primitives/a2a-tasks.test.js +401 -0
  262. package/lib/vendor/blamejs/test/layer-0-primitives/acme.test.js +1649 -2
  263. package/lib/vendor/blamejs/test/layer-0-primitives/age-gate.test.js +33 -0
  264. package/lib/vendor/blamejs/test/layer-0-primitives/agent-idempotency.test.js +0 -0
  265. package/lib/vendor/blamejs/test/layer-0-primitives/agent-saga.test.js +60 -0
  266. package/lib/vendor/blamejs/test/layer-0-primitives/agent-snapshot.test.js +524 -0
  267. package/lib/vendor/blamejs/test/layer-0-primitives/api-encrypt.test.js +891 -0
  268. package/lib/vendor/blamejs/test/layer-0-primitives/app-shutdown.test.js +128 -1
  269. package/lib/vendor/blamejs/test/layer-0-primitives/archive-adapters.test.js +271 -0
  270. package/lib/vendor/blamejs/test/layer-0-primitives/archive-read.test.js +628 -1
  271. package/lib/vendor/blamejs/test/layer-0-primitives/archive-tar-read.test.js +0 -0
  272. package/lib/vendor/blamejs/test/layer-0-primitives/archive-wrap.test.js +227 -0
  273. package/lib/vendor/blamejs/test/layer-0-primitives/arg-parser.test.js +15 -0
  274. package/lib/vendor/blamejs/test/layer-0-primitives/asn1-der.test.js +73 -0
  275. package/lib/vendor/blamejs/test/layer-0-primitives/atomic-file.test.js +114 -0
  276. package/lib/vendor/blamejs/test/layer-0-primitives/audit-sign-anchor.test.js +141 -0
  277. package/lib/vendor/blamejs/test/layer-0-primitives/audit-tools.test.js +624 -0
  278. package/lib/vendor/blamejs/test/layer-0-primitives/audit.test.js +769 -0
  279. package/lib/vendor/blamejs/test/layer-0-primitives/auth-jwt-defenses.test.js +436 -0
  280. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth.test.js +1697 -0
  281. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oid4vp.test.js +495 -0
  282. package/lib/vendor/blamejs/test/layer-0-primitives/auth-password.test.js +500 -0
  283. package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml.test.js +1809 -0
  284. package/lib/vendor/blamejs/test/layer-0-primitives/auth-status-list.test.js +243 -1
  285. package/lib/vendor/blamejs/test/layer-0-primitives/backup-index.test.js +2226 -0
  286. package/lib/vendor/blamejs/test/layer-0-primitives/backup-manifest-signature.test.js +183 -0
  287. package/lib/vendor/blamejs/test/layer-0-primitives/base32.test.js +105 -0
  288. package/lib/vendor/blamejs/test/layer-0-primitives/break-glass.test.js +693 -0
  289. package/lib/vendor/blamejs/test/layer-0-primitives/cache.test.js +603 -0
  290. package/lib/vendor/blamejs/test/layer-0-primitives/calendar.test.js +557 -0
  291. package/lib/vendor/blamejs/test/layer-0-primitives/case-insensitive-security-token-guard.test.js +214 -0
  292. package/lib/vendor/blamejs/test/layer-0-primitives/cbor.test.js +25 -0
  293. package/lib/vendor/blamejs/test/layer-0-primitives/cert.test.js +843 -6
  294. package/lib/vendor/blamejs/test/layer-0-primitives/ciba-authreqid-binding.test.js +77 -2
  295. package/lib/vendor/blamejs/test/layer-0-primitives/ciba.test.js +866 -0
  296. package/lib/vendor/blamejs/test/layer-0-primitives/clear-site-data.test.js +18 -0
  297. package/lib/vendor/blamejs/test/layer-0-primitives/cli-erase.test.js +19 -0
  298. package/lib/vendor/blamejs/test/layer-0-primitives/cli.test.js +2790 -0
  299. package/lib/vendor/blamejs/test/layer-0-primitives/cluster-lease-renewal-ttl.test.js +114 -0
  300. package/lib/vendor/blamejs/test/layer-0-primitives/cluster.test.js +1032 -0
  301. package/lib/vendor/blamejs/test/layer-0-primitives/cms-codec.test.js +575 -0
  302. package/lib/vendor/blamejs/test/layer-0-primitives/codebase-patterns.test.js +739 -1
  303. package/lib/vendor/blamejs/test/layer-0-primitives/codepoint-class.test.js +8 -0
  304. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-ai-act.test.js +194 -0
  305. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-lifecycle-proto-key.test.js +104 -0
  306. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-sanctions.test.js +254 -0
  307. package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials.test.js +613 -3
  308. package/lib/vendor/blamejs/test/layer-0-primitives/cookies.test.js +140 -0
  309. package/lib/vendor/blamejs/test/layer-0-primitives/cose.test.js +407 -0
  310. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-adversarial.test.js +352 -0
  311. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field-derived-hash.test.js +32 -0
  312. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field.test.js +575 -0
  313. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-files-parallel.test.js +10 -0
  314. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-stream.test.js +24 -0
  315. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-oprf.test.js +17 -0
  316. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-spki-pin.test.js +183 -0
  317. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-xwing.test.js +48 -0
  318. package/lib/vendor/blamejs/test/layer-0-primitives/crypto.test.js +345 -0
  319. package/lib/vendor/blamejs/test/layer-0-primitives/csp-report.test.js +58 -0
  320. package/lib/vendor/blamejs/test/layer-0-primitives/csv.test.js +48 -0
  321. package/lib/vendor/blamejs/test/layer-0-primitives/daemon.test.js +459 -1
  322. package/lib/vendor/blamejs/test/layer-0-primitives/dark-patterns.test.js +19 -0
  323. package/lib/vendor/blamejs/test/layer-0-primitives/db-query.test.js +1019 -0
  324. package/lib/vendor/blamejs/test/layer-0-primitives/db-raw-residency-gate.test.js +77 -0
  325. package/lib/vendor/blamejs/test/layer-0-primitives/db.test.js +1621 -0
  326. package/lib/vendor/blamejs/test/layer-0-primitives/ddl-change-control.test.js +462 -3
  327. package/lib/vendor/blamejs/test/layer-0-primitives/dnssec.test.js +323 -0
  328. package/lib/vendor/blamejs/test/layer-0-primitives/dpop-middleware-verify.test.js +562 -0
  329. package/lib/vendor/blamejs/test/layer-0-primitives/dsr.test.js +901 -1
  330. package/lib/vendor/blamejs/test/layer-0-primitives/dual-control.test.js +249 -0
  331. package/lib/vendor/blamejs/test/layer-0-primitives/external-db-migrate.test.js +561 -0
  332. package/lib/vendor/blamejs/test/layer-0-primitives/external-db.test.js +1214 -0
  333. package/lib/vendor/blamejs/test/layer-0-primitives/fal.test.js +21 -0
  334. package/lib/vendor/blamejs/test/layer-0-primitives/fedcm-dbsc.test.js +46 -20
  335. package/lib/vendor/blamejs/test/layer-0-primitives/federation-vc-suite.test.js +147 -3
  336. package/lib/vendor/blamejs/test/layer-0-primitives/fido-mds3.test.js +907 -38
  337. package/lib/vendor/blamejs/test/layer-0-primitives/file-upload-content-safety-skip-audit.test.js +29 -0
  338. package/lib/vendor/blamejs/test/layer-0-primitives/file-upload.test.js +1135 -0
  339. package/lib/vendor/blamejs/test/layer-0-primitives/flag.test.js +30 -0
  340. package/lib/vendor/blamejs/test/layer-0-primitives/forms.test.js +747 -0
  341. package/lib/vendor/blamejs/test/layer-0-primitives/gate-contract.test.js +1855 -0
  342. package/lib/vendor/blamejs/test/layer-0-primitives/gdpr-ropa.test.js +30 -0
  343. package/lib/vendor/blamejs/test/layer-0-primitives/guard-archive.test.js +86 -0
  344. package/lib/vendor/blamejs/test/layer-0-primitives/guard-auth.test.js +117 -0
  345. package/lib/vendor/blamejs/test/layer-0-primitives/guard-cidr.test.js +151 -0
  346. package/lib/vendor/blamejs/test/layer-0-primitives/guard-domain.test.js +422 -0
  347. package/lib/vendor/blamejs/test/layer-0-primitives/guard-filename.test.js +424 -0
  348. package/lib/vendor/blamejs/test/layer-0-primitives/{guard-gate-disposition-coverage.test.js → guard-gate-disposition.test.js} +1 -1
  349. package/lib/vendor/blamejs/test/layer-0-primitives/guard-graphql.test.js +340 -0
  350. package/lib/vendor/blamejs/test/layer-0-primitives/guard-html.test.js +29 -0
  351. package/lib/vendor/blamejs/test/layer-0-primitives/guard-idempotency-key.test.js +28 -0
  352. package/lib/vendor/blamejs/test/layer-0-primitives/guard-image.test.js +519 -45
  353. package/lib/vendor/blamejs/test/layer-0-primitives/guard-imap-command.test.js +0 -0
  354. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jmap.test.js +51 -0
  355. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jsonpath.test.js +66 -0
  356. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jwt.test.js +436 -0
  357. package/lib/vendor/blamejs/test/layer-0-primitives/guard-managesieve-command.test.js +25 -0
  358. package/lib/vendor/blamejs/test/layer-0-primitives/guard-markdown.test.js +16 -0
  359. package/lib/vendor/blamejs/test/layer-0-primitives/guard-mime.test.js +86 -0
  360. package/lib/vendor/blamejs/test/layer-0-primitives/guard-oauth.test.js +140 -0
  361. package/lib/vendor/blamejs/test/layer-0-primitives/guard-pdf.test.js +80 -0
  362. package/lib/vendor/blamejs/test/layer-0-primitives/guard-pop3-command.test.js +27 -0
  363. package/lib/vendor/blamejs/test/layer-0-primitives/guard-regex.test.js +99 -0
  364. package/lib/vendor/blamejs/test/layer-0-primitives/guard-shell.test.js +76 -0
  365. package/lib/vendor/blamejs/test/layer-0-primitives/{guard-sql-coverage.test.js → guard-sql.test.js} +3 -3
  366. package/lib/vendor/blamejs/test/layer-0-primitives/guard-svg.test.js +524 -0
  367. package/lib/vendor/blamejs/test/layer-0-primitives/guard-template.test.js +71 -0
  368. package/lib/vendor/blamejs/test/layer-0-primitives/guard-time.test.js +92 -0
  369. package/lib/vendor/blamejs/test/layer-0-primitives/guard-uuid.test.js +86 -0
  370. package/lib/vendor/blamejs/test/layer-0-primitives/html-balance.test.js +38 -0
  371. package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache-authorization.test.js +347 -0
  372. package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache.test.js +908 -0
  373. package/lib/vendor/blamejs/test/layer-0-primitives/http-client.test.js +2874 -0
  374. package/lib/vendor/blamejs/test/layer-0-primitives/http-message-signature.test.js +643 -0
  375. package/lib/vendor/blamejs/test/layer-0-primitives/i18n-messageformat.test.js +38 -0
  376. package/lib/vendor/blamejs/test/layer-0-primitives/i18n.test.js +1153 -1
  377. package/lib/vendor/blamejs/test/layer-0-primitives/idempotency-key.test.js +494 -0
  378. package/lib/vendor/blamejs/test/layer-0-primitives/ip-utils.test.js +30 -0
  379. package/lib/vendor/blamejs/test/layer-0-primitives/jsdoc-example-execution.test.js +177 -0
  380. package/lib/vendor/blamejs/test/layer-0-primitives/json-path.test.js +103 -0
  381. package/lib/vendor/blamejs/test/layer-0-primitives/json-schema.test.js +214 -0
  382. package/lib/vendor/blamejs/test/layer-0-primitives/jwk.test.js +41 -0
  383. package/lib/vendor/blamejs/test/layer-0-primitives/jwt-external.test.js +276 -0
  384. package/lib/vendor/blamejs/test/layer-0-primitives/keychain.test.js +0 -0
  385. package/lib/vendor/blamejs/test/layer-0-primitives/log-stream.test.js +241 -0
  386. package/lib/vendor/blamejs/test/layer-0-primitives/log.test.js +106 -0
  387. package/lib/vendor/blamejs/test/layer-0-primitives/mail-agent.test.js +441 -0
  388. package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth.test.js +2136 -4
  389. package/lib/vendor/blamejs/test/layer-0-primitives/mail-bimi.test.js +759 -12
  390. package/lib/vendor/blamejs/test/layer-0-primitives/mail-bounce.test.js +811 -1
  391. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp-experimental.test.js +401 -3
  392. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp.test.js +751 -8
  393. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-smime.test.js +864 -0
  394. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto.test.js +110 -0
  395. package/lib/vendor/blamejs/test/layer-0-primitives/mail-dav.test.js +830 -1
  396. package/lib/vendor/blamejs/test/layer-0-primitives/mail-deploy.test.js +635 -86
  397. package/lib/vendor/blamejs/test/layer-0-primitives/mail-dkim.test.js +818 -0
  398. package/lib/vendor/blamejs/test/layer-0-primitives/mail-helo.test.js +27 -0
  399. package/lib/vendor/blamejs/test/layer-0-primitives/mail-scan.test.js +199 -0
  400. package/lib/vendor/blamejs/test/layer-0-primitives/mail-send-deliver.test.js +686 -2
  401. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-imap.test.js +778 -0
  402. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-jmap.test.js +1438 -0
  403. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-managesieve.test.js +449 -6
  404. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-mx.test.js +773 -2
  405. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-pop3.test.js +623 -3
  406. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-rate-limit.test.js +55 -0
  407. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-registry.test.js +13 -0
  408. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-submission.test.js +877 -1
  409. package/lib/vendor/blamejs/test/layer-0-primitives/mail-sieve.test.js +326 -0
  410. package/lib/vendor/blamejs/test/layer-0-primitives/mail-store-fts.test.js +55 -0
  411. package/lib/vendor/blamejs/test/layer-0-primitives/mail-store.test.js +242 -0
  412. package/lib/vendor/blamejs/test/layer-0-primitives/mail.test.js +1596 -2
  413. package/lib/vendor/blamejs/test/layer-0-primitives/mcp.test.js +440 -4
  414. package/lib/vendor/blamejs/test/layer-0-primitives/metrics-snapshot.test.js +89 -0
  415. package/lib/vendor/blamejs/test/layer-0-primitives/metrics.test.js +1230 -0
  416. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-assetlinks.test.js +113 -0
  417. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-body-parser.test.js +1169 -0
  418. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-bot-disclose.test.js +123 -0
  419. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-cookies.test.js +108 -0
  420. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-gpc.test.js +121 -0
  421. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-headers.test.js +163 -0
  422. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-host-allowlist.test.js +154 -0
  423. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-require-content-type.test.js +127 -0
  424. package/lib/vendor/blamejs/test/layer-0-primitives/{middleware-tus-upload-coverage.test.js → middleware-tus-upload.test.js} +45 -0
  425. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-web-app-manifest.test.js +132 -0
  426. package/lib/vendor/blamejs/test/layer-0-primitives/mtls-ca-crl-fingerprint-only.test.js +92 -0
  427. package/lib/vendor/blamejs/test/layer-0-primitives/network-dns-resolver.test.js +65 -0
  428. package/lib/vendor/blamejs/test/layer-0-primitives/network-dns.test.js +1727 -1
  429. package/lib/vendor/blamejs/test/layer-0-primitives/network-nts.test.js +699 -0
  430. package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy.test.js +1181 -0
  431. package/lib/vendor/blamejs/test/layer-0-primitives/network-tls.test.js +1876 -3
  432. package/lib/vendor/blamejs/test/layer-0-primitives/network.test.js +32 -0
  433. package/lib/vendor/blamejs/test/layer-0-primitives/nonce-store-enforce-replay-nonboolean.test.js +81 -0
  434. package/lib/vendor/blamejs/test/layer-0-primitives/ntp-check.test.js +122 -0
  435. package/lib/vendor/blamejs/test/layer-0-primitives/observability-tracing.test.js +378 -0
  436. package/lib/vendor/blamejs/test/layer-0-primitives/observability.test.js +77 -0
  437. package/lib/vendor/blamejs/test/layer-0-primitives/oid4vci.test.js +1016 -0
  438. package/lib/vendor/blamejs/test/layer-0-primitives/openid-federation.test.js +946 -0
  439. package/lib/vendor/blamejs/test/layer-0-primitives/outbox.test.js +818 -0
  440. package/lib/vendor/blamejs/test/layer-0-primitives/own-property-membership-guards.test.js +109 -0
  441. package/lib/vendor/blamejs/test/layer-0-primitives/parsers-safe-toml.test.js +543 -0
  442. package/lib/vendor/blamejs/test/layer-0-primitives/{parsers-safe-yaml-coverage.test.js → parsers-safe-yaml.test.js} +2 -2
  443. package/lib/vendor/blamejs/test/layer-0-primitives/parsers-standalone.test.js +73 -0
  444. package/lib/vendor/blamejs/test/layer-0-primitives/passkey.test.js +649 -0
  445. package/lib/vendor/blamejs/test/layer-0-primitives/permissions.test.js +524 -0
  446. package/lib/vendor/blamejs/test/layer-0-primitives/pqc-agent-curve.test.js +22 -0
  447. package/lib/vendor/blamejs/test/layer-0-primitives/pubsub.test.js +295 -0
  448. package/lib/vendor/blamejs/test/layer-0-primitives/queue-flow-repeat.test.js +36 -0
  449. package/lib/vendor/blamejs/test/layer-0-primitives/queue.test.js +83 -0
  450. package/lib/vendor/blamejs/test/layer-0-primitives/rate-limit-xff-spoofing.test.js +34 -0
  451. package/lib/vendor/blamejs/test/layer-0-primitives/redact.test.js +1031 -0
  452. package/lib/vendor/blamejs/test/layer-0-primitives/request-helpers.test.js +94 -0
  453. package/lib/vendor/blamejs/test/layer-0-primitives/require-bound-key.test.js +401 -0
  454. package/lib/vendor/blamejs/test/layer-0-primitives/restore-empty-manifest-wipe.test.js +154 -0
  455. package/lib/vendor/blamejs/test/layer-0-primitives/retention.test.js +600 -0
  456. package/lib/vendor/blamejs/test/layer-0-primitives/router-host-path-injection.test.js +231 -0
  457. package/lib/vendor/blamejs/test/layer-0-primitives/router-tls0rtt.test.js +21 -0
  458. package/lib/vendor/blamejs/test/layer-0-primitives/router.test.js +1277 -0
  459. package/lib/vendor/blamejs/test/layer-0-primitives/safe-async.test.js +133 -0
  460. package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer-linear-scans.test.js +14 -0
  461. package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer.test.js +80 -0
  462. package/lib/vendor/blamejs/test/layer-0-primitives/safe-decompress.test.js +28 -0
  463. package/lib/vendor/blamejs/test/layer-0-primitives/safe-dns.test.js +245 -0
  464. package/lib/vendor/blamejs/test/layer-0-primitives/safe-ical.test.js +32 -0
  465. package/lib/vendor/blamejs/test/layer-0-primitives/safe-ini.test.js +376 -0
  466. package/lib/vendor/blamejs/test/layer-0-primitives/safe-json.test.js +175 -0
  467. package/lib/vendor/blamejs/test/layer-0-primitives/safe-mime.test.js +518 -0
  468. package/lib/vendor/blamejs/test/layer-0-primitives/safe-object.test.js +62 -0
  469. package/lib/vendor/blamejs/test/layer-0-primitives/safe-path.test.js +30 -0
  470. package/lib/vendor/blamejs/test/layer-0-primitives/safe-schema.test.js +104 -0
  471. package/lib/vendor/blamejs/test/layer-0-primitives/safe-sql.test.js +142 -0
  472. package/lib/vendor/blamejs/test/layer-0-primitives/safe-url.test.js +112 -0
  473. package/lib/vendor/blamejs/test/layer-0-primitives/safe-vcard.test.js +26 -0
  474. package/lib/vendor/blamejs/test/layer-0-primitives/scheduler.test.js +157 -0
  475. package/lib/vendor/blamejs/test/layer-0-primitives/scim-server.test.js +396 -0
  476. package/lib/vendor/blamejs/test/layer-0-primitives/sd-jwt-vc.test.js +930 -0
  477. package/lib/vendor/blamejs/test/layer-0-primitives/security-assert.test.js +755 -82
  478. package/lib/vendor/blamejs/test/layer-0-primitives/self-update.test.js +1053 -0
  479. package/lib/vendor/blamejs/test/layer-0-primitives/session-device-binding.test.js +200 -0
  480. package/lib/vendor/blamejs/test/layer-0-primitives/session-strict-binding-missing-failclosed.test.js +110 -0
  481. package/lib/vendor/blamejs/test/layer-0-primitives/sigv4-bucket-ops.test.js +636 -0
  482. package/lib/vendor/blamejs/test/layer-0-primitives/sql-offset-without-limit.test.js +94 -0
  483. package/lib/vendor/blamejs/test/layer-0-primitives/sql.test.js +1190 -0
  484. package/lib/vendor/blamejs/test/layer-0-primitives/ssrf-guard.test.js +21 -0
  485. package/lib/vendor/blamejs/test/layer-0-primitives/static.test.js +850 -0
  486. package/lib/vendor/blamejs/test/layer-0-primitives/storage-presigned-url.test.js +146 -0
  487. package/lib/vendor/blamejs/test/layer-0-primitives/storage.test.js +621 -0
  488. package/lib/vendor/blamejs/test/layer-0-primitives/subject.test.js +47 -0
  489. package/lib/vendor/blamejs/test/layer-0-primitives/template.test.js +582 -0
  490. package/lib/vendor/blamejs/test/layer-0-primitives/tenant-quota.test.js +587 -25
  491. package/lib/vendor/blamejs/test/layer-0-primitives/time.test.js +11 -0
  492. package/lib/vendor/blamejs/test/layer-0-primitives/tsa.test.js +524 -63
  493. package/lib/vendor/blamejs/test/layer-0-primitives/uri-template.test.js +27 -0
  494. package/lib/vendor/blamejs/test/layer-0-primitives/vault-rotate.test.js +866 -0
  495. package/lib/vendor/blamejs/test/layer-0-primitives/vault.test.js +74 -0
  496. package/lib/vendor/blamejs/test/layer-0-primitives/vc.test.js +215 -0
  497. package/lib/vendor/blamejs/test/layer-0-primitives/watcher.test.js +550 -0
  498. package/lib/vendor/blamejs/test/layer-0-primitives/webhook-dispatcher.test.js +388 -0
  499. package/lib/vendor/blamejs/test/layer-0-primitives/webhook.test.js +262 -0
  500. package/lib/vendor/blamejs/test/layer-0-primitives/websocket.test.js +1294 -0
  501. package/lib/vendor/blamejs/test/layer-0-primitives/ws-client.test.js +629 -0
  502. package/lib/vendor/blamejs/test/layer-0-primitives/xml-c14n-attr-normalization.test.js +164 -0
  503. package/lib/vendor/blamejs/test/smoke.js +2 -0
  504. package/package.json +1 -1
  505. package/lib/vendor/blamejs/release-notes/v0.16.0.json +0 -44
  506. package/lib/vendor/blamejs/release-notes/v0.16.1.json +0 -36
  507. package/lib/vendor/blamejs/release-notes/v0.16.2.json +0 -71
  508. package/lib/vendor/blamejs/release-notes/v0.16.3.json +0 -71
  509. package/lib/vendor/blamejs/test/layer-0-primitives/acme-coverage.test.js +0 -441
  510. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth-coverage.test.js +0 -482
  511. package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml-coverage.test.js +0 -671
  512. package/lib/vendor/blamejs/test/layer-0-primitives/backup-index-coverage.test.js +0 -690
  513. package/lib/vendor/blamejs/test/layer-0-primitives/cli-coverage.test.js +0 -238
  514. package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials-coverage.test.js +0 -319
  515. package/lib/vendor/blamejs/test/layer-0-primitives/keychain-coverage.test.js +0 -0
  516. package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth-coverage.test.js +0 -437
  517. package/lib/vendor/blamejs/test/layer-0-primitives/mcp-coverage.test.js +0 -443
  518. package/lib/vendor/blamejs/test/layer-0-primitives/metrics-coverage.test.js +0 -395
  519. package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy-coverage.test.js +0 -565
  520. package/lib/vendor/blamejs/test/layer-0-primitives/router-coverage.test.js +0 -592
  521. package/lib/vendor/blamejs/test/layer-0-primitives/sql-coverage.test.js +0 -422
  522. package/lib/vendor/blamejs/test/layer-0-primitives/test-coverage.test.js +0 -573
@@ -3,7 +3,2743 @@
3
3
  // Bundled with esbuild. Exports: ml_kem512 / ml_kem768 / ml_kem1024 (FIPS 203 KEM),
4
4
  // ml_dsa44 / ml_dsa65 / ml_dsa87 (FIPS 204 lattice signatures),
5
5
  // slh_dsa_sha2_*f / slh_dsa_shake_*f (FIPS 205 hash signatures).
6
- var Nt=Object.defineProperty;var ar=Object.getOwnPropertyDescriptor;var fr=Object.getOwnPropertyNames;var ur=Object.prototype.hasOwnProperty;var dr=(e,t)=>{for(var n in t)Nt(e,n,{get:t[n],enumerable:!0})},lr=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fr(t))!ur.call(e,o)&&o!==n&&Nt(e,o,{get:()=>t[o],enumerable:!(r=ar(t,o))||r.enumerable});return e};var hr=e=>lr(Nt({},"__esModule",{value:!0}),e);var Zr={};dr(Zr,{ml_dsa44:()=>Wn,ml_dsa65:()=>$n,ml_dsa87:()=>Vn,ml_kem1024:()=>jn,ml_kem512:()=>Kn,ml_kem768:()=>Pn,slh_dsa_sha2_128f:()=>sr,slh_dsa_sha2_192f:()=>cr,slh_dsa_sha2_256f:()=>ir,slh_dsa_shake_128f:()=>er,slh_dsa_shake_192f:()=>tr,slh_dsa_shake_256f:()=>nr});module.exports=hr(Zr);var _t=BigInt(4294967295),nn=BigInt(32);function pr(e,t=!1){return t?{h:Number(e&_t),l:Number(e>>nn&_t)}:{h:Number(e>>nn&_t)|0,l:Number(e&_t)|0}}function kt(e,t=!1){let n=e.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let c=0;c<n;c++){let{h:s,l:i}=pr(e[c],t);[r[c],o[c]]=[s,i]}return[r,o]}var Mt=(e,t,n)=>e>>>n,Kt=(e,t,n)=>e<<32-n|t>>>n,We=(e,t,n)=>e>>>n|t<<32-n,$e=(e,t,n)=>e<<32-n|t>>>n,ut=(e,t,n)=>e<<64-n|t>>>n-32,dt=(e,t,n)=>e>>>n-32|t<<64-n;var rn=(e,t,n)=>e<<n|t>>>32-n,on=(e,t,n)=>t<<n|e>>>32-n,sn=(e,t,n)=>t<<n-32|e>>>64-n,cn=(e,t,n)=>e<<n-32|t>>>64-n;function Be(e,t,n,r){let o=(t>>>0)+(r>>>0);return{h:e+n+(o/2**32|0)|0,l:o|0}}var an=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),fn=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,un=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),dn=(e,t,n,r,o)=>t+n+r+o+(e/2**32|0)|0,ln=(e,t,n,r,o)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(o>>>0),hn=(e,t,n,r,o,c)=>t+n+r+o+c+(e/2**32|0)|0;function yr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function Ve(e,t=""){if(typeof e!="number"){let n=t&&`"${t}" `;throw new TypeError(`${n}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new RangeError(`${n}expected integer >= 0, got ${e}`)}}function Q(e,t,n=""){let r=yr(e),o=e?.length,c=t!==void 0;if(!r||c&&o!==t){let s=n&&`"${n}" `,i=c?` of length ${t}`:"",a=r?`length=${o}`:`type=${typeof e}`,w=s+"expected Uint8Array"+i+", got "+a;throw r?new RangeError(w):new TypeError(w)}return e}function xn(e){if(typeof e!="function"||typeof e.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Ve(e.outputLen),Ve(e.blockLen),e.outputLen<1)throw new Error('"outputLen" must be >= 1');if(e.blockLen<1)throw new Error('"blockLen" must be >= 1')}function He(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function et(e,t){Q(e,void 0,"digestInto() output");let n=t.outputLen;if(e.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function Bt(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Ee(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Xe(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ke(e,t){return e<<32-t|e>>>t}var yn=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function br(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function gr(e){for(let t=0;t<e.length;t++)e[t]=br(e[t]);return e}var tt=yn?e=>e:gr,bn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",wr=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function gn(e){if(Q(e),bn)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=wr[e[n]];return t}var Oe={_0:48,_9:57,A:65,F:70,a:97,f:102};function pn(e){if(e>=Oe._0&&e<=Oe._9)return e-Oe._0;if(e>=Oe.A&&e<=Oe.F)return e-(Oe.A-10);if(e>=Oe.a&&e<=Oe.f)return e-(Oe.a-10)}function wn(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);if(bn)try{return Uint8Array.fromHex(e)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=e.length,n=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(n);for(let o=0,c=0;o<n;o++,c+=2){let s=pn(e.charCodeAt(c)),i=pn(e.charCodeAt(c+1));if(s===void 0||i===void 0){let a=e[c]+e[c+1];throw new RangeError('hex string expected, got non-hex character "'+a+'" at index '+c)}r[o]=s*16+i}return r}function Ye(...e){let t=0;for(let r=0;r<e.length;r++){let o=e[r];Q(o),t+=o.length}let n=new Uint8Array(t);for(let r=0,o=0;r<e.length;r++){let c=e[r];n.set(c,o),o+=c.length}return n}function nt(e,t={}){let n=(o,c)=>e(c).update(o).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.canXOF=r.canXOF,n.create=o=>e(o),Object.assign(n,t),Object.freeze(n)}function mn(e=32){Ve(e,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(e>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${e}`);return t.getRandomValues(new Uint8Array(e))}var Fe=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var mr=BigInt(0),lt=BigInt(1),Ar=BigInt(2),Tr=BigInt(7),Er=BigInt(256),_r=BigInt(113),En=[],_n=[],kn=[];for(let e=0,t=lt,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],En.push(2*(5*r+n)),_n.push((e+1)*(e+2)/2%64);let o=mr;for(let c=0;c<7;c++)t=(t<<lt^(t>>Tr)*_r)%Er,t&Ar&&(o^=lt<<(lt<<BigInt(c))-lt);kn.push(o)}var Bn=kt(kn,!0),kr=Bn[0],Br=Bn[1],An=(e,t,n)=>n>32?sn(e,t,n):rn(e,t,n),Tn=(e,t,n)=>n>32?cn(e,t,n):on(e,t,n);function Lr(e,t=24){if(Ve(t,"rounds"),t<1||t>24)throw new Error('"rounds" expected integer 1..24');let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let s=0;s<10;s++)n[s]=e[s]^e[s+10]^e[s+20]^e[s+30]^e[s+40];for(let s=0;s<10;s+=2){let i=(s+8)%10,a=(s+2)%10,w=n[a],h=n[a+1],y=An(w,h,1)^n[i],_=Tn(w,h,1)^n[i+1];for(let k=0;k<50;k+=10)e[s+k]^=y,e[s+k+1]^=_}let o=e[2],c=e[3];for(let s=0;s<24;s++){let i=_n[s],a=An(o,c,i),w=Tn(o,c,i),h=En[s];o=e[h],c=e[h+1],e[h]=a,e[h+1]=w}for(let s=0;s<50;s+=10){let i=e[s],a=e[s+1],w=e[s+2],h=e[s+3];e[s]^=~e[s+2]&e[s+4],e[s+1]^=~e[s+3]&e[s+5],e[s+2]^=~e[s+4]&e[s+6],e[s+3]^=~e[s+5]&e[s+7],e[s+4]^=~e[s+6]&e[s+8],e[s+5]^=~e[s+7]&e[s+9],e[s+6]^=~e[s+8]&i,e[s+7]^=~e[s+9]&a,e[s+8]^=~i&w,e[s+9]^=~a&h}e[0]^=kr[r],e[1]^=Br[r]}Ee(n)}var Lt=class e{state;pos=0;posOut=0;finished=!1;state32;destroyed=!1;blockLen;suffix;outputLen;canXOF;enableXOF=!1;rounds;constructor(t,n,r,o=!1,c=24){if(this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.canXOF=o,this.rounds=c,Ve(r,"outputLen"),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Bt(this.state)}clone(){return this._cloneInto()}keccak(){tt(this.state32),Lr(this.state32,this.rounds),tt(this.state32),this.posOut=0,this.pos=0}update(t){He(this),Q(t);let{blockLen:n,state:r}=this,o=t.length;for(let c=0;c<o;){let s=Math.min(n-this.pos,o-c);for(let i=0;i<s;i++)r[this.pos++]^=t[c++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:n,pos:r,blockLen:o}=this;t[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),t[o-1]^=128,this.keccak()}writeInto(t){He(this,!1),Q(t),this.finish();let n=this.state,{blockLen:r}=this;for(let o=0,c=t.length;o<c;){this.posOut>=r&&this.keccak();let s=Math.min(r-this.posOut,c-o);t.set(n.subarray(this.posOut,this.posOut+s),o),this.posOut+=s,o+=s}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Ve(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(et(t,this),this.finished)throw new Error("digest() was already called");this.writeInto(t.subarray(0,this.outputLen)),this.destroy()}digest(){let t=new Uint8Array(this.outputLen);return this.digestInto(t),t}destroy(){this.destroyed=!0,Ee(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:o,rounds:c,enableXOF:s}=this;return t||=new e(n,r,o,s,c),t.blockLen=n,t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=c,t.suffix=r,t.outputLen=o,t.enableXOF=s,t.canXOF=this.canXOF,t.destroyed=this.destroyed,t}},Ln=(e,t,n,r={})=>nt(()=>new Lt(t,e,n),r);var On=Ln(6,136,32,Fe(8));var Hn=Ln(6,72,64,Fe(10));var Sn=(e,t,n,r={})=>nt((o={})=>new Lt(t,e,o.dkLen===void 0?n:o.dkLen,!0),r),In=Sn(31,168,16,Fe(11)),re=Sn(31,136,32,Fe(12));function Pt(e){if(!Number.isSafeInteger(e)||e<0||e>4294967295)throw new Error("wrong u32 integer:"+e);return e}function Un(e){return Pt(e),(e&e-1)===0&&e!==0}function jt(e,t){if(Pt(e),!Number.isSafeInteger(t)||t<0||t>32)throw new Error(`expected integer 0 <= bits <= 32, got ${t}`);let n=0;for(let r=0;r<t;r++,e>>>=1)n=n<<1|e&1;return n>>>0}function Cn(e){return Pt(e),31-Math.clz32(e)}function Rn(e){let t=e.length;if(!Un(t))throw new Error("expected positive power-of-two length, got "+t);let n=Cn(t);for(let r=0;r<t;r++){let o=jt(r,n);if(r<o){let c=e[r];e[r]=e[o],e[o]=c}}return e}var vt=(e,t)=>{let{N:n,roots:r,dit:o,invertButterflies:c=!1,skipStages:s=0,brp:i=!0}=t,a=Cn(n);if(!Un(n))throw new Error("FFT: Polynomial size should be power of two");if(r.length!==n)throw new Error(`FFT: wrong roots length: expected ${n}, got ${r.length}`);let w=o!==c;return h=>{if(h.length!==n)throw new Error("FFT: wrong Polynomial length");o&&i&&Rn(h);for(let y=0,_=1;y<a-s;y++){let k=o?y+1+s:a-y,O=1<<k,E=O>>1,U=n>>k;for(let N=0;N<n;N+=O)for(let b=0,l=_++;b<E;b++){let I=c?o?n-l:l:b*U,F=N+b,P=N+b+E,v=r[I],K=h[P],g=h[F];if(w){let M=e.mul(K,v);h[F]=e.add(g,M),h[P]=e.sub(g,M)}else c?(h[F]=e.add(K,g),h[P]=e.mul(e.sub(K,g),v)):(h[F]=e.add(g,K),h[P]=e.mul(e.sub(g,K),v))}}return!o&&i&&Rn(h),h}};var be=Q;var Se=mn;function Ie(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}function rt(e){return Uint8Array.from(Q(e))}function Dt(e){if(Object.prototype.toString.call(e)!=="[object Object]")throw new TypeError("expected valid options object")}function Ze(e){Dt(e),e.context!==void 0&&Q(e.context,void 0,"opts.context")}function Ne(e){Ze(e),e.extraEntropy!==!1&&e.extraEntropy!==void 0&&Q(e.extraEntropy,void 0,"opts.extraEntropy")}function ce(e,...t){let n=o=>typeof o=="number"?o:o.bytesLen,r=t.reduce((o,c)=>o+n(c),0);return{bytesLen:r,encode:o=>{let c=new Uint8Array(r);for(let s=0,i=0;s<t.length;s++){let a=t[s],w=n(a),h=typeof a=="number"?o[s]:a.encode(o[s]);Q(h,w,e),c.set(h,i),typeof a!="number"&&h.fill(0),i+=w}return c},decode:o=>{Q(o,r,e);let c=[];for(let s of t){let i=n(s),a=o.subarray(0,i);c.push(typeof s=="number"?a:s.decode(a)),o=o.subarray(i)}return c}}}function ge(e,t){let n=e,r=t*n.bytesLen;return{bytesLen:r,encode:o=>{if(o.length!==t)throw new RangeError(`vecCoder.encode: wrong length=${o.length}. Expected: ${t}`);let c=new Uint8Array(r);for(let s=0,i=0;s<o.length;s++){let a=n.encode(o[s]);c.set(a,i),a.fill(0),i+=a.length}return c},decode:o=>{Q(o,r);let c=[];for(let s=0;s<o.length;s+=n.bytesLen)c.push(n.decode(o.subarray(s,s+n.bytesLen)));return c}}}function V(...e){for(let t of e)if(Array.isArray(t))for(let n of t)n.fill(0);else t.fill(0)}function qe(e){if(!Number.isSafeInteger(e)||e<0||e>32)throw new RangeError(`expected bits in [0..32], got ${e}`);return e===32?4294967295:~(-1<<e)>>>0}var Fn=Uint8Array.of();function ot(e,t=Fn){if(Q(e),Q(t),t.length>255)throw new RangeError("context should be 255 bytes or less");return Ye(new Uint8Array([0,t.length]),t,e)}var Or=Uint8Array.from([6,9,96,134,72,1,101,3,4,2]);function Ot(e,t=0){if(!e.oid||!Ie(e.oid.subarray(0,10),Or))throw new Error("hash.oid is invalid: expected NIST hash");let n=e.outputLen*8/2;if(t>n)throw new Error("Pre-hash security strength too low: "+n+", required: "+t)}function st(e,t,n=Fn){if(Q(t),Q(n),n.length>255)throw new RangeError("context should be 255 bytes or less");let r=e(t);return Ye(new Uint8Array([1,n.length]),n,e.oid,r)}var Ht=e=>{let{newPoly:t,N:n,Q:r,F:o,ROOT_OF_UNITY:c,brvBits:s,isKyber:i}=e,a=(b,l=r)=>{let I=b%l|0;return(I>=0?I|0:l+I|0)|0},w=(b,l=r)=>{let I=a(b,l)|0;return(I>l>>1?I-l|0:I)|0};function h(){let b=t(n);for(let l=0;l<n;l++){let I=jt(l,s),F=BigInt(c)**BigInt(I)%BigInt(r);b[l]=Number(F)|0}return b}let y=h(),_={add:(b,l)=>a((b|0)+(l|0))|0,sub:(b,l)=>a((b|0)-(l|0))|0,mul:(b,l)=>a((b|0)*(l|0))|0,inv:b=>{throw new Error("not implemented")}},k={N:n,roots:y,invertButterflies:!0,skipStages:i?1:0,brp:!1},O=vt(_,{dit:!1,...k}),E=vt(_,{dit:!0,...k}),U={encode:b=>O(b),decode:b=>{E(b);for(let l=0;l<b.length;l++)b[l]=a(o*b[l]);return b}};return{mod:a,smod:w,nttZetas:y,NTT:{encode:b=>U.encode(b),decode:b=>U.decode(b)},bitsCoder:(b,l)=>{let I=qe(b),F=b*(n/8);return{bytesLen:F,encode:P=>{let v=P,K=new Uint8Array(F);for(let g=0,M=0,J=0,$=0;g<v.length;g++)for(M|=(l.encode(v[g])&I)<<J,J+=b;J>=8;J-=8,M>>=8)K[$++]=M&qe(J);return K},decode:P=>{let v=t(n);for(let K=0,g=0,M=0,J=0;K<P.length;K++)for(g|=P[K]<<M,M+=8;M>=b;M-=b,g>>=b)v[J++]=l.decode(g&I);return v}}}}},Nn=e=>(t,n)=>{n||(n=e.blockLen);let r=new Uint8Array(t.length+2);r.set(t);let o=t.length,c=new Uint8Array(n),s=e.create({}),i=0,a=0;return{stats:()=>({calls:i,xofs:a}),get:(w,h)=>(r[o+0]=w,r[o+1]=h,s.destroy(),s=e.create({}).update(r),i++,()=>(a++,s.xofInto(c))),clean:()=>{s.destroy(),V(c,r)}}},ct=Nn(In),St=Nn(re);var le=256,we=3329,Hr=3303,Sr=17,ye=Ht({N:le,Q:we,F:Hr,ROOT_OF_UNITY:Sr,newPoly:e=>new Uint16Array(e),brvBits:7,isKyber:!0}),Gt=Object.freeze({512:Object.freeze({N:le,Q:we,K:2,ETA1:3,ETA2:2,du:10,dv:4,RBGstrength:128}),768:Object.freeze({N:le,Q:we,K:3,ETA1:2,ETA2:2,du:10,dv:4,RBGstrength:192}),1024:Object.freeze({N:le,Q:we,K:4,ETA1:2,ETA2:2,du:11,dv:5,RBGstrength:256})}),Ir=e=>{if(e>=12)return{encode:n=>n,decode:n=>n>=we?n-we:n};let t=2**(e-1);return{encode:n=>((n<<e)+we/2)/we,decode:n=>n*we+t>>>e}},Rr=e=>ye.bitsCoder(e,e===12?{encode:t=>t,decode:t=>t>=we?t-we:t}:{encode:t=>t,decode:t=>t}),ht=e=>e===12?Rr(12):ye.bitsCoder(e,Ir(e));function Qe(e,t){let n=e,r=t;for(let o=0;o<le;o++)n[o]=ye.mod(n[o]+r[o])}function Ur(e,t){let n=e,r=t;for(let o=0;o<le;o++)n[o]=ye.mod(n[o]-r[o])}function Cr(e,t,n,r,o){let c=ye.mod(t*r*o+e*n),s=ye.mod(e*r+t*n);return{c0:c,c1:s}}function It(e,t){let n=e,r=t;for(let o=0;o<le/2;o++){let c=ye.nttZetas[64+(o>>1)];o&1&&(c=-c);let{c0:s,c1:i}=Cr(n[2*o+0],n[2*o+1],r[2*o+0],r[2*o+1],c);n[2*o+0]=s,n[2*o+1]=i}return n}function Mn(e){let t=e,n=new Uint16Array(le);for(let r=0;r<le;){let o=t();if(o.length%3)throw new Error("SampleNTT: unaligned block");for(let c=0;r<le&&c+3<=o.length;c+=3){let s=(o[c+0]>>0|o[c+1]<<8)&4095,i=(o[c+1]>>4|o[c+2]<<4)&4095;s<we&&(n[r++]=s),r<le&&i<we&&(n[r++]=i)}}return n}var Fr=(e,t)=>{let n=new Uint16Array(le),r=Bt(e);tt(r);let o=0;for(let c=0,s=0,i=0,a=0;c<r.length;c++){let w=r[c];for(let h=0;h<32;h++)i+=w&1,w>>=1,o+=1,o===t?(a=i,i=0):o===2*t&&(n[s++]=ye.mod(a-i),i=0,o=0)}if(tt(r),o)throw new Error(`sampleCBD: leftover bits: ${o}`);return n};function pt(e,t,n,r){return Fr(e(r*le/4,t,n),r)}var Nr=e=>{let t=e,{K:n,PRF:r,XOF:o,HASH512:c,ETA1:s,ETA2:i,du:a,dv:w}=t,h=ht(1),y=ht(w),_=ht(a),k=ce("publicKey",ge(ht(12),n),32),O=ge(ht(12),n),E=ce("ciphertext",ge(_,n),y),U=ce("seed",32,32);return{secretCoder:O,lengths:{secretKey:O.bytesLen,publicKey:k.bytesLen,cipherText:E.bytesLen},keygen:N=>{be(N,32,"seed");let b=new Uint8Array(33);b.set(N),b[32]=n;let l=c(b),[I,F]=U.decode(l),P=[],v=[];for(let M=0;M<n;M++)P.push(ye.NTT.encode(pt(r,F,M,s)));let K=o(I);for(let M=0;M<n;M++){let J=ye.NTT.encode(pt(r,F,n+M,s));for(let $=0;$<n;$++){let fe=Mn(K.get($,M));Qe(J,It(fe,P[$]))}v.push(J)}K.clean();let g={publicKey:k.encode([v,I]),secretKey:O.encode(P)};return V(I,F,P,v,b,l),g},encrypt:(N,b,l)=>{let[I,F]=k.decode(N),P=[];for(let $=0;$<n;$++)P.push(ye.NTT.encode(pt(r,l,$,s)));let v=o(F),K=new Uint16Array(le),g=[];for(let $=0;$<n;$++){let fe=pt(r,l,n+$,i),Ae=new Uint16Array(le);for(let pe=0;pe<n;pe++){let Ge=Mn(v.get($,pe));Qe(Ae,It(Ge,P[pe]))}Qe(fe,ye.NTT.decode(Ae)),g.push(fe),Qe(K,It(I[$],P[$])),V(Ae)}v.clean();let M=pt(r,l,2*n,i);Qe(M,ye.NTT.decode(K));let J=h.decode(b);return Qe(J,M),V(I,P,K,M),E.encode([g,J])},decrypt:(N,b)=>{let[l,I]=E.decode(N),F=O.decode(b),P=new Uint16Array(le);for(let v=0;v<n;v++)Qe(P,It(F[v],ye.NTT.encode(l[v])));return Ur(I,ye.NTT.decode(P)),V(P,F,l),h.encode(I)}}};function Mr(e){let t=e,n=Nr(t),{HASH256:r,HASH512:o,KDF:c}=t,{secretCoder:s,lengths:i}=n,a=ce("secretKey",i.secretKey,i.publicKey,32,32),w=32,h=64,y=Object.freeze({...i,seed:64,msg:w,msgRand:w,secretKey:a.bytesLen});return Object.freeze({info:Object.freeze({type:"ml-kem"}),lengths:y,keygen:(_=Se(h))=>{be(_,h,"seed");let{publicKey:k,secretKey:O}=n.keygen(_.subarray(0,32)),E=r(k),U=a.encode([O,k,E,_.subarray(32)]);return V(O,E),{publicKey:k,secretKey:U}},getPublicKey:_=>{let[k,O,E,U]=a.decode(_);return Uint8Array.from(O)},encapsulate:(_,k=Se(w))=>{be(_,i.publicKey,"publicKey"),be(k,w,"message");let O=_.subarray(0,384*e.K),E=s.encode(s.decode(rt(O)));if(!Ie(E,O))throw V(E),new Error("ML-KEM.encapsulate: wrong publicKey modulus");V(E);let U=o.create().update(k).update(r(_)).digest(),N=n.encrypt(_,k,U.subarray(32,64));return V(U.subarray(32)),{cipherText:N,sharedSecret:U.subarray(0,32)}},decapsulate:(_,k)=>{be(k,a.bytesLen,"secretKey"),be(_,i.cipherText,"cipherText");let O=a.bytesLen-96,E=O+32,U=r(k.subarray(O/2,E));if(!Ie(U,k.subarray(E,E+32)))throw new Error("invalid secretKey: hash check failed");let[N,b,l,I]=a.decode(k),F=n.decrypt(_,N),P=o.create().update(F).update(l).digest(),v=P.subarray(0,32),K=n.encrypt(b,F,P.subarray(32,64)),g=Ie(_,K),M=c.create({dkLen:32}).update(I).update(_).digest();return V(F,K,g?M:v),g?v:M}})}function Kr(e,t,n){return re.create({dkLen:e}).update(t).update(new Uint8Array([n])).digest()}var Pr={HASH256:On,HASH512:Hn,KDF:re,XOF:ct,PRF:Kr},zt=e=>Mr({...Pr,...e}),Kn=zt(Gt[512]),Pn=zt(Gt[768]),jn=zt(Gt[1024]);function vn(e,t=""){if(typeof e!="boolean"){let n=t&&`"${t}" `;throw new TypeError(n+"expected boolean, got type="+typeof e)}return e}function Dn(e){Dt(e),e.externalMu!==void 0&&vn(e.externalMu,"opts.externalMu")}var Z=256,Pe=8380417,jr=1753,vr=8347681,Je=13,Wt=Math.floor((Pe-1)/88)|0,$t=Math.floor((Pe-1)/32)|0,Vt=Object.freeze({2:Object.freeze({K:4,L:4,D:Je,GAMMA1:2**17,GAMMA2:Wt,TAU:39,ETA:2,OMEGA:80}),3:Object.freeze({K:6,L:5,D:Je,GAMMA1:2**19,GAMMA2:$t,TAU:49,ETA:4,OMEGA:55}),5:Object.freeze({K:8,L:7,D:Je,GAMMA1:2**19,GAMMA2:$t,TAU:60,ETA:2,OMEGA:75})}),me=e=>new Int32Array(e),W=Ht({N:Z,Q:Pe,F:vr,ROOT_OF_UNITY:jr,newPoly:me,isKyber:!1,brvBits:8}),Gn=e=>e,xt=(e,t=Gn,n=Gn)=>W.bitsCoder(e,{encode:r=>t(n(r)),decode:r=>n(t(r))}),Me=(e,t)=>{let n=e,r=t;for(let o=0;o<n.length;o++)n[o]=W.mod(n[o]+r[o]);return n},zn=(e,t)=>{let n=e,r=t;for(let o=0;o<n.length;o++)n[o]=W.mod(n[o]-r[o]);return n},Dr=e=>{let t=e;for(let n=0;n<Z;n++)t[n]<<=Je;return t},yt=(e,t)=>{let n=e;for(let r=0;r<Z;r++)if(Math.abs(W.smod(n[r]))>=t)return!0;return!1},Ke=(e,t)=>{let n=e,r=t,o=me(Z);for(let c=0;c<n.length;c++)o[c]=W.mod(n[c]*r[c]);return o};function Rt(e){let t=e,n=me(Z);for(let r=0;r<Z;){let o=t();if(o.length%3)throw new Error("RejNTTPoly: unaligned block");for(let c=0;r<Z&&c<=o.length-3;c+=3){let s=(o[c+0]|o[c+1]<<8|o[c+2]<<16)&8388607;s<Pe&&(n[r++]=s)}}return n}function Xt(e){let t=e,{K:n,L:r,GAMMA1:o,GAMMA2:c,TAU:s,ETA:i,OMEGA:a}=t,{CRH_BYTES:w,TR_BYTES:h,C_TILDE_BYTES:y,XOF128:_,XOF256:k,securityLevel:O}=t;if(![2,4].includes(i))throw new Error("Wrong ETA");if(![1<<17,1<<19].includes(o))throw new Error("Wrong GAMMA1");if(![Wt,$t].includes(c))throw new Error("Wrong GAMMA2");let E=s*i,U=p=>{let L=W.mod(p),T=W.smod(L,2*c)|0;return L-T===Pe-1?{r1:0,r0:T-1|0}:{r1:Math.floor((L-T)/(2*c))|0,r0:T}},N=p=>U(p).r1,b=p=>U(p).r0,l=(p,L)=>p<=c||p>Pe-c||p===Pe-c&&L===0?0:1,I=(p,L)=>{let T=Math.floor((Pe-1)/(2*c)),{r1:x,r0:u}=U(L);return p===1?u>0?W.mod(x+1,T)|0:W.mod(x-1,T)|0:x|0},F=p=>{let L=W.mod(p),T=W.smod(L,2**Je)|0;return{r1:Math.floor((L-T)/2**Je)|0,r0:T}},P={bytesLen:a+n,encode:p=>{let L=p;if(L===!1)throw new Error("hint.encode: hint is false");let T=new Uint8Array(a+n);for(let x=0,u=0;x<n;x++){for(let f=0;f<Z;f++)L[x][f]!==0&&(T[u++]=f);T[a+x]=u}return T},decode:p=>{let L=[],T=0;for(let x=0;x<n;x++){let u=me(Z);if(p[a+x]<T||p[a+x]>a)return!1;for(let f=T;f<p[a+x];f++){if(f>T&&p[f]<=p[f-1])return!1;u[p[f]]=1}T=p[a+x],L.push(u)}for(let x=T;x<a;x++)if(p[x]!==0)return!1;return L}},v=xt(i===2?3:4,p=>i-p,p=>{if(!(-i<=p&&p<=i))throw new Error(`malformed key s1/s3 ${p} outside of ETA range [${-i}, ${i}]`);return p}),K=xt(13,p=>(1<<Je-1)-p),g=xt(10),M=xt(o===1<<17?18:20,p=>W.smod(o-p)),J=xt(c===Wt?6:4),$=ge(J,n),fe=ce("publicKey",32,ge(g,n)),Ae=ce("secretKey",32,32,h,ge(v,r),ge(v,n),ge(K,n)),pe=ce("signature",y,ge(M,r),P),Ge=i===2?p=>p<15?2-p%5:!1:p=>p<9?4-p:!1;function ft(p){let L=p,T=me(Z);for(let x=0;x<Z;){let u=L();for(let f=0;x<Z&&f<u.length;f+=1){let A=Ge(u[f]&15),d=Ge(u[f]>>4&15);A!==!1&&(T[x++]=A),x<Z&&d!==!1&&(T[x++]=d)}}return T}let gt=p=>{let L=me(Z),T=re.create({}).update(p),x=new Uint8Array(re.blockLen);T.xofInto(x);let u=x.slice(0,8);for(let f=Z-s,A=8,d=0,B=0;f<Z;f++){let H=f+1;for(;H>f;)H=x[A++],!(A<re.blockLen)&&(T.xofInto(x),A=0);L[f]=L[H],L[H]=1-((u[d]>>B++&1)<<1),B>=8&&(d++,B=0)}return L},wt=p=>{let L=p,T=me(Z),x=me(Z);for(let u=0;u<L.length;u++){let{r0:f,r1:A}=F(L[u]);T[u]=f,x[u]=A}return{r0:T,r1:x}},mt=(p,L)=>{let T=p,x=L;for(let u=0;u<Z;u++)T[u]=I(x[u],T[u]);return T},At=(p,L)=>{let T=p,x=L,u=me(Z),f=0;for(let A=0;A<Z;A++){let d=l(T[A],x[A]);u[A]=d,f+=d}return{v:u,cnt:f}},ze=32,Ue=ce("seed",32,64,32),ue=Object.freeze({info:Object.freeze({type:"internal-ml-dsa"}),lengths:Object.freeze({secretKey:Ae.bytesLen,publicKey:fe.bytesLen,seed:32,signature:pe.bytesLen,signRand:ze}),keygen:p=>{let L=new Uint8Array(34),T=p===void 0;T&&(p=Se(32)),be(p,32,"seed"),L.set(p),T&&V(p),L[32]=n,L[33]=r;let[x,u,f]=Ue.decode(re(L,{dkLen:Ue.bytesLen})),A=k(u),d=[];for(let m=0;m<r;m++)d.push(ft(A.get(m&255,m>>8&255)));let B=[];for(let m=r;m<r+n;m++)B.push(ft(A.get(m&255,m>>8&255)));let H=d.map(m=>W.NTT.encode(m.slice())),R=[],C=[],G=_(x),S=me(Z);for(let m=0;m<n;m++){V(S);for(let Y=0;Y<r;Y++){let oe=Rt(G.get(Y,m));Me(S,Ke(oe,H[Y]))}W.NTT.decode(S);let{r0:X,r1:q}=wt(Me(S,B[m]));R.push(X),C.push(q)}let j=fe.encode([x,C]),D=re(j,{dkLen:h}),ee=Ae.encode([x,f,D,d,B,R]);return G.clean(),A.clean(),V(x,u,f,d,B,H,S,R,C,D,L),{publicKey:j,secretKey:ee}},getPublicKey:p=>{let[L,T,x,u,f,A]=Ae.decode(p),d=_(L),B=u.map(C=>W.NTT.encode(C.slice())),H=[],R=me(Z);for(let C=0;C<n;C++){R.fill(0);for(let S=0;S<r;S++){let j=Rt(d.get(S,C));Me(R,Ke(j,B[S]))}W.NTT.decode(R),Me(R,f[C]);let{r1:G}=wt(R);H.push(G)}return d.clean(),V(R,B,A,u,f),fe.encode([L,H])},sign:(p,L,T={})=>{Ne(T),Dn(T);let{extraEntropy:x,externalMu:u=!1}=T,[f,A,d,B,H,R]=Ae.decode(L),C=[],G=_(f);for(let m=0;m<n;m++){let X=[];for(let q=0;q<r;q++)X.push(Rt(G.get(q,m)));C.push(X)}G.clean();for(let m=0;m<r;m++)W.NTT.encode(B[m]);for(let m=0;m<n;m++)W.NTT.encode(H[m]),W.NTT.encode(R[m]);let S=u?p:re.create({dkLen:w}).update(d).update(p).digest(),j=x===!1?new Uint8Array(32):x===void 0?Se(ze):x;be(j,32,"extraEntropy");let D=re.create({dkLen:w}).update(A).update(j).update(S).digest();be(D,w);let ee=k(D,M.bytesLen);e:for(let m=0;;){let X=[];for(let z=0;z<r;z++,m++)X.push(M.decode(ee.get(m&255,m>>8)()));let q=X.map(z=>W.NTT.encode(z.slice())),Y=[];for(let z=0;z<n;z++){let ne=me(Z);for(let ie=0;ie<r;ie++)Me(ne,Ke(C[z][ie],q[ie]));W.NTT.decode(ne),Y.push(ne)}let oe=Y.map(z=>z.map(N)),te=re.create({dkLen:y}).update(S).update($.encode(oe)).digest(),de=W.NTT.encode(gt(te)),Te=B.map(z=>Ke(z,de));for(let z=0;z<r;z++)if(Me(W.NTT.decode(Te[z]),X[z]),yt(Te[z],o-E))continue e;let _e=0,se=[];for(let z=0;z<n;z++){let ne=W.NTT.decode(Ke(H[z],de)),ie=zn(Y[z],ne).map(b);if(yt(ie,c-E))continue e;let xe=W.NTT.decode(Ke(R[z],de));if(yt(xe,c))continue e;Me(ie,xe);let Le=At(ie,oe[z]);se.push(Le.v),_e+=Le.cnt}if(_e>a)continue;ee.clean();let Ce=pe.encode([te,Te,se]);return V(te,Te,se,de,oe,Y,q,X,D,B,H,R,...C),u||V(S),Ce}throw new Error("Unreachable code path reached, report this error")},verify:(p,L,T,x={})=>{Dn(x);let{externalMu:u=!1}=x,[f,A]=fe.decode(T),d=re(T,{dkLen:h});if(p.length!==pe.bytesLen)return!1;let[B,H,R]=pe.decode(p);if(R===!1)return!1;for(let m=0;m<r;m++)if(yt(H[m],o-E))return!1;let C=u?L:re.create({dkLen:w}).update(d).update(L).digest(),G=W.NTT.encode(gt(B)),S=H.map(m=>m.slice());for(let m=0;m<r;m++)W.NTT.encode(S[m]);let j=[],D=_(f);for(let m=0;m<n;m++){let X=Ke(W.NTT.encode(Dr(A[m])),G),q=me(Z);for(let oe=0;oe<r;oe++){let te=Rt(D.get(oe,m));Me(q,Ke(te,S[oe]))}let Y=W.NTT.decode(zn(q,X));j.push(mt(Y,R[m]))}D.clean();let ee=re.create({dkLen:y}).update(C).update($.encode(j)).digest();for(let m of R)if(!(m.reduce((q,Y)=>q+Y,0)<=a))return!1;for(let m of H)if(yt(m,o-E))return!1;return Ie(B,ee)}});return Object.freeze({info:Object.freeze({type:"ml-dsa"}),internal:ue,securityLevel:O,keygen:ue.keygen,lengths:ue.lengths,getPublicKey:ue.getPublicKey,sign:(p,L,T={})=>{Ne(T);let x=ot(p,T.context),u=ue.sign(x,L,T);return V(x),u},verify:(p,L,T,x={})=>(Ze(x),ue.verify(p,ot(L,x.context),T)),prehash:p=>(Ot(p,O),Object.freeze({info:Object.freeze({type:"hashml-dsa"}),securityLevel:O,lengths:ue.lengths,keygen:ue.keygen,getPublicKey:ue.getPublicKey,sign:(L,T,x={})=>{Ne(x);let u=st(p,L,x.context),f=ue.sign(u,T,x);return V(u),f},verify:(L,T,x,u={})=>(Ze(u),ue.verify(L,st(p,T,u.context),x))}))})}var Wn=Xt({...Vt[2],CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:32,XOF128:ct,XOF256:St,securityLevel:128}),$n=Xt({...Vt[3],CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:48,XOF128:ct,XOF256:St,securityLevel:192}),Vn=Xt({...Vt[5],CRH_BYTES:64,TR_BYTES:64,C_TILDE_BYTES:64,XOF128:ct,XOF256:St,securityLevel:256});var Ut=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,n){if(xn(t),Q(n,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?t.create().update(n).digest():n);for(let c=0;c<o.length;c++)o[c]^=54;this.iHash.update(o),this.oHash=t.create();for(let c=0;c<o.length;c++)o[c]^=106;this.oHash.update(o),Ee(o)}update(t){return He(this),this.iHash.update(t),this}digestInto(t){He(this),et(t,this),this.finished=!0;let n=t.subarray(0,this.outputLen);this.iHash.digestInto(n),this.oHash.update(n),this.oHash.digestInto(n),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:n,iHash:r,finished:o,destroyed:c,blockLen:s,outputLen:i}=this;return t=t,t.finished=o,t.destroyed=c,t.blockLen=s,t.outputLen=i,t.oHash=n._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Xn=(()=>{let e=((t,n,r)=>new Ut(t,n).update(r).digest());return e.create=(t,n)=>new Ut(t,n),e})();function Yn(e,t,n){return e&t^~e&n}function Zn(e,t,n){return e&t^e&n^t&n}var bt=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,n,r,o){this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Xe(this.buffer)}update(t){He(this),Q(t);let{view:n,buffer:r,blockLen:o}=this,c=t.length;for(let s=0;s<c;){let i=Math.min(o-this.pos,c-s);if(i===o){let a=Xe(t);for(;o<=c-s;s+=o)this.process(a,s);continue}r.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){He(this),et(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:c}=this,{pos:s}=this;n[s++]=128,Ee(this.buffer.subarray(s)),this.padOffset>o-s&&(this.process(r,0),s=0);for(let y=s;y<o;y++)n[y]=0;r.setBigUint64(o-8,BigInt(this.length*8),c),this.process(r,0);let i=Xe(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let w=a/4,h=this.get();if(w>h.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y<w;y++)i.setUint32(4*y,h[y],c)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:c,destroyed:s,pos:i}=this;return t.destroyed=s,t.finished=c,t.length=o,t.pos=i,o%n&&t.buffer.set(r),t}clone(){return this._cloneInto()}},Re=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var ae=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Gr=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),je=new Uint32Array(64),Yt=class extends bt{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:n,C:r,D:o,E:c,F:s,G:i,H:a}=this;return[t,n,r,o,c,s,i,a]}set(t,n,r,o,c,s,i,a){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=c|0,this.F=s|0,this.G=i|0,this.H=a|0}process(t,n){for(let y=0;y<16;y++,n+=4)je[y]=t.getUint32(n,!1);for(let y=16;y<64;y++){let _=je[y-15],k=je[y-2],O=ke(_,7)^ke(_,18)^_>>>3,E=ke(k,17)^ke(k,19)^k>>>10;je[y]=E+je[y-7]+O+je[y-16]|0}let{A:r,B:o,C:c,D:s,E:i,F:a,G:w,H:h}=this;for(let y=0;y<64;y++){let _=ke(i,6)^ke(i,11)^ke(i,25),k=h+_+Yn(i,a,w)+Gr[y]+je[y]|0,E=(ke(r,2)^ke(r,13)^ke(r,22))+Zn(r,o,c)|0;h=w,w=a,a=i,i=s+k|0,s=c,c=o,o=r,r=k+E|0}r=r+this.A|0,o=o+this.B|0,c=c+this.C|0,s=s+this.D|0,i=i+this.E|0,a=a+this.F|0,w=w+this.G|0,h=h+this.H|0,this.set(r,o,c,s,i,a,w,h)}roundClean(){Ee(je)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ee(this.buffer)}},Zt=class extends Yt{A=Re[0]|0;B=Re[1]|0;C=Re[2]|0;D=Re[3]|0;E=Re[4]|0;F=Re[5]|0;G=Re[6]|0;H=Re[7]|0;constructor(){super(32)}};var qn=kt(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),zr=qn[0],Wr=qn[1],ve=new Uint32Array(80),De=new Uint32Array(80),qt=class extends bt{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:n,Bh:r,Bl:o,Ch:c,Cl:s,Dh:i,Dl:a,Eh:w,El:h,Fh:y,Fl:_,Gh:k,Gl:O,Hh:E,Hl:U}=this;return[t,n,r,o,c,s,i,a,w,h,y,_,k,O,E,U]}set(t,n,r,o,c,s,i,a,w,h,y,_,k,O,E,U){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=o|0,this.Ch=c|0,this.Cl=s|0,this.Dh=i|0,this.Dl=a|0,this.Eh=w|0,this.El=h|0,this.Fh=y|0,this.Fl=_|0,this.Gh=k|0,this.Gl=O|0,this.Hh=E|0,this.Hl=U|0}process(t,n){for(let l=0;l<16;l++,n+=4)ve[l]=t.getUint32(n),De[l]=t.getUint32(n+=4);for(let l=16;l<80;l++){let I=ve[l-15]|0,F=De[l-15]|0,P=We(I,F,1)^We(I,F,8)^Mt(I,F,7),v=$e(I,F,1)^$e(I,F,8)^Kt(I,F,7),K=ve[l-2]|0,g=De[l-2]|0,M=We(K,g,19)^ut(K,g,61)^Mt(K,g,6),J=$e(K,g,19)^dt(K,g,61)^Kt(K,g,6),$=un(v,J,De[l-7],De[l-16]),fe=dn($,P,M,ve[l-7],ve[l-16]);ve[l]=fe|0,De[l]=$|0}let{Ah:r,Al:o,Bh:c,Bl:s,Ch:i,Cl:a,Dh:w,Dl:h,Eh:y,El:_,Fh:k,Fl:O,Gh:E,Gl:U,Hh:N,Hl:b}=this;for(let l=0;l<80;l++){let I=We(y,_,14)^We(y,_,18)^ut(y,_,41),F=$e(y,_,14)^$e(y,_,18)^dt(y,_,41),P=y&k^~y&E,v=_&O^~_&U,K=ln(b,F,v,Wr[l],De[l]),g=hn(K,N,I,P,zr[l],ve[l]),M=K|0,J=We(r,o,28)^ut(r,o,34)^ut(r,o,39),$=$e(r,o,28)^dt(r,o,34)^dt(r,o,39),fe=r&c^r&i^c&i,Ae=o&s^o&a^s&a;N=E|0,b=U|0,E=k|0,U=O|0,k=y|0,O=_|0,{h:y,l:_}=Be(w|0,h|0,g|0,M|0),w=i|0,h=a|0,i=c|0,a=s|0,c=r|0,s=o|0;let pe=an(M,$,Ae);r=fn(pe,g,J,fe),o=pe|0}({h:r,l:o}=Be(this.Ah|0,this.Al|0,r|0,o|0)),{h:c,l:s}=Be(this.Bh|0,this.Bl|0,c|0,s|0),{h:i,l:a}=Be(this.Ch|0,this.Cl|0,i|0,a|0),{h:w,l:h}=Be(this.Dh|0,this.Dl|0,w|0,h|0),{h:y,l:_}=Be(this.Eh|0,this.El|0,y|0,_|0),{h:k,l:O}=Be(this.Fh|0,this.Fl|0,k|0,O|0),{h:E,l:U}=Be(this.Gh|0,this.Gl|0,E|0,U|0),{h:N,l:b}=Be(this.Hh|0,this.Hl|0,N|0,b|0),this.set(r,o,c,s,i,a,w,h,y,_,k,O,E,U,N,b)}roundClean(){Ee(ve,De)}destroy(){this.destroyed=!0,Ee(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Qt=class extends qt{Ah=ae[0]|0;Al=ae[1]|0;Bh=ae[2]|0;Bl=ae[3]|0;Ch=ae[4]|0;Cl=ae[5]|0;Dh=ae[6]|0;Dl=ae[7]|0;Eh=ae[8]|0;El=ae[9]|0;Fh=ae[10]|0;Fl=ae[11]|0;Gh=ae[12]|0;Gl=ae[13]|0;Hh=ae[14]|0;Hl=ae[15]|0;constructor(){super(64)}};var Ct=nt(()=>new Zt,Fe(1));var Qn=nt(()=>new Qt,Fe(3));var it=Object.freeze({"128f":Object.freeze({W:16,N:16,H:66,D:22,K:33,A:6,securityLevel:128}),"128s":Object.freeze({W:16,N:16,H:63,D:7,K:14,A:12,securityLevel:128}),"192f":Object.freeze({W:16,N:24,H:66,D:22,K:33,A:8,securityLevel:192}),"192s":Object.freeze({W:16,N:24,H:63,D:7,K:17,A:14,securityLevel:192}),"256f":Object.freeze({W:16,N:32,H:68,D:17,K:35,A:9,securityLevel:256}),"256s":Object.freeze({W:16,N:32,H:64,D:8,K:22,A:14,securityLevel:256})}),he={WOTS:0,WOTSPK:1,HASHTREE:2,FORSTREE:3,FORSPK:4,WOTSPRF:5,FORSPRF:6};function $r(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":"0x"+e)}function Jn(e){return $r(gn(e))}function Vr(e,t){return wn(e.toString(16).padStart(t*2,"0"))}var Jt=(e,t)=>{let n=qe(t);return r=>{let o=new Uint32Array(e);for(let c=0,s=0,i=0,a=0;c<e;c++){for(;i<t;)a=a<<8|r[s++],i+=8;i-=t,o[c]=a>>>i&n}return o}};function en(e){return(1n<<BigInt(e))-1n}function at(e,t){let n=t,{N:r,W:o,H:c,D:s,K:i,A:a,securityLevel:w}=e,h=n.getContext(e);if(o!==16)throw new Error("Unsupported Winternitz parameter");let y=4,_=Math.floor(8*r/y),k=r<=8?2:r<=136?3:4,O=Math.floor(c/s),E=_+k,U=22,N=0,b=1,l=9,I=12,F=13,P=17,v=18,K=21;n.isCompressed||(U=32,N+=3,b+=7,l+=10,I+=10,F+=10,P+=10,v+=10,K+=10);let g=(u,f=new Uint8Array(U))=>{let{type:A,height:d,tree:B,layer:H,index:R,chain:C,hash:G,keypair:S}=u,{subtreeAddr:j,keypairAddr:D}=u,ee=Xe(f);return d!==void 0&&(f[P]=d),H!==void 0&&(f[N]=H),A!==void 0&&(f[l]=A),C!==void 0&&(f[P]=C),G!==void 0&&(f[K]=G),R!==void 0&&ee.setUint32(v,R,!1),j&&f.set(j.subarray(0,b+8)),B!==void 0&&ee.setBigUint64(b,B,!1),S!==void 0&&(f[F]=S,O>8&&(f[I]=S>>>8)),D&&(f.set(D.subarray(0,b+8)),f[F]=D[F],O>8&&(f[I]=D[I])),f},M=Jt(k,y),J=u=>{let f=Jt(_,y)(u),A=0;for(let H=0;H<f.length;H++)A+=o-1-f[H];A<<=(8-k*y%8)%8;let d=M(Vr(A,Math.ceil(k*y/8))),B=new Uint32Array(E);return B.set(f),B.set(d,f.length),B},$=Jt(i,a),fe=O*(s-1),Ae=O,pe=ce("hashedMessage",Math.ceil(a*i/8),Math.ceil(fe/8),Math.ceil(O/8)),Ge=(u,f,A,d)=>{let H=d.Hmsg(u,f,A,pe.bytesLen),[R,C,G]=pe.decode(H),S=Jn(C)&en(fe),j=Number(Jn(G))&qe(Ae);return{tree:S,leafIdx:j,md:R}},ft=(u,f)=>function(d,B,H,R,C){let G=d,S=f,j=(1<<u)-1,D=new Uint8Array(u*r),ee=new Uint8Array(u*r);for(let m=0;;m++){let X=new Uint8Array(2*r),q=X.subarray(0,r),Y=X.subarray(r),oe=m+H;Y.set(S(B,oe,G,C));let te=0;for(let de=m,Te=H,_e=B;;te++,de>>>=1,_e>>>=1,Te>>>=1){if(te===u)return{root:Y,authPath:ee};if((de^_e)===1&&ee.subarray(te*r).set(Y),(de&1)===0&&m<j)break;g({height:te+1,index:(de>>1)+(Te>>1)},R),q.set(D.subarray(te*r).subarray(0,r)),Y.set(G.thashN(2,X,R))}D.subarray(te*r).set(Y)}throw new Error("Unreachable code path reached, report this error")},gt=ft(O,(u,f,A,d)=>{let B=A,H=new Uint8Array(E*r),R=f===u?0:-1>>>0;g({keypair:f},d.leafAddr),g({keypair:f},d.pkAddr);for(let C=0;C<E;C++){let G=d.wotsSteps[C]|R,S=H.subarray(C*r,(C+1)*r);g({chain:C,hash:0,type:he.WOTSPRF},d.leafAddr),S.set(B.PRFaddr(d.leafAddr)),g({type:he.WOTS},d.leafAddr);for(let j=0;j===G&&d.wotsSig.subarray(C*r).set(S),j!==o-1;j++)g({hash:j},d.leafAddr),S.set(B.thash1(S,d.leafAddr))}return B.thashN(E,H,d.pkAddr)}),wt=ft(a,(u,f,A,d)=>{let B=A;g({type:he.FORSPRF,index:f},d);let H=B.PRFaddr(d);return g({type:he.FORSTREE},d),B.thash1(H,d)}),mt=(u,f,A,d,B=new Uint8Array(r))=>{g({type:he.HASHTREE},A);let H={wotsSig:new Uint8Array(L.bytesLen),wotsSteps:J(B),leafAddr:g({subtreeAddr:f}),pkAddr:g({type:he.WOTSPK,subtreeAddr:f})},{root:R,authPath:C}=gt(u,d,0,A,H);return{root:R,sigWots:H.wotsSig.subarray(0,E*r),sigAuth:C}},At=(u,f,A,d,B,H,R)=>{let C=H,G=new Uint8Array(2*r),S=G.subarray(0,r),j=G.subarray(r,2*r);(f&1)!==0?(j.set(u.subarray(0,r)),S.set(d.subarray(0,r))):(S.set(u.subarray(0,r)),j.set(d.subarray(0,r))),f>>>=1,A>>>=1;for(let D=0;D<B-1;D++,f>>=1,A>>=1){g({height:D+1,index:f+A},R);let ee=d.subarray((D+1)*r,(D+2)*r);(f&1)!==0?(j.set(C.thashN(2,G,R)),S.set(ee)):(G.set(C.thashN(2,G,R)),j.set(ee))}return g({height:B,index:f+A},R),C.thashN(2,G,R)},ze=ce("seed",r,r,r),Ue=ce("publicKey",r,r),ue=ce("secretKey",r,r,Ue.bytesLen),p=ge(ce("fors",r,r*a),i),L=ge(ce("wots",E*r,O*r),s),T=ce("signature",r,p,L),x=Object.freeze({info:Object.freeze({type:"internal-slh-dsa"}),lengths:Object.freeze({publicKey:Ue.bytesLen,secretKey:ue.bytesLen,signature:T.bytesLen,seed:ze.bytesLen,signRand:r}),keygen(u){u!==void 0&&be(u,ze.bytesLen,"seed"),u=u===void 0?Se(ze.bytesLen):rt(u);let[f,A,d]=ze.decode(u),B=h(d,f),H=g({layer:s-1}),R=g({layer:s-1}),{root:C}=mt(B,R,H,-1>>>0),G=Ue.encode([d,C]),S=ue.encode([f,A,G]);return B.clean(),V(f,A,C,R,H),{publicKey:G,secretKey:S}},getPublicKey:u=>{let[f,A,d]=ue.decode(u);return Uint8Array.from(d)},sign:(u,f,A={})=>{Ne(A);let{extraEntropy:d}=A,[B,H,R]=ue.decode(f),[C,G]=Ue.decode(R);d===!1?d=rt(C):d===void 0?d=Se(r):d=rt(d),be(d,r);let S=h(C,B),j=S.PRFmsg(H,d,u),{tree:D,leafIdx:ee,md:m}=Ge(j,R,u,S),X=g({type:he.WOTS,tree:D,keypair:ee}),q=[],Y=g({keypairAddr:X}),oe=g({keypairAddr:X}),te=$(m),de=[];for(let ne=0;ne<te.length;ne++){let ie=ne<<a;g({type:he.FORSPRF,height:0,index:te[ne]+ie},oe);let xe=S.PRFaddr(oe);g({type:he.FORSTREE},oe);let{root:Le,authPath:Tt}=wt(S,te[ne],ie,oe,Y);q.push(Le),de.push([xe,Tt])}let Te=g({type:he.FORSPK,keypairAddr:X}),_e=S.thashN(i,Ye(...q),Te),se=g({type:he.HASHTREE}),Ce=[];for(let ne=0;ne<s;ne++,D>>=BigInt(O)){g({tree:D,layer:ne},se),g({subtreeAddr:se,keypair:ee},X);let{sigWots:ie,sigAuth:xe,root:Le}=mt(S,X,se,ee,_e);_e.set(Le),V(Le),Ce.push([ie,xe]),ee=Number(D&en(O))}S.clean();let z=T.encode([j,de,Ce]);return V(j,d,se,X,Y,oe,te,q),z},verify:(u,f,A)=>{let[d,B]=Ue.decode(A),[H,R,C]=T.decode(u),G=A;if(u.length!==T.bytesLen)return!1;let S=h(d),{tree:j,leafIdx:D,md:ee}=Ge(H,G,f,S),m=g({type:he.WOTS,tree:j,keypair:D}),X=[],q=g({type:he.FORSTREE,keypairAddr:m}),Y=$(ee);for(let se=0;se<R.length;se++){let[Ce,z]=R[se],ne=se<<a;g({height:0,index:Y[se]+ne},q);let ie=S.thash1(Ce,q);X.push(At(ie,Y[se],ne,z,a,S,q))}let oe=g({type:he.FORSPK,keypairAddr:m}),te=S.thashN(i,Ye(...X),oe),de=g({type:he.HASHTREE}),Te=g({type:he.WOTSPK}),_e=new Uint8Array(E*r);for(let se=0;se<C.length;se++,j>>=BigInt(O)){let[Ce,z]=C[se];g({tree:j,layer:se},de),g({subtreeAddr:de,keypair:D},m),g({keypairAddr:m},Te);let ne=J(te);for(let xe=0;xe<E;xe++){g({chain:xe},m);let Le=o-1-ne[xe],Tt=ne[xe],Ft=_e.subarray(xe*r);Ft.set(Ce.subarray(xe*r,(xe+1)*r));for(let Et=Tt;Et<Tt+Le&&Et<o;Et++)g({hash:Et},m),Ft.set(S.thash1(Ft,m))}let ie=S.thashN(E,_e,Te);te=At(ie,D,0,z,O,S,de),D=Number(j&en(O))}return Ie(te,B)}});return Object.freeze({info:Object.freeze({type:"slh-dsa"}),internal:x,securityLevel:w,lengths:x.lengths,keygen:x.keygen,getPublicKey:x.getPublicKey,sign:(u,f,A={})=>{Ne(A);let d=ot(u,A.context),B=x.sign(d,f,A);return V(d),B},verify:(u,f,A,d={})=>(Ze(d),x.verify(u,ot(f,d.context),A)),prehash:u=>{Ot(u,w);let f=u;return Object.freeze({info:Object.freeze({type:"hashslh-dsa"}),lengths:x.lengths,keygen:x.keygen,getPublicKey:x.getPublicKey,sign:(A,d,B={})=>{Ne(B);let H=st(f,A,B.context),R=x.sign(H,d,B);return V(H),R},verify:(A,d,B,H={})=>(Ze(H),x.verify(A,st(f,d,H.context),B))})}})}var Xr=()=>e=>(t,n)=>{let{N:r}=e,o={prf:0,thash:0,hmsg:0,gen_message_random:0},c=re.create({}).update(t),s=c.clone(),i=(a,w,h)=>(o.thash++,c._cloneInto(s).update(h).update(w.subarray(0,a*r)).xof(r));return{PRFaddr:a=>{if(!n)throw new Error("no sk seed");return o.prf++,c._cloneInto(s).update(a).update(n).xof(r)},PRFmsg:(a,w,h)=>(o.gen_message_random++,re.create({}).update(a).update(w).update(h).digest().subarray(0,r)),Hmsg:(a,w,h,y)=>(o.hmsg++,re.create({}).update(a.subarray(0,r)).update(w).update(h).xof(y)),thash1:i.bind(null,1),thashN:i,clean:()=>{c.destroy(),s.destroy()}}},tn={getContext:Xr()},er=at(it["128f"],tn);var tr=at(it["192f"],tn);var nr=at(it["256f"],tn);var rr=(e,t)=>n=>(r,o)=>{let{N:c}=n,s={prf:0,thash:0,hmsg:0,gen_message_random:0,mgf1:0},i=new Uint8Array(4),a=Xe(i),w=e.create().update(r).update(new Uint8Array(e.blockLen-c)),h=t.create().update(r).update(new Uint8Array(t.blockLen-c)),y=w.clone(),_=h.clone();function k(E,U,N){s.mgf1++;let b=new Uint8Array(Math.ceil(U/N.outputLen)*N.outputLen);if(U>2**32)throw new Error("mask too long");for(let l=0,I=b;I.length;l++)a.setUint32(0,l,!1),N.create().update(E).update(i).digestInto(I),I=I.subarray(N.outputLen);return V(b.subarray(U)),b.subarray(0,U)}let O=(E,U,N)=>(b,l,I)=>(s.thash++,U._cloneInto(N).update(I).update(l.subarray(0,b*c)).digest().subarray(0,c));return{PRFaddr:E=>{if(!o)throw new Error("No sk seed");return s.prf++,w._cloneInto(y).update(E).update(o).digest().subarray(0,c)},PRFmsg:(E,U,N)=>(s.gen_message_random++,Xn.create(t,E).update(U).update(N).digest().subarray(0,c)),Hmsg:(E,U,N,b)=>{s.hmsg++;let l=Ye(E.subarray(0,c),U.subarray(0,c),t.create().update(E.subarray(0,c)).update(U).update(N).digest());return k(l,b,t)},thash1:O(e,w,y).bind(null,1),thashN:O(t,h,_),clean:()=>{w.destroy(),h.destroy(),y.destroy(),_.destroy()}}},Yr={isCompressed:!0,getContext:rr(Ct,Ct)},or={isCompressed:!0,getContext:rr(Ct,Qn)},sr=at(it["128f"],Yr);var cr=at(it["192f"],or);var ir=at(it["256f"],or);0&&(module.exports={ml_dsa44,ml_dsa65,ml_dsa87,ml_kem1024,ml_kem512,ml_kem768,slh_dsa_sha2_128f,slh_dsa_sha2_192f,slh_dsa_sha2_256f,slh_dsa_shake_128f,slh_dsa_shake_192f,slh_dsa_shake_256f});
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __getOwnPropNames = Object.getOwnPropertyNames;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+
24
+ // _entry.mjs
25
+ var entry_exports = {};
26
+ __export(entry_exports, {
27
+ ml_dsa44: () => ml_dsa44,
28
+ ml_dsa65: () => ml_dsa65,
29
+ ml_dsa87: () => ml_dsa87,
30
+ ml_kem1024: () => ml_kem1024,
31
+ ml_kem512: () => ml_kem512,
32
+ ml_kem768: () => ml_kem768,
33
+ slh_dsa_sha2_128f: () => slh_dsa_sha2_128f,
34
+ slh_dsa_sha2_192f: () => slh_dsa_sha2_192f,
35
+ slh_dsa_sha2_256f: () => slh_dsa_sha2_256f,
36
+ slh_dsa_shake_128f: () => slh_dsa_shake_128f,
37
+ slh_dsa_shake_192f: () => slh_dsa_shake_192f,
38
+ slh_dsa_shake_256f: () => slh_dsa_shake_256f
39
+ });
40
+ module.exports = __toCommonJS(entry_exports);
41
+
42
+ // node_modules/@noble/hashes/_u64.js
43
+ var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
44
+ var _32n = /* @__PURE__ */ BigInt(32);
45
+ function fromBig(n, le = false) {
46
+ if (le)
47
+ return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) };
48
+ return { h: Number(n >> _32n & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
49
+ }
50
+ function split(lst, le = false) {
51
+ const len = lst.length;
52
+ let Ah = new Uint32Array(len);
53
+ let Al = new Uint32Array(len);
54
+ for (let i = 0; i < len; i++) {
55
+ const { h, l } = fromBig(lst[i], le);
56
+ [Ah[i], Al[i]] = [h, l];
57
+ }
58
+ return [Ah, Al];
59
+ }
60
+ var shrSH = (h, _l, s) => h >>> s;
61
+ var shrSL = (h, l, s) => h << 32 - s | l >>> s;
62
+ var rotrSH = (h, l, s) => h >>> s | l << 32 - s;
63
+ var rotrSL = (h, l, s) => h << 32 - s | l >>> s;
64
+ var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32;
65
+ var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s;
66
+ var rotlSH = (h, l, s) => h << s | l >>> 32 - s;
67
+ var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
68
+ var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
69
+ var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
70
+ function add(Ah, Al, Bh, Bl) {
71
+ const l = (Al >>> 0) + (Bl >>> 0);
72
+ return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 };
73
+ }
74
+ var add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);
75
+ var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0;
76
+ var add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
77
+ var add4H = (low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0;
78
+ var add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
79
+ var add5H = (low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0;
80
+
81
+ // node_modules/@noble/hashes/utils.js
82
+ function isBytes(a) {
83
+ return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array" && "BYTES_PER_ELEMENT" in a && a.BYTES_PER_ELEMENT === 1;
84
+ }
85
+ function anumber(n, title = "") {
86
+ if (typeof n !== "number") {
87
+ const prefix = title && `"${title}" `;
88
+ throw new TypeError(`${prefix}expected number, got ${typeof n}`);
89
+ }
90
+ if (!Number.isSafeInteger(n) || n < 0) {
91
+ const prefix = title && `"${title}" `;
92
+ throw new RangeError(`${prefix}expected integer >= 0, got ${n}`);
93
+ }
94
+ }
95
+ function abytes(value, length, title = "") {
96
+ const bytes = isBytes(value);
97
+ const len = value?.length;
98
+ const needsLen = length !== void 0;
99
+ if (!bytes || needsLen && len !== length) {
100
+ const prefix = title && `"${title}" `;
101
+ const ofLen = needsLen ? ` of length ${length}` : "";
102
+ const got = bytes ? `length=${len}` : `type=${typeof value}`;
103
+ const message = prefix + "expected Uint8Array" + ofLen + ", got " + got;
104
+ if (!bytes)
105
+ throw new TypeError(message);
106
+ throw new RangeError(message);
107
+ }
108
+ return value;
109
+ }
110
+ function ahash(h) {
111
+ if (typeof h !== "function" || typeof h.create !== "function")
112
+ throw new TypeError("Hash must wrapped by utils.createHasher");
113
+ anumber(h.outputLen);
114
+ anumber(h.blockLen);
115
+ if (h.outputLen < 1)
116
+ throw new Error('"outputLen" must be >= 1');
117
+ if (h.blockLen < 1)
118
+ throw new Error('"blockLen" must be >= 1');
119
+ }
120
+ function aexists(instance, checkFinished = true) {
121
+ if (instance.destroyed)
122
+ throw new Error("Hash instance has been destroyed");
123
+ if (checkFinished && instance.finished)
124
+ throw new Error("Hash#digest() has already been called");
125
+ }
126
+ function aoutput(out, instance) {
127
+ abytes(out, void 0, "digestInto() output");
128
+ const min = instance.outputLen;
129
+ if (out.length < min) {
130
+ throw new RangeError('"digestInto() output" expected to be of length >=' + min);
131
+ }
132
+ }
133
+ function u32(arr) {
134
+ return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
135
+ }
136
+ function clean(...arrays) {
137
+ for (let i = 0; i < arrays.length; i++) {
138
+ arrays[i].fill(0);
139
+ }
140
+ }
141
+ function createView(arr) {
142
+ return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
143
+ }
144
+ function rotr(word, shift) {
145
+ return word << 32 - shift | word >>> shift;
146
+ }
147
+ var isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)();
148
+ function byteSwap(word) {
149
+ return word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255;
150
+ }
151
+ function byteSwap32(arr) {
152
+ for (let i = 0; i < arr.length; i++) {
153
+ arr[i] = byteSwap(arr[i]);
154
+ }
155
+ return arr;
156
+ }
157
+ var swap32IfBE = isLE ? (u) => u : byteSwap32;
158
+ var hasHexBuiltin = /* @__PURE__ */ (() => (
159
+ // @ts-ignore
160
+ typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function"
161
+ ))();
162
+ var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
163
+ function bytesToHex(bytes) {
164
+ abytes(bytes);
165
+ if (hasHexBuiltin)
166
+ return bytes.toHex();
167
+ let hex = "";
168
+ for (let i = 0; i < bytes.length; i++) {
169
+ hex += hexes[bytes[i]];
170
+ }
171
+ return hex;
172
+ }
173
+ var asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };
174
+ function asciiToBase16(ch) {
175
+ if (ch >= asciis._0 && ch <= asciis._9)
176
+ return ch - asciis._0;
177
+ if (ch >= asciis.A && ch <= asciis.F)
178
+ return ch - (asciis.A - 10);
179
+ if (ch >= asciis.a && ch <= asciis.f)
180
+ return ch - (asciis.a - 10);
181
+ return;
182
+ }
183
+ function hexToBytes(hex) {
184
+ if (typeof hex !== "string")
185
+ throw new TypeError("hex string expected, got " + typeof hex);
186
+ if (hasHexBuiltin) {
187
+ try {
188
+ return Uint8Array.fromHex(hex);
189
+ } catch (error) {
190
+ if (error instanceof SyntaxError)
191
+ throw new RangeError(error.message);
192
+ throw error;
193
+ }
194
+ }
195
+ const hl = hex.length;
196
+ const al = hl / 2;
197
+ if (hl % 2)
198
+ throw new RangeError("hex string expected, got unpadded hex of length " + hl);
199
+ const array = new Uint8Array(al);
200
+ for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {
201
+ const n1 = asciiToBase16(hex.charCodeAt(hi));
202
+ const n2 = asciiToBase16(hex.charCodeAt(hi + 1));
203
+ if (n1 === void 0 || n2 === void 0) {
204
+ const char = hex[hi] + hex[hi + 1];
205
+ throw new RangeError('hex string expected, got non-hex character "' + char + '" at index ' + hi);
206
+ }
207
+ array[ai] = n1 * 16 + n2;
208
+ }
209
+ return array;
210
+ }
211
+ function concatBytes(...arrays) {
212
+ let sum = 0;
213
+ for (let i = 0; i < arrays.length; i++) {
214
+ const a = arrays[i];
215
+ abytes(a);
216
+ sum += a.length;
217
+ }
218
+ const res = new Uint8Array(sum);
219
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
220
+ const a = arrays[i];
221
+ res.set(a, pad);
222
+ pad += a.length;
223
+ }
224
+ return res;
225
+ }
226
+ function createHasher(hashCons, info = {}) {
227
+ const hashC = (msg, opts2) => hashCons(opts2).update(msg).digest();
228
+ const tmp = hashCons(void 0);
229
+ hashC.outputLen = tmp.outputLen;
230
+ hashC.blockLen = tmp.blockLen;
231
+ hashC.canXOF = tmp.canXOF;
232
+ hashC.create = (opts2) => hashCons(opts2);
233
+ Object.assign(hashC, info);
234
+ return Object.freeze(hashC);
235
+ }
236
+ function randomBytes(bytesLength = 32) {
237
+ anumber(bytesLength, "bytesLength");
238
+ const cr = typeof globalThis === "object" ? globalThis.crypto : null;
239
+ if (typeof cr?.getRandomValues !== "function")
240
+ throw new Error("crypto.getRandomValues must be defined");
241
+ if (bytesLength > 65536)
242
+ throw new RangeError(`"bytesLength" expected <= 65536, got ${bytesLength}`);
243
+ return cr.getRandomValues(new Uint8Array(bytesLength));
244
+ }
245
+ var oidNist = (suffix) => ({
246
+ // Current NIST hashAlgs suffixes used here fit in one DER subidentifier octet.
247
+ // Larger suffix values would need base-128 OID encoding and a different length byte.
248
+ oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix])
249
+ });
250
+
251
+ // node_modules/@noble/hashes/sha3.js
252
+ var _0n = BigInt(0);
253
+ var _1n = BigInt(1);
254
+ var _2n = BigInt(2);
255
+ var _7n = BigInt(7);
256
+ var _256n = BigInt(256);
257
+ var _0x71n = BigInt(113);
258
+ var SHA3_PI = [];
259
+ var SHA3_ROTL = [];
260
+ var _SHA3_IOTA = [];
261
+ for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
262
+ [x, y] = [y, (2 * x + 3 * y) % 5];
263
+ SHA3_PI.push(2 * (5 * y + x));
264
+ SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64);
265
+ let t = _0n;
266
+ for (let j = 0; j < 7; j++) {
267
+ R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n;
268
+ if (R & _2n)
269
+ t ^= _1n << (_1n << BigInt(j)) - _1n;
270
+ }
271
+ _SHA3_IOTA.push(t);
272
+ }
273
+ var IOTAS = split(_SHA3_IOTA, true);
274
+ var SHA3_IOTA_H = IOTAS[0];
275
+ var SHA3_IOTA_L = IOTAS[1];
276
+ var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s);
277
+ var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s);
278
+ function keccakP(s, rounds = 24) {
279
+ anumber(rounds, "rounds");
280
+ if (rounds < 1 || rounds > 24)
281
+ throw new Error('"rounds" expected integer 1..24');
282
+ const B = new Uint32Array(5 * 2);
283
+ for (let round = 24 - rounds; round < 24; round++) {
284
+ for (let x = 0; x < 10; x++)
285
+ B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
286
+ for (let x = 0; x < 10; x += 2) {
287
+ const idx1 = (x + 8) % 10;
288
+ const idx0 = (x + 2) % 10;
289
+ const B0 = B[idx0];
290
+ const B1 = B[idx0 + 1];
291
+ const Th = rotlH(B0, B1, 1) ^ B[idx1];
292
+ const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
293
+ for (let y = 0; y < 50; y += 10) {
294
+ s[x + y] ^= Th;
295
+ s[x + y + 1] ^= Tl;
296
+ }
297
+ }
298
+ let curH = s[2];
299
+ let curL = s[3];
300
+ for (let t = 0; t < 24; t++) {
301
+ const shift = SHA3_ROTL[t];
302
+ const Th = rotlH(curH, curL, shift);
303
+ const Tl = rotlL(curH, curL, shift);
304
+ const PI = SHA3_PI[t];
305
+ curH = s[PI];
306
+ curL = s[PI + 1];
307
+ s[PI] = Th;
308
+ s[PI + 1] = Tl;
309
+ }
310
+ for (let y = 0; y < 50; y += 10) {
311
+ const b0 = s[y], b1 = s[y + 1], b2 = s[y + 2], b3 = s[y + 3];
312
+ s[y] ^= ~s[y + 2] & s[y + 4];
313
+ s[y + 1] ^= ~s[y + 3] & s[y + 5];
314
+ s[y + 2] ^= ~s[y + 4] & s[y + 6];
315
+ s[y + 3] ^= ~s[y + 5] & s[y + 7];
316
+ s[y + 4] ^= ~s[y + 6] & s[y + 8];
317
+ s[y + 5] ^= ~s[y + 7] & s[y + 9];
318
+ s[y + 6] ^= ~s[y + 8] & b0;
319
+ s[y + 7] ^= ~s[y + 9] & b1;
320
+ s[y + 8] ^= ~b0 & b2;
321
+ s[y + 9] ^= ~b1 & b3;
322
+ }
323
+ s[0] ^= SHA3_IOTA_H[round];
324
+ s[1] ^= SHA3_IOTA_L[round];
325
+ }
326
+ clean(B);
327
+ }
328
+ var Keccak = class _Keccak {
329
+ state;
330
+ pos = 0;
331
+ posOut = 0;
332
+ finished = false;
333
+ state32;
334
+ destroyed = false;
335
+ blockLen;
336
+ suffix;
337
+ outputLen;
338
+ canXOF;
339
+ enableXOF = false;
340
+ rounds;
341
+ // NOTE: we accept arguments in bytes instead of bits here.
342
+ constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
343
+ this.blockLen = blockLen;
344
+ this.suffix = suffix;
345
+ this.outputLen = outputLen;
346
+ this.enableXOF = enableXOF;
347
+ this.canXOF = enableXOF;
348
+ this.rounds = rounds;
349
+ anumber(outputLen, "outputLen");
350
+ if (!(0 < blockLen && blockLen < 200))
351
+ throw new Error("only keccak-f1600 function is supported");
352
+ this.state = new Uint8Array(200);
353
+ this.state32 = u32(this.state);
354
+ }
355
+ clone() {
356
+ return this._cloneInto();
357
+ }
358
+ keccak() {
359
+ swap32IfBE(this.state32);
360
+ keccakP(this.state32, this.rounds);
361
+ swap32IfBE(this.state32);
362
+ this.posOut = 0;
363
+ this.pos = 0;
364
+ }
365
+ update(data) {
366
+ aexists(this);
367
+ abytes(data);
368
+ const { blockLen, state } = this;
369
+ const len = data.length;
370
+ for (let pos = 0; pos < len; ) {
371
+ const take = Math.min(blockLen - this.pos, len - pos);
372
+ for (let i = 0; i < take; i++)
373
+ state[this.pos++] ^= data[pos++];
374
+ if (this.pos === blockLen)
375
+ this.keccak();
376
+ }
377
+ return this;
378
+ }
379
+ finish() {
380
+ if (this.finished)
381
+ return;
382
+ this.finished = true;
383
+ const { state, suffix, pos, blockLen } = this;
384
+ state[pos] ^= suffix;
385
+ if ((suffix & 128) !== 0 && pos === blockLen - 1)
386
+ this.keccak();
387
+ state[blockLen - 1] ^= 128;
388
+ this.keccak();
389
+ }
390
+ writeInto(out) {
391
+ aexists(this, false);
392
+ abytes(out);
393
+ this.finish();
394
+ const bufferOut = this.state;
395
+ const { blockLen } = this;
396
+ for (let pos = 0, len = out.length; pos < len; ) {
397
+ if (this.posOut >= blockLen)
398
+ this.keccak();
399
+ const take = Math.min(blockLen - this.posOut, len - pos);
400
+ out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
401
+ this.posOut += take;
402
+ pos += take;
403
+ }
404
+ return out;
405
+ }
406
+ xofInto(out) {
407
+ if (!this.enableXOF)
408
+ throw new Error("XOF is not possible for this instance");
409
+ return this.writeInto(out);
410
+ }
411
+ xof(bytes) {
412
+ anumber(bytes);
413
+ return this.xofInto(new Uint8Array(bytes));
414
+ }
415
+ digestInto(out) {
416
+ aoutput(out, this);
417
+ if (this.finished)
418
+ throw new Error("digest() was already called");
419
+ this.writeInto(out.subarray(0, this.outputLen));
420
+ this.destroy();
421
+ }
422
+ digest() {
423
+ const out = new Uint8Array(this.outputLen);
424
+ this.digestInto(out);
425
+ return out;
426
+ }
427
+ destroy() {
428
+ this.destroyed = true;
429
+ clean(this.state);
430
+ }
431
+ _cloneInto(to) {
432
+ const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
433
+ to ||= new _Keccak(blockLen, suffix, outputLen, enableXOF, rounds);
434
+ to.blockLen = blockLen;
435
+ to.state32.set(this.state32);
436
+ to.pos = this.pos;
437
+ to.posOut = this.posOut;
438
+ to.finished = this.finished;
439
+ to.rounds = rounds;
440
+ to.suffix = suffix;
441
+ to.outputLen = outputLen;
442
+ to.enableXOF = enableXOF;
443
+ to.canXOF = this.canXOF;
444
+ to.destroyed = this.destroyed;
445
+ return to;
446
+ }
447
+ };
448
+ var genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info);
449
+ var sha3_256 = /* @__PURE__ */ genKeccak(
450
+ 6,
451
+ 136,
452
+ 32,
453
+ /* @__PURE__ */ oidNist(8)
454
+ );
455
+ var sha3_512 = /* @__PURE__ */ genKeccak(
456
+ 6,
457
+ 72,
458
+ 64,
459
+ /* @__PURE__ */ oidNist(10)
460
+ );
461
+ var genShake = (suffix, blockLen, outputLen, info = {}) => createHasher((opts2 = {}) => new Keccak(blockLen, suffix, opts2.dkLen === void 0 ? outputLen : opts2.dkLen, true), info);
462
+ var shake128 = /* @__PURE__ */ genShake(31, 168, 16, /* @__PURE__ */ oidNist(11));
463
+ var shake256 = /* @__PURE__ */ genShake(31, 136, 32, /* @__PURE__ */ oidNist(12));
464
+
465
+ // node_modules/@noble/curves/abstract/fft.js
466
+ function checkU32(n) {
467
+ if (!Number.isSafeInteger(n) || n < 0 || n > 4294967295)
468
+ throw new Error("wrong u32 integer:" + n);
469
+ return n;
470
+ }
471
+ function isPowerOfTwo(x) {
472
+ checkU32(x);
473
+ return (x & x - 1) === 0 && x !== 0;
474
+ }
475
+ function reverseBits(n, bits) {
476
+ checkU32(n);
477
+ if (!Number.isSafeInteger(bits) || bits < 0 || bits > 32)
478
+ throw new Error(`expected integer 0 <= bits <= 32, got ${bits}`);
479
+ let reversed = 0;
480
+ for (let i = 0; i < bits; i++, n >>>= 1)
481
+ reversed = reversed << 1 | n & 1;
482
+ return reversed >>> 0;
483
+ }
484
+ function log2(n) {
485
+ checkU32(n);
486
+ return 31 - Math.clz32(n);
487
+ }
488
+ function bitReversalInplace(values) {
489
+ const n = values.length;
490
+ if (!isPowerOfTwo(n))
491
+ throw new Error("expected positive power-of-two length, got " + n);
492
+ const bits = log2(n);
493
+ for (let i = 0; i < n; i++) {
494
+ const j = reverseBits(i, bits);
495
+ if (i < j) {
496
+ const tmp = values[i];
497
+ values[i] = values[j];
498
+ values[j] = tmp;
499
+ }
500
+ }
501
+ return values;
502
+ }
503
+ var FFTCore = (F3, coreOpts) => {
504
+ const { N: N3, roots, dit, invertButterflies = false, skipStages = 0, brp = true } = coreOpts;
505
+ const bits = log2(N3);
506
+ if (!isPowerOfTwo(N3))
507
+ throw new Error("FFT: Polynomial size should be power of two");
508
+ if (roots.length !== N3)
509
+ throw new Error(`FFT: wrong roots length: expected ${N3}, got ${roots.length}`);
510
+ const isDit = dit !== invertButterflies;
511
+ isDit;
512
+ return (values) => {
513
+ if (values.length !== N3)
514
+ throw new Error("FFT: wrong Polynomial length");
515
+ if (dit && brp)
516
+ bitReversalInplace(values);
517
+ for (let i = 0, g = 1; i < bits - skipStages; i++) {
518
+ const s = dit ? i + 1 + skipStages : bits - i;
519
+ const m = 1 << s;
520
+ const m2 = m >> 1;
521
+ const stride = N3 >> s;
522
+ for (let k = 0; k < N3; k += m) {
523
+ for (let j = 0, grp = g++; j < m2; j++) {
524
+ const rootPos = invertButterflies ? dit ? N3 - grp : grp : j * stride;
525
+ const i0 = k + j;
526
+ const i1 = k + j + m2;
527
+ const omega = roots[rootPos];
528
+ const b = values[i1];
529
+ const a = values[i0];
530
+ if (isDit) {
531
+ const t = F3.mul(b, omega);
532
+ values[i0] = F3.add(a, t);
533
+ values[i1] = F3.sub(a, t);
534
+ } else if (invertButterflies) {
535
+ values[i0] = F3.add(b, a);
536
+ values[i1] = F3.mul(F3.sub(b, a), omega);
537
+ } else {
538
+ values[i0] = F3.add(a, b);
539
+ values[i1] = F3.mul(F3.sub(a, b), omega);
540
+ }
541
+ }
542
+ }
543
+ }
544
+ if (!dit && brp)
545
+ bitReversalInplace(values);
546
+ return values;
547
+ };
548
+ };
549
+
550
+ // node_modules/@noble/post-quantum/utils.js
551
+ var abytesDoc = abytes;
552
+ var randomBytes2 = randomBytes;
553
+ function equalBytes(a, b) {
554
+ if (a.length !== b.length)
555
+ return false;
556
+ let diff = 0;
557
+ for (let i = 0; i < a.length; i++)
558
+ diff |= a[i] ^ b[i];
559
+ return diff === 0;
560
+ }
561
+ function copyBytes(bytes) {
562
+ return Uint8Array.from(abytes(bytes));
563
+ }
564
+ function validateOpts(opts2) {
565
+ if (Object.prototype.toString.call(opts2) !== "[object Object]")
566
+ throw new TypeError("expected valid options object");
567
+ }
568
+ function validateVerOpts(opts2) {
569
+ validateOpts(opts2);
570
+ if (opts2.context !== void 0)
571
+ abytes(opts2.context, void 0, "opts.context");
572
+ }
573
+ function validateSigOpts(opts2) {
574
+ validateVerOpts(opts2);
575
+ if (opts2.extraEntropy !== false && opts2.extraEntropy !== void 0)
576
+ abytes(opts2.extraEntropy, void 0, "opts.extraEntropy");
577
+ }
578
+ function splitCoder(label, ...lengths) {
579
+ const getLength = (c) => typeof c === "number" ? c : c.bytesLen;
580
+ const bytesLen = lengths.reduce((sum, a) => sum + getLength(a), 0);
581
+ return {
582
+ bytesLen,
583
+ encode: (bufs) => {
584
+ const res = new Uint8Array(bytesLen);
585
+ for (let i = 0, pos = 0; i < lengths.length; i++) {
586
+ const c = lengths[i];
587
+ const l = getLength(c);
588
+ const b = typeof c === "number" ? bufs[i] : c.encode(bufs[i]);
589
+ abytes(b, l, label);
590
+ res.set(b, pos);
591
+ if (typeof c !== "number")
592
+ b.fill(0);
593
+ pos += l;
594
+ }
595
+ return res;
596
+ },
597
+ decode: (buf) => {
598
+ abytes(buf, bytesLen, label);
599
+ const res = [];
600
+ for (const c of lengths) {
601
+ const l = getLength(c);
602
+ const b = buf.subarray(0, l);
603
+ res.push(typeof c === "number" ? b : c.decode(b));
604
+ buf = buf.subarray(l);
605
+ }
606
+ return res;
607
+ }
608
+ };
609
+ }
610
+ function vecCoder(c, vecLen) {
611
+ const coder = c;
612
+ const bytesLen = vecLen * coder.bytesLen;
613
+ return {
614
+ bytesLen,
615
+ encode: (u) => {
616
+ if (u.length !== vecLen)
617
+ throw new RangeError(`vecCoder.encode: wrong length=${u.length}. Expected: ${vecLen}`);
618
+ const res = new Uint8Array(bytesLen);
619
+ for (let i = 0, pos = 0; i < u.length; i++) {
620
+ const b = coder.encode(u[i]);
621
+ res.set(b, pos);
622
+ b.fill(0);
623
+ pos += b.length;
624
+ }
625
+ return res;
626
+ },
627
+ decode: (a) => {
628
+ abytes(a, bytesLen);
629
+ const r = [];
630
+ for (let i = 0; i < a.length; i += coder.bytesLen)
631
+ r.push(coder.decode(a.subarray(i, i + coder.bytesLen)));
632
+ return r;
633
+ }
634
+ };
635
+ }
636
+ function cleanBytes(...list) {
637
+ for (const t of list) {
638
+ if (Array.isArray(t))
639
+ for (const b of t)
640
+ b.fill(0);
641
+ else
642
+ t.fill(0);
643
+ }
644
+ }
645
+ function getMask(bits) {
646
+ if (!Number.isSafeInteger(bits) || bits < 0 || bits > 32)
647
+ throw new RangeError(`expected bits in [0..32], got ${bits}`);
648
+ return bits === 32 ? 4294967295 : ~(-1 << bits) >>> 0;
649
+ }
650
+ var EMPTY = /* @__PURE__ */ Uint8Array.of();
651
+ function getMessage(msg, ctx = EMPTY) {
652
+ abytes(msg);
653
+ abytes(ctx);
654
+ if (ctx.length > 255)
655
+ throw new RangeError("context should be 255 bytes or less");
656
+ return concatBytes(new Uint8Array([0, ctx.length]), ctx, msg);
657
+ }
658
+ var oidNistP = /* @__PURE__ */ Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2]);
659
+ function checkHash(hash, requiredStrength = 0) {
660
+ if (!hash.oid || !equalBytes(hash.oid.subarray(0, 10), oidNistP))
661
+ throw new Error("hash.oid is invalid: expected NIST hash");
662
+ const collisionResistance = hash.outputLen * 8 / 2;
663
+ if (requiredStrength > collisionResistance) {
664
+ throw new Error("Pre-hash security strength too low: " + collisionResistance + ", required: " + requiredStrength);
665
+ }
666
+ }
667
+ function getMessagePrehash(hash, msg, ctx = EMPTY) {
668
+ abytes(msg);
669
+ abytes(ctx);
670
+ if (ctx.length > 255)
671
+ throw new RangeError("context should be 255 bytes or less");
672
+ const hashed = hash(msg);
673
+ return concatBytes(new Uint8Array([1, ctx.length]), ctx, hash.oid, hashed);
674
+ }
675
+
676
+ // node_modules/@noble/post-quantum/_crystals.js
677
+ var genCrystals = (opts2) => {
678
+ const { newPoly: newPoly2, N: N3, Q: Q3, F: F3, ROOT_OF_UNITY: ROOT_OF_UNITY3, brvBits, isKyber } = opts2;
679
+ const mod = (a, modulo = Q3) => {
680
+ const result = a % modulo | 0;
681
+ return (result >= 0 ? result | 0 : modulo + result | 0) | 0;
682
+ };
683
+ const smod = (a, modulo = Q3) => {
684
+ const r = mod(a, modulo) | 0;
685
+ return (r > modulo >> 1 ? r - modulo | 0 : r) | 0;
686
+ };
687
+ function getZettas() {
688
+ const out = newPoly2(N3);
689
+ for (let i = 0; i < N3; i++) {
690
+ const b = reverseBits(i, brvBits);
691
+ const p = BigInt(ROOT_OF_UNITY3) ** BigInt(b) % BigInt(Q3);
692
+ out[i] = Number(p) | 0;
693
+ }
694
+ return out;
695
+ }
696
+ const nttZetas = getZettas();
697
+ const field = {
698
+ add: (a, b) => mod((a | 0) + (b | 0)) | 0,
699
+ sub: (a, b) => mod((a | 0) - (b | 0)) | 0,
700
+ mul: (a, b) => mod((a | 0) * (b | 0)) | 0,
701
+ inv: (_a) => {
702
+ throw new Error("not implemented");
703
+ }
704
+ };
705
+ const nttOpts = {
706
+ N: N3,
707
+ roots: nttZetas,
708
+ invertButterflies: true,
709
+ skipStages: isKyber ? 1 : 0,
710
+ brp: false
711
+ };
712
+ const dif = FFTCore(field, { dit: false, ...nttOpts });
713
+ const dit = FFTCore(field, { dit: true, ...nttOpts });
714
+ const NTT = {
715
+ encode: (r) => {
716
+ return dif(r);
717
+ },
718
+ decode: (r) => {
719
+ dit(r);
720
+ for (let i = 0; i < r.length; i++)
721
+ r[i] = mod(F3 * r[i]);
722
+ return r;
723
+ }
724
+ };
725
+ const bitsCoder = (d, c) => {
726
+ const mask = getMask(d);
727
+ const bytesLen = d * (N3 / 8);
728
+ return {
729
+ bytesLen,
730
+ encode: (poly_) => {
731
+ const poly = poly_;
732
+ const r = new Uint8Array(bytesLen);
733
+ for (let i = 0, buf = 0, bufLen = 0, pos = 0; i < poly.length; i++) {
734
+ buf |= (c.encode(poly[i]) & mask) << bufLen;
735
+ bufLen += d;
736
+ for (; bufLen >= 8; bufLen -= 8, buf >>= 8)
737
+ r[pos++] = buf & getMask(bufLen);
738
+ }
739
+ return r;
740
+ },
741
+ decode: (bytes) => {
742
+ const r = newPoly2(N3);
743
+ for (let i = 0, buf = 0, bufLen = 0, pos = 0; i < bytes.length; i++) {
744
+ buf |= bytes[i] << bufLen;
745
+ bufLen += 8;
746
+ for (; bufLen >= d; bufLen -= d, buf >>= d)
747
+ r[pos++] = c.decode(buf & mask);
748
+ }
749
+ return r;
750
+ }
751
+ };
752
+ };
753
+ return {
754
+ mod,
755
+ smod,
756
+ nttZetas,
757
+ NTT: {
758
+ encode: (r) => NTT.encode(r),
759
+ decode: (r) => NTT.decode(r)
760
+ },
761
+ bitsCoder
762
+ };
763
+ };
764
+ var createXofShake = (shake) => (seed, blockLen) => {
765
+ if (!blockLen)
766
+ blockLen = shake.blockLen;
767
+ const _seed = new Uint8Array(seed.length + 2);
768
+ _seed.set(seed);
769
+ const seedLen = seed.length;
770
+ const buf = new Uint8Array(blockLen);
771
+ let h = shake.create({});
772
+ let calls = 0;
773
+ let xofs = 0;
774
+ return {
775
+ stats: () => ({ calls, xofs }),
776
+ get: (x, y) => {
777
+ _seed[seedLen + 0] = x;
778
+ _seed[seedLen + 1] = y;
779
+ h.destroy();
780
+ h = shake.create({}).update(_seed);
781
+ calls++;
782
+ return () => {
783
+ xofs++;
784
+ return h.xofInto(buf);
785
+ };
786
+ },
787
+ clean: () => {
788
+ h.destroy();
789
+ cleanBytes(buf, _seed);
790
+ }
791
+ };
792
+ };
793
+ var XOF128 = /* @__PURE__ */ createXofShake(shake128);
794
+ var XOF256 = /* @__PURE__ */ createXofShake(shake256);
795
+
796
+ // node_modules/@noble/post-quantum/ml-kem.js
797
+ var N = 256;
798
+ var Q = 3329;
799
+ var F = 3303;
800
+ var ROOT_OF_UNITY = 17;
801
+ var crystals = /* @__PURE__ */ genCrystals({
802
+ N,
803
+ Q,
804
+ F,
805
+ ROOT_OF_UNITY,
806
+ newPoly: (n) => new Uint16Array(n),
807
+ brvBits: 7,
808
+ isKyber: true
809
+ });
810
+ var PARAMS = /* @__PURE__ */ (() => Object.freeze({
811
+ 512: Object.freeze({ N, Q, K: 2, ETA1: 3, ETA2: 2, du: 10, dv: 4, RBGstrength: 128 }),
812
+ 768: Object.freeze({ N, Q, K: 3, ETA1: 2, ETA2: 2, du: 10, dv: 4, RBGstrength: 192 }),
813
+ 1024: Object.freeze({ N, Q, K: 4, ETA1: 2, ETA2: 2, du: 11, dv: 5, RBGstrength: 256 })
814
+ }))();
815
+ var compress = (d) => {
816
+ if (d >= 12)
817
+ return { encode: (i) => i, decode: (i) => i >= Q ? i - Q : i };
818
+ const a = 2 ** (d - 1);
819
+ return {
820
+ // This only matches standalone Compress_d after bitsCoder masks the result into Z_(2^d).
821
+ encode: (i) => ((i << d) + Q / 2) / Q,
822
+ // const decompress = (i: number) => round((Q / 2 ** d) * i);
823
+ decode: (i) => i * Q + a >>> d
824
+ };
825
+ };
826
+ var byteCoder = (d) => crystals.bitsCoder(d, d === 12 ? { encode: (i) => i, decode: (i) => i >= Q ? i - Q : i } : { encode: (i) => i, decode: (i) => i });
827
+ var polyCoder = (d) => d === 12 ? byteCoder(12) : crystals.bitsCoder(d, compress(d));
828
+ function polyAdd(a_, b_) {
829
+ const a = a_;
830
+ const b = b_;
831
+ for (let i = 0; i < N; i++)
832
+ a[i] = crystals.mod(a[i] + b[i]);
833
+ }
834
+ function polySub(a_, b_) {
835
+ const a = a_;
836
+ const b = b_;
837
+ for (let i = 0; i < N; i++)
838
+ a[i] = crystals.mod(a[i] - b[i]);
839
+ }
840
+ function BaseCaseMultiply(a0, a1, b0, b1, zeta) {
841
+ const c0 = crystals.mod(a1 * b1 * zeta + a0 * b0);
842
+ const c1 = crystals.mod(a0 * b1 + a1 * b0);
843
+ return { c0, c1 };
844
+ }
845
+ function MultiplyNTTs(f_, g_) {
846
+ const f = f_;
847
+ const g = g_;
848
+ for (let i = 0; i < N / 2; i++) {
849
+ let z = crystals.nttZetas[64 + (i >> 1)];
850
+ if (i & 1)
851
+ z = -z;
852
+ const { c0, c1 } = BaseCaseMultiply(f[2 * i + 0], f[2 * i + 1], g[2 * i + 0], g[2 * i + 1], z);
853
+ f[2 * i + 0] = c0;
854
+ f[2 * i + 1] = c1;
855
+ }
856
+ return f;
857
+ }
858
+ function SampleNTT(xof_) {
859
+ const xof = xof_;
860
+ const r = new Uint16Array(N);
861
+ for (let j = 0; j < N; ) {
862
+ const b = xof();
863
+ if (b.length % 3)
864
+ throw new Error("SampleNTT: unaligned block");
865
+ for (let i = 0; j < N && i + 3 <= b.length; i += 3) {
866
+ const d1 = (b[i + 0] >> 0 | b[i + 1] << 8) & 4095;
867
+ const d2 = (b[i + 1] >> 4 | b[i + 2] << 4) & 4095;
868
+ if (d1 < Q)
869
+ r[j++] = d1;
870
+ if (j < N && d2 < Q)
871
+ r[j++] = d2;
872
+ }
873
+ }
874
+ return r;
875
+ }
876
+ var sampleCBDBytes = (buf, eta) => {
877
+ const r = new Uint16Array(N);
878
+ const b32 = u32(buf);
879
+ swap32IfBE(b32);
880
+ let len = 0;
881
+ for (let i = 0, p = 0, bb = 0, t0 = 0; i < b32.length; i++) {
882
+ let b = b32[i];
883
+ for (let j = 0; j < 32; j++) {
884
+ bb += b & 1;
885
+ b >>= 1;
886
+ len += 1;
887
+ if (len === eta) {
888
+ t0 = bb;
889
+ bb = 0;
890
+ } else if (len === 2 * eta) {
891
+ r[p++] = crystals.mod(t0 - bb);
892
+ bb = 0;
893
+ len = 0;
894
+ }
895
+ }
896
+ }
897
+ swap32IfBE(b32);
898
+ if (len)
899
+ throw new Error(`sampleCBD: leftover bits: ${len}`);
900
+ return r;
901
+ };
902
+ function sampleCBD(PRF_, seed, nonce, eta) {
903
+ const PRF = PRF_;
904
+ return sampleCBDBytes(PRF(eta * N / 4, seed, nonce), eta);
905
+ }
906
+ var genKPKE = (opts_) => {
907
+ const opts2 = opts_;
908
+ const { K, PRF, XOF, HASH512, ETA1, ETA2, du, dv } = opts2;
909
+ const poly1 = polyCoder(1);
910
+ const polyV = polyCoder(dv);
911
+ const polyU = polyCoder(du);
912
+ const publicCoder = splitCoder("publicKey", vecCoder(polyCoder(12), K), 32);
913
+ const secretCoder = vecCoder(polyCoder(12), K);
914
+ const cipherCoder = splitCoder("ciphertext", vecCoder(polyU, K), polyV);
915
+ const seedCoder = splitCoder("seed", 32, 32);
916
+ return {
917
+ secretCoder,
918
+ lengths: {
919
+ secretKey: secretCoder.bytesLen,
920
+ publicKey: publicCoder.bytesLen,
921
+ cipherText: cipherCoder.bytesLen
922
+ },
923
+ keygen: (seed) => {
924
+ abytesDoc(seed, 32, "seed");
925
+ const seedDst = new Uint8Array(33);
926
+ seedDst.set(seed);
927
+ seedDst[32] = K;
928
+ const seedHash = HASH512(seedDst);
929
+ const [rho, sigma] = seedCoder.decode(seedHash);
930
+ const sHat = [];
931
+ const tHat = [];
932
+ for (let i = 0; i < K; i++)
933
+ sHat.push(crystals.NTT.encode(sampleCBD(PRF, sigma, i, ETA1)));
934
+ const x = XOF(rho);
935
+ for (let i = 0; i < K; i++) {
936
+ const e = crystals.NTT.encode(sampleCBD(PRF, sigma, K + i, ETA1));
937
+ for (let j = 0; j < K; j++) {
938
+ const aji = SampleNTT(x.get(j, i));
939
+ polyAdd(e, MultiplyNTTs(aji, sHat[j]));
940
+ }
941
+ tHat.push(e);
942
+ }
943
+ x.clean();
944
+ const res = {
945
+ publicKey: publicCoder.encode([tHat, rho]),
946
+ secretKey: secretCoder.encode(sHat)
947
+ };
948
+ cleanBytes(rho, sigma, sHat, tHat, seedDst, seedHash);
949
+ return res;
950
+ },
951
+ encrypt: (publicKey, msg, seed) => {
952
+ const [tHat, rho] = publicCoder.decode(publicKey);
953
+ const rHat = [];
954
+ for (let i = 0; i < K; i++)
955
+ rHat.push(crystals.NTT.encode(sampleCBD(PRF, seed, i, ETA1)));
956
+ const x = XOF(rho);
957
+ const tmp2 = new Uint16Array(N);
958
+ const u = [];
959
+ for (let i = 0; i < K; i++) {
960
+ const e1 = sampleCBD(PRF, seed, K + i, ETA2);
961
+ const tmp = new Uint16Array(N);
962
+ for (let j = 0; j < K; j++) {
963
+ const aij = SampleNTT(x.get(i, j));
964
+ polyAdd(tmp, MultiplyNTTs(aij, rHat[j]));
965
+ }
966
+ polyAdd(e1, crystals.NTT.decode(tmp));
967
+ u.push(e1);
968
+ polyAdd(tmp2, MultiplyNTTs(tHat[i], rHat[i]));
969
+ cleanBytes(tmp);
970
+ }
971
+ x.clean();
972
+ const e2 = sampleCBD(PRF, seed, 2 * K, ETA2);
973
+ polyAdd(e2, crystals.NTT.decode(tmp2));
974
+ const v = poly1.decode(msg);
975
+ polyAdd(v, e2);
976
+ cleanBytes(tHat, rHat, tmp2, e2);
977
+ return cipherCoder.encode([u, v]);
978
+ },
979
+ decrypt: (cipherText, privateKey) => {
980
+ const [u, v] = cipherCoder.decode(cipherText);
981
+ const sk = secretCoder.decode(privateKey);
982
+ const tmp = new Uint16Array(N);
983
+ for (let i = 0; i < K; i++)
984
+ polyAdd(tmp, MultiplyNTTs(sk[i], crystals.NTT.encode(u[i])));
985
+ polySub(v, crystals.NTT.decode(tmp));
986
+ cleanBytes(tmp, sk, u);
987
+ return poly1.encode(v);
988
+ }
989
+ };
990
+ };
991
+ function createKyber(opts2) {
992
+ const rawOpts = opts2;
993
+ const KPKE = genKPKE(rawOpts);
994
+ const { HASH256, HASH512, KDF } = rawOpts;
995
+ const { secretCoder: KPKESecretCoder, lengths } = KPKE;
996
+ const secretCoder = splitCoder("secretKey", lengths.secretKey, lengths.publicKey, 32, 32);
997
+ const msgLen = 32;
998
+ const seedLen = 64;
999
+ const kemLengths = Object.freeze({
1000
+ ...lengths,
1001
+ seed: 64,
1002
+ msg: msgLen,
1003
+ msgRand: msgLen,
1004
+ secretKey: secretCoder.bytesLen
1005
+ });
1006
+ return Object.freeze({
1007
+ info: Object.freeze({ type: "ml-kem" }),
1008
+ lengths: kemLengths,
1009
+ keygen: (seed = randomBytes2(seedLen)) => {
1010
+ abytesDoc(seed, seedLen, "seed");
1011
+ const { publicKey, secretKey: sk } = KPKE.keygen(seed.subarray(0, 32));
1012
+ const publicKeyHash = HASH256(publicKey);
1013
+ const secretKey = secretCoder.encode([sk, publicKey, publicKeyHash, seed.subarray(32)]);
1014
+ cleanBytes(sk, publicKeyHash);
1015
+ return {
1016
+ publicKey,
1017
+ secretKey
1018
+ };
1019
+ },
1020
+ getPublicKey: (secretKey) => {
1021
+ const [_sk, publicKey, _publicKeyHash, _z] = secretCoder.decode(secretKey);
1022
+ return Uint8Array.from(publicKey);
1023
+ },
1024
+ encapsulate: (publicKey, msg = randomBytes2(msgLen)) => {
1025
+ abytesDoc(publicKey, lengths.publicKey, "publicKey");
1026
+ abytesDoc(msg, msgLen, "message");
1027
+ const eke = publicKey.subarray(0, 384 * opts2.K);
1028
+ const ek = KPKESecretCoder.encode(KPKESecretCoder.decode(copyBytes(eke)));
1029
+ if (!equalBytes(ek, eke)) {
1030
+ cleanBytes(ek);
1031
+ throw new Error("ML-KEM.encapsulate: wrong publicKey modulus");
1032
+ }
1033
+ cleanBytes(ek);
1034
+ const kr = HASH512.create().update(msg).update(HASH256(publicKey)).digest();
1035
+ const cipherText = KPKE.encrypt(publicKey, msg, kr.subarray(32, 64));
1036
+ cleanBytes(kr.subarray(32));
1037
+ return {
1038
+ cipherText,
1039
+ sharedSecret: kr.subarray(0, 32)
1040
+ };
1041
+ },
1042
+ decapsulate: (cipherText, secretKey) => {
1043
+ abytesDoc(secretKey, secretCoder.bytesLen, "secretKey");
1044
+ abytesDoc(cipherText, lengths.cipherText, "cipherText");
1045
+ const k768 = secretCoder.bytesLen - 96;
1046
+ const start = k768 + 32;
1047
+ const test = HASH256(secretKey.subarray(k768 / 2, start));
1048
+ if (!equalBytes(test, secretKey.subarray(start, start + 32)))
1049
+ throw new Error("invalid secretKey: hash check failed");
1050
+ const [sk, publicKey, publicKeyHash, z] = secretCoder.decode(secretKey);
1051
+ const msg = KPKE.decrypt(cipherText, sk);
1052
+ const kr = HASH512.create().update(msg).update(publicKeyHash).digest();
1053
+ const Khat = kr.subarray(0, 32);
1054
+ const cipherText2 = KPKE.encrypt(publicKey, msg, kr.subarray(32, 64));
1055
+ const isValid = equalBytes(cipherText, cipherText2);
1056
+ const Kbar = KDF.create({ dkLen: 32 }).update(z).update(cipherText).digest();
1057
+ cleanBytes(msg, cipherText2, !isValid ? Khat : Kbar);
1058
+ return isValid ? Khat : Kbar;
1059
+ }
1060
+ });
1061
+ }
1062
+ function shakePRF(dkLen, key, nonce) {
1063
+ return shake256.create({ dkLen }).update(key).update(new Uint8Array([nonce])).digest();
1064
+ }
1065
+ var opts = /* @__PURE__ */ (() => ({
1066
+ HASH256: sha3_256,
1067
+ HASH512: sha3_512,
1068
+ KDF: shake256,
1069
+ XOF: XOF128,
1070
+ PRF: shakePRF
1071
+ }))();
1072
+ var mk = (params) => createKyber({
1073
+ ...opts,
1074
+ ...params
1075
+ });
1076
+ var ml_kem512 = /* @__PURE__ */ (() => mk(PARAMS[512]))();
1077
+ var ml_kem768 = /* @__PURE__ */ (() => mk(PARAMS[768]))();
1078
+ var ml_kem1024 = /* @__PURE__ */ (() => mk(PARAMS[1024]))();
1079
+
1080
+ // node_modules/@noble/curves/utils.js
1081
+ function abool(value, title = "") {
1082
+ if (typeof value !== "boolean") {
1083
+ const prefix = title && `"${title}" `;
1084
+ throw new TypeError(prefix + "expected boolean, got type=" + typeof value);
1085
+ }
1086
+ return value;
1087
+ }
1088
+
1089
+ // node_modules/@noble/post-quantum/ml-dsa.js
1090
+ function validateInternalOpts(opts2) {
1091
+ validateOpts(opts2);
1092
+ if (opts2.externalMu !== void 0)
1093
+ abool(opts2.externalMu, "opts.externalMu");
1094
+ }
1095
+ var N2 = 256;
1096
+ var Q2 = 8380417;
1097
+ var ROOT_OF_UNITY2 = 1753;
1098
+ var F2 = 8347681;
1099
+ var D = 13;
1100
+ var GAMMA2_1 = Math.floor((Q2 - 1) / 88) | 0;
1101
+ var GAMMA2_2 = Math.floor((Q2 - 1) / 32) | 0;
1102
+ var PARAMS2 = /* @__PURE__ */ (() => Object.freeze({
1103
+ 2: Object.freeze({
1104
+ K: 4,
1105
+ L: 4,
1106
+ D,
1107
+ GAMMA1: 2 ** 17,
1108
+ GAMMA2: GAMMA2_1,
1109
+ TAU: 39,
1110
+ ETA: 2,
1111
+ OMEGA: 80
1112
+ }),
1113
+ 3: Object.freeze({
1114
+ K: 6,
1115
+ L: 5,
1116
+ D,
1117
+ GAMMA1: 2 ** 19,
1118
+ GAMMA2: GAMMA2_2,
1119
+ TAU: 49,
1120
+ ETA: 4,
1121
+ OMEGA: 55
1122
+ }),
1123
+ 5: Object.freeze({
1124
+ K: 8,
1125
+ L: 7,
1126
+ D,
1127
+ GAMMA1: 2 ** 19,
1128
+ GAMMA2: GAMMA2_2,
1129
+ TAU: 60,
1130
+ ETA: 2,
1131
+ OMEGA: 75
1132
+ })
1133
+ }))();
1134
+ var newPoly = (n) => new Int32Array(n);
1135
+ var crystals2 = /* @__PURE__ */ genCrystals({
1136
+ N: N2,
1137
+ Q: Q2,
1138
+ F: F2,
1139
+ ROOT_OF_UNITY: ROOT_OF_UNITY2,
1140
+ newPoly,
1141
+ isKyber: false,
1142
+ brvBits: 8
1143
+ });
1144
+ var id = (n) => n;
1145
+ var polyCoder2 = (d, compress2 = id, verify = id) => crystals2.bitsCoder(d, {
1146
+ encode: (i) => compress2(verify(i)),
1147
+ decode: (i) => verify(compress2(i))
1148
+ });
1149
+ var polyAdd2 = (a_, b_) => {
1150
+ const a = a_;
1151
+ const b = b_;
1152
+ for (let i = 0; i < a.length; i++)
1153
+ a[i] = crystals2.mod(a[i] + b[i]);
1154
+ return a;
1155
+ };
1156
+ var polySub2 = (a_, b_) => {
1157
+ const a = a_;
1158
+ const b = b_;
1159
+ for (let i = 0; i < a.length; i++)
1160
+ a[i] = crystals2.mod(a[i] - b[i]);
1161
+ return a;
1162
+ };
1163
+ var polyShiftl = (p_) => {
1164
+ const p = p_;
1165
+ for (let i = 0; i < N2; i++)
1166
+ p[i] <<= D;
1167
+ return p;
1168
+ };
1169
+ var polyChknorm = (p_, B) => {
1170
+ const p = p_;
1171
+ for (let i = 0; i < N2; i++)
1172
+ if (Math.abs(crystals2.smod(p[i])) >= B)
1173
+ return true;
1174
+ return false;
1175
+ };
1176
+ var MultiplyNTTs2 = (a_, b_) => {
1177
+ const a = a_;
1178
+ const b = b_;
1179
+ const c = newPoly(N2);
1180
+ for (let i = 0; i < a.length; i++)
1181
+ c[i] = crystals2.mod(a[i] * b[i]);
1182
+ return c;
1183
+ };
1184
+ function RejNTTPoly(xof_) {
1185
+ const xof = xof_;
1186
+ const r = newPoly(N2);
1187
+ for (let j = 0; j < N2; ) {
1188
+ const b = xof();
1189
+ if (b.length % 3)
1190
+ throw new Error("RejNTTPoly: unaligned block");
1191
+ for (let i = 0; j < N2 && i <= b.length - 3; i += 3) {
1192
+ const t = (b[i + 0] | b[i + 1] << 8 | b[i + 2] << 16) & 8388607;
1193
+ if (t < Q2)
1194
+ r[j++] = t;
1195
+ }
1196
+ }
1197
+ return r;
1198
+ }
1199
+ function getDilithium(opts_) {
1200
+ const opts2 = opts_;
1201
+ const { K, L, GAMMA1, GAMMA2, TAU, ETA, OMEGA } = opts2;
1202
+ const { CRH_BYTES, TR_BYTES, C_TILDE_BYTES, XOF128: XOF1282, XOF256: XOF2562, securityLevel } = opts2;
1203
+ if (![2, 4].includes(ETA))
1204
+ throw new Error("Wrong ETA");
1205
+ if (![1 << 17, 1 << 19].includes(GAMMA1))
1206
+ throw new Error("Wrong GAMMA1");
1207
+ if (![GAMMA2_1, GAMMA2_2].includes(GAMMA2))
1208
+ throw new Error("Wrong GAMMA2");
1209
+ const BETA = TAU * ETA;
1210
+ const decompose = (r) => {
1211
+ const rPlus = crystals2.mod(r);
1212
+ const r0 = crystals2.smod(rPlus, 2 * GAMMA2) | 0;
1213
+ if (rPlus - r0 === Q2 - 1)
1214
+ return { r1: 0 | 0, r0: r0 - 1 | 0 };
1215
+ const r1 = Math.floor((rPlus - r0) / (2 * GAMMA2)) | 0;
1216
+ return { r1, r0 };
1217
+ };
1218
+ const HighBits = (r) => decompose(r).r1;
1219
+ const LowBits = (r) => decompose(r).r0;
1220
+ const MakeHint = (z, r) => {
1221
+ const res0 = z <= GAMMA2 || z > Q2 - GAMMA2 || z === Q2 - GAMMA2 && r === 0 ? 0 : 1;
1222
+ return res0;
1223
+ };
1224
+ const UseHint = (h, r) => {
1225
+ const m = Math.floor((Q2 - 1) / (2 * GAMMA2));
1226
+ const { r1, r0 } = decompose(r);
1227
+ if (h === 1)
1228
+ return r0 > 0 ? crystals2.mod(r1 + 1, m) | 0 : crystals2.mod(r1 - 1, m) | 0;
1229
+ return r1 | 0;
1230
+ };
1231
+ const Power2Round = (r) => {
1232
+ const rPlus = crystals2.mod(r);
1233
+ const r0 = crystals2.smod(rPlus, 2 ** D) | 0;
1234
+ return { r1: Math.floor((rPlus - r0) / 2 ** D) | 0, r0 };
1235
+ };
1236
+ const hintCoder = {
1237
+ bytesLen: OMEGA + K,
1238
+ encode: (h_) => {
1239
+ const h = h_;
1240
+ if (h === false)
1241
+ throw new Error("hint.encode: hint is false");
1242
+ const res = new Uint8Array(OMEGA + K);
1243
+ for (let i = 0, k = 0; i < K; i++) {
1244
+ for (let j = 0; j < N2; j++)
1245
+ if (h[i][j] !== 0)
1246
+ res[k++] = j;
1247
+ res[OMEGA + i] = k;
1248
+ }
1249
+ return res;
1250
+ },
1251
+ decode: (buf) => {
1252
+ const h = [];
1253
+ let k = 0;
1254
+ for (let i = 0; i < K; i++) {
1255
+ const hi = newPoly(N2);
1256
+ if (buf[OMEGA + i] < k || buf[OMEGA + i] > OMEGA)
1257
+ return false;
1258
+ for (let j = k; j < buf[OMEGA + i]; j++) {
1259
+ if (j > k && buf[j] <= buf[j - 1])
1260
+ return false;
1261
+ hi[buf[j]] = 1;
1262
+ }
1263
+ k = buf[OMEGA + i];
1264
+ h.push(hi);
1265
+ }
1266
+ for (let j = k; j < OMEGA; j++)
1267
+ if (buf[j] !== 0)
1268
+ return false;
1269
+ return h;
1270
+ }
1271
+ };
1272
+ const ETACoder = polyCoder2(ETA === 2 ? 3 : 4, (i) => ETA - i, (i) => {
1273
+ if (!(-ETA <= i && i <= ETA))
1274
+ throw new Error(`malformed key s1/s3 ${i} outside of ETA range [${-ETA}, ${ETA}]`);
1275
+ return i;
1276
+ });
1277
+ const T0Coder = polyCoder2(13, (i) => (1 << D - 1) - i);
1278
+ const T1Coder = polyCoder2(10);
1279
+ const ZCoder = polyCoder2(GAMMA1 === 1 << 17 ? 18 : 20, (i) => crystals2.smod(GAMMA1 - i));
1280
+ const W1Coder = polyCoder2(GAMMA2 === GAMMA2_1 ? 6 : 4);
1281
+ const W1Vec = vecCoder(W1Coder, K);
1282
+ const publicCoder = splitCoder("publicKey", 32, vecCoder(T1Coder, K));
1283
+ const secretCoder = splitCoder("secretKey", 32, 32, TR_BYTES, vecCoder(ETACoder, L), vecCoder(ETACoder, K), vecCoder(T0Coder, K));
1284
+ const sigCoder = splitCoder("signature", C_TILDE_BYTES, vecCoder(ZCoder, L), hintCoder);
1285
+ const CoefFromHalfByte = ETA === 2 ? (n) => n < 15 ? 2 - n % 5 : false : (n) => n < 9 ? 4 - n : false;
1286
+ function RejBoundedPoly(xof_) {
1287
+ const xof = xof_;
1288
+ const r = newPoly(N2);
1289
+ for (let j = 0; j < N2; ) {
1290
+ const b = xof();
1291
+ for (let i = 0; j < N2 && i < b.length; i += 1) {
1292
+ const d1 = CoefFromHalfByte(b[i] & 15);
1293
+ const d2 = CoefFromHalfByte(b[i] >> 4 & 15);
1294
+ if (d1 !== false)
1295
+ r[j++] = d1;
1296
+ if (j < N2 && d2 !== false)
1297
+ r[j++] = d2;
1298
+ }
1299
+ }
1300
+ return r;
1301
+ }
1302
+ const SampleInBall = (seed) => {
1303
+ const pre = newPoly(N2);
1304
+ const s = shake256.create({}).update(seed);
1305
+ const buf = new Uint8Array(shake256.blockLen);
1306
+ s.xofInto(buf);
1307
+ const masks = buf.slice(0, 8);
1308
+ for (let i = N2 - TAU, pos = 8, maskPos = 0, maskBit = 0; i < N2; i++) {
1309
+ let b = i + 1;
1310
+ for (; b > i; ) {
1311
+ b = buf[pos++];
1312
+ if (pos < shake256.blockLen)
1313
+ continue;
1314
+ s.xofInto(buf);
1315
+ pos = 0;
1316
+ }
1317
+ pre[i] = pre[b];
1318
+ pre[b] = 1 - ((masks[maskPos] >> maskBit++ & 1) << 1);
1319
+ if (maskBit >= 8) {
1320
+ maskPos++;
1321
+ maskBit = 0;
1322
+ }
1323
+ }
1324
+ return pre;
1325
+ };
1326
+ const polyPowerRound = (p_) => {
1327
+ const p = p_;
1328
+ const res0 = newPoly(N2);
1329
+ const res1 = newPoly(N2);
1330
+ for (let i = 0; i < p.length; i++) {
1331
+ const { r0, r1 } = Power2Round(p[i]);
1332
+ res0[i] = r0;
1333
+ res1[i] = r1;
1334
+ }
1335
+ return { r0: res0, r1: res1 };
1336
+ };
1337
+ const polyUseHint = (u_, h_) => {
1338
+ const u = u_;
1339
+ const h = h_;
1340
+ for (let i = 0; i < N2; i++)
1341
+ u[i] = UseHint(h[i], u[i]);
1342
+ return u;
1343
+ };
1344
+ const polyMakeHint = (a_, b_) => {
1345
+ const a = a_;
1346
+ const b = b_;
1347
+ const v = newPoly(N2);
1348
+ let cnt = 0;
1349
+ for (let i = 0; i < N2; i++) {
1350
+ const h = MakeHint(a[i], b[i]);
1351
+ v[i] = h;
1352
+ cnt += h;
1353
+ }
1354
+ return { v, cnt };
1355
+ };
1356
+ const signRandBytes = 32;
1357
+ const seedCoder = splitCoder("seed", 32, 64, 32);
1358
+ const internal = Object.freeze({
1359
+ info: Object.freeze({ type: "internal-ml-dsa" }),
1360
+ lengths: Object.freeze({
1361
+ secretKey: secretCoder.bytesLen,
1362
+ publicKey: publicCoder.bytesLen,
1363
+ seed: 32,
1364
+ signature: sigCoder.bytesLen,
1365
+ signRand: signRandBytes
1366
+ }),
1367
+ keygen: (seed) => {
1368
+ const seedDst = new Uint8Array(32 + 2);
1369
+ const randSeed = seed === void 0;
1370
+ if (randSeed)
1371
+ seed = randomBytes2(32);
1372
+ abytesDoc(seed, 32, "seed");
1373
+ seedDst.set(seed);
1374
+ if (randSeed)
1375
+ cleanBytes(seed);
1376
+ seedDst[32] = K;
1377
+ seedDst[33] = L;
1378
+ const [rho, rhoPrime, K_] = seedCoder.decode(shake256(seedDst, { dkLen: seedCoder.bytesLen }));
1379
+ const xofPrime = XOF2562(rhoPrime);
1380
+ const s1 = [];
1381
+ for (let i = 0; i < L; i++)
1382
+ s1.push(RejBoundedPoly(xofPrime.get(i & 255, i >> 8 & 255)));
1383
+ const s2 = [];
1384
+ for (let i = L; i < L + K; i++)
1385
+ s2.push(RejBoundedPoly(xofPrime.get(i & 255, i >> 8 & 255)));
1386
+ const s1Hat = s1.map((i) => crystals2.NTT.encode(i.slice()));
1387
+ const t0 = [];
1388
+ const t1 = [];
1389
+ const xof = XOF1282(rho);
1390
+ const t = newPoly(N2);
1391
+ for (let i = 0; i < K; i++) {
1392
+ cleanBytes(t);
1393
+ for (let j = 0; j < L; j++) {
1394
+ const aij = RejNTTPoly(xof.get(j, i));
1395
+ polyAdd2(t, MultiplyNTTs2(aij, s1Hat[j]));
1396
+ }
1397
+ crystals2.NTT.decode(t);
1398
+ const { r0, r1 } = polyPowerRound(polyAdd2(t, s2[i]));
1399
+ t0.push(r0);
1400
+ t1.push(r1);
1401
+ }
1402
+ const publicKey = publicCoder.encode([rho, t1]);
1403
+ const tr = shake256(publicKey, { dkLen: TR_BYTES });
1404
+ const secretKey = secretCoder.encode([rho, K_, tr, s1, s2, t0]);
1405
+ xof.clean();
1406
+ xofPrime.clean();
1407
+ cleanBytes(rho, rhoPrime, K_, s1, s2, s1Hat, t, t0, t1, tr, seedDst);
1408
+ return {
1409
+ publicKey,
1410
+ secretKey
1411
+ };
1412
+ },
1413
+ getPublicKey: (secretKey) => {
1414
+ const [rho, _K, _tr, s1, s2, _t0] = secretCoder.decode(secretKey);
1415
+ const xof = XOF1282(rho);
1416
+ const s1Hat = s1.map((p) => crystals2.NTT.encode(p.slice()));
1417
+ const t1 = [];
1418
+ const tmp = newPoly(N2);
1419
+ for (let i = 0; i < K; i++) {
1420
+ tmp.fill(0);
1421
+ for (let j = 0; j < L; j++) {
1422
+ const aij = RejNTTPoly(xof.get(j, i));
1423
+ polyAdd2(tmp, MultiplyNTTs2(aij, s1Hat[j]));
1424
+ }
1425
+ crystals2.NTT.decode(tmp);
1426
+ polyAdd2(tmp, s2[i]);
1427
+ const { r1 } = polyPowerRound(tmp);
1428
+ t1.push(r1);
1429
+ }
1430
+ xof.clean();
1431
+ cleanBytes(tmp, s1Hat, _t0, s1, s2);
1432
+ return publicCoder.encode([rho, t1]);
1433
+ },
1434
+ // NOTE: random is optional.
1435
+ sign: (msg, secretKey, opts3 = {}) => {
1436
+ validateSigOpts(opts3);
1437
+ validateInternalOpts(opts3);
1438
+ let { extraEntropy: random, externalMu = false } = opts3;
1439
+ const [rho, _K, tr, s1, s2, t0] = secretCoder.decode(secretKey);
1440
+ const A = [];
1441
+ const xof = XOF1282(rho);
1442
+ for (let i = 0; i < K; i++) {
1443
+ const pv = [];
1444
+ for (let j = 0; j < L; j++)
1445
+ pv.push(RejNTTPoly(xof.get(j, i)));
1446
+ A.push(pv);
1447
+ }
1448
+ xof.clean();
1449
+ for (let i = 0; i < L; i++)
1450
+ crystals2.NTT.encode(s1[i]);
1451
+ for (let i = 0; i < K; i++) {
1452
+ crystals2.NTT.encode(s2[i]);
1453
+ crystals2.NTT.encode(t0[i]);
1454
+ }
1455
+ const mu = externalMu ? msg : (
1456
+ // 6: µ ← H(tr||M, 512)
1457
+ // ▷ Compute message representative µ
1458
+ shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest()
1459
+ );
1460
+ const rnd = random === false ? new Uint8Array(32) : random === void 0 ? randomBytes2(signRandBytes) : random;
1461
+ abytesDoc(rnd, 32, "extraEntropy");
1462
+ const rhoprime = shake256.create({ dkLen: CRH_BYTES }).update(_K).update(rnd).update(mu).digest();
1463
+ abytesDoc(rhoprime, CRH_BYTES);
1464
+ const x256 = XOF2562(rhoprime, ZCoder.bytesLen);
1465
+ main_loop: for (let kappa = 0; ; ) {
1466
+ const y = [];
1467
+ for (let i = 0; i < L; i++, kappa++)
1468
+ y.push(ZCoder.decode(x256.get(kappa & 255, kappa >> 8)()));
1469
+ const z = y.map((i) => crystals2.NTT.encode(i.slice()));
1470
+ const w = [];
1471
+ for (let i = 0; i < K; i++) {
1472
+ const wi = newPoly(N2);
1473
+ for (let j = 0; j < L; j++)
1474
+ polyAdd2(wi, MultiplyNTTs2(A[i][j], z[j]));
1475
+ crystals2.NTT.decode(wi);
1476
+ w.push(wi);
1477
+ }
1478
+ const w1 = w.map((j) => j.map(HighBits));
1479
+ const cTilde = shake256.create({ dkLen: C_TILDE_BYTES }).update(mu).update(W1Vec.encode(w1)).digest();
1480
+ const cHat = crystals2.NTT.encode(SampleInBall(cTilde));
1481
+ const cs1 = s1.map((i) => MultiplyNTTs2(i, cHat));
1482
+ for (let i = 0; i < L; i++) {
1483
+ polyAdd2(crystals2.NTT.decode(cs1[i]), y[i]);
1484
+ if (polyChknorm(cs1[i], GAMMA1 - BETA))
1485
+ continue main_loop;
1486
+ }
1487
+ let cnt = 0;
1488
+ const h = [];
1489
+ for (let i = 0; i < K; i++) {
1490
+ const cs2 = crystals2.NTT.decode(MultiplyNTTs2(s2[i], cHat));
1491
+ const r0 = polySub2(w[i], cs2).map(LowBits);
1492
+ if (polyChknorm(r0, GAMMA2 - BETA))
1493
+ continue main_loop;
1494
+ const ct0 = crystals2.NTT.decode(MultiplyNTTs2(t0[i], cHat));
1495
+ if (polyChknorm(ct0, GAMMA2))
1496
+ continue main_loop;
1497
+ polyAdd2(r0, ct0);
1498
+ const hint = polyMakeHint(r0, w1[i]);
1499
+ h.push(hint.v);
1500
+ cnt += hint.cnt;
1501
+ }
1502
+ if (cnt > OMEGA)
1503
+ continue;
1504
+ x256.clean();
1505
+ const res = sigCoder.encode([cTilde, cs1, h]);
1506
+ cleanBytes(cTilde, cs1, h, cHat, w1, w, z, y, rhoprime, s1, s2, t0, ...A);
1507
+ if (!externalMu)
1508
+ cleanBytes(mu);
1509
+ return res;
1510
+ }
1511
+ throw new Error("Unreachable code path reached, report this error");
1512
+ },
1513
+ verify: (sig, msg, publicKey, opts3 = {}) => {
1514
+ validateInternalOpts(opts3);
1515
+ const { externalMu = false } = opts3;
1516
+ const [rho, t1] = publicCoder.decode(publicKey);
1517
+ const tr = shake256(publicKey, { dkLen: TR_BYTES });
1518
+ if (sig.length !== sigCoder.bytesLen)
1519
+ return false;
1520
+ const [cTilde, z, h] = sigCoder.decode(sig);
1521
+ if (h === false)
1522
+ return false;
1523
+ for (let i = 0; i < L; i++)
1524
+ if (polyChknorm(z[i], GAMMA1 - BETA))
1525
+ return false;
1526
+ const mu = externalMu ? msg : (
1527
+ // 7: µ ← H(tr||M, 512)
1528
+ shake256.create({ dkLen: CRH_BYTES }).update(tr).update(msg).digest()
1529
+ );
1530
+ const c = crystals2.NTT.encode(SampleInBall(cTilde));
1531
+ const zNtt = z.map((i) => i.slice());
1532
+ for (let i = 0; i < L; i++)
1533
+ crystals2.NTT.encode(zNtt[i]);
1534
+ const wTick1 = [];
1535
+ const xof = XOF1282(rho);
1536
+ for (let i = 0; i < K; i++) {
1537
+ const ct12d = MultiplyNTTs2(crystals2.NTT.encode(polyShiftl(t1[i])), c);
1538
+ const Az = newPoly(N2);
1539
+ for (let j = 0; j < L; j++) {
1540
+ const aij = RejNTTPoly(xof.get(j, i));
1541
+ polyAdd2(Az, MultiplyNTTs2(aij, zNtt[j]));
1542
+ }
1543
+ const wApprox = crystals2.NTT.decode(polySub2(Az, ct12d));
1544
+ wTick1.push(polyUseHint(wApprox, h[i]));
1545
+ }
1546
+ xof.clean();
1547
+ const c2 = shake256.create({ dkLen: C_TILDE_BYTES }).update(mu).update(W1Vec.encode(wTick1)).digest();
1548
+ for (const t of h) {
1549
+ const sum = t.reduce((acc, i) => acc + i, 0);
1550
+ if (!(sum <= OMEGA))
1551
+ return false;
1552
+ }
1553
+ for (const t of z)
1554
+ if (polyChknorm(t, GAMMA1 - BETA))
1555
+ return false;
1556
+ return equalBytes(cTilde, c2);
1557
+ }
1558
+ });
1559
+ return Object.freeze({
1560
+ info: Object.freeze({ type: "ml-dsa" }),
1561
+ internal,
1562
+ securityLevel,
1563
+ keygen: internal.keygen,
1564
+ lengths: internal.lengths,
1565
+ getPublicKey: internal.getPublicKey,
1566
+ sign: (msg, secretKey, opts3 = {}) => {
1567
+ validateSigOpts(opts3);
1568
+ const M = getMessage(msg, opts3.context);
1569
+ const res = internal.sign(M, secretKey, opts3);
1570
+ cleanBytes(M);
1571
+ return res;
1572
+ },
1573
+ verify: (sig, msg, publicKey, opts3 = {}) => {
1574
+ validateVerOpts(opts3);
1575
+ return internal.verify(sig, getMessage(msg, opts3.context), publicKey);
1576
+ },
1577
+ prehash: (hash) => {
1578
+ checkHash(hash, securityLevel);
1579
+ return Object.freeze({
1580
+ info: Object.freeze({ type: "hashml-dsa" }),
1581
+ securityLevel,
1582
+ lengths: internal.lengths,
1583
+ keygen: internal.keygen,
1584
+ getPublicKey: internal.getPublicKey,
1585
+ sign: (msg, secretKey, opts3 = {}) => {
1586
+ validateSigOpts(opts3);
1587
+ const M = getMessagePrehash(hash, msg, opts3.context);
1588
+ const res = internal.sign(M, secretKey, opts3);
1589
+ cleanBytes(M);
1590
+ return res;
1591
+ },
1592
+ verify: (sig, msg, publicKey, opts3 = {}) => {
1593
+ validateVerOpts(opts3);
1594
+ return internal.verify(sig, getMessagePrehash(hash, msg, opts3.context), publicKey);
1595
+ }
1596
+ });
1597
+ }
1598
+ });
1599
+ }
1600
+ var ml_dsa44 = /* @__PURE__ */ (() => getDilithium({
1601
+ ...PARAMS2[2],
1602
+ CRH_BYTES: 64,
1603
+ TR_BYTES: 64,
1604
+ C_TILDE_BYTES: 32,
1605
+ XOF128,
1606
+ XOF256,
1607
+ securityLevel: 128
1608
+ }))();
1609
+ var ml_dsa65 = /* @__PURE__ */ (() => getDilithium({
1610
+ ...PARAMS2[3],
1611
+ CRH_BYTES: 64,
1612
+ TR_BYTES: 64,
1613
+ C_TILDE_BYTES: 48,
1614
+ XOF128,
1615
+ XOF256,
1616
+ securityLevel: 192
1617
+ }))();
1618
+ var ml_dsa87 = /* @__PURE__ */ (() => getDilithium({
1619
+ ...PARAMS2[5],
1620
+ CRH_BYTES: 64,
1621
+ TR_BYTES: 64,
1622
+ C_TILDE_BYTES: 64,
1623
+ XOF128,
1624
+ XOF256,
1625
+ securityLevel: 256
1626
+ }))();
1627
+
1628
+ // node_modules/@noble/hashes/hmac.js
1629
+ var _HMAC = class {
1630
+ oHash;
1631
+ iHash;
1632
+ blockLen;
1633
+ outputLen;
1634
+ canXOF = false;
1635
+ finished = false;
1636
+ destroyed = false;
1637
+ constructor(hash, key) {
1638
+ ahash(hash);
1639
+ abytes(key, void 0, "key");
1640
+ this.iHash = hash.create();
1641
+ if (typeof this.iHash.update !== "function")
1642
+ throw new Error("Expected instance of class which extends utils.Hash");
1643
+ this.blockLen = this.iHash.blockLen;
1644
+ this.outputLen = this.iHash.outputLen;
1645
+ const blockLen = this.blockLen;
1646
+ const pad = new Uint8Array(blockLen);
1647
+ pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);
1648
+ for (let i = 0; i < pad.length; i++)
1649
+ pad[i] ^= 54;
1650
+ this.iHash.update(pad);
1651
+ this.oHash = hash.create();
1652
+ for (let i = 0; i < pad.length; i++)
1653
+ pad[i] ^= 54 ^ 92;
1654
+ this.oHash.update(pad);
1655
+ clean(pad);
1656
+ }
1657
+ update(buf) {
1658
+ aexists(this);
1659
+ this.iHash.update(buf);
1660
+ return this;
1661
+ }
1662
+ digestInto(out) {
1663
+ aexists(this);
1664
+ aoutput(out, this);
1665
+ this.finished = true;
1666
+ const buf = out.subarray(0, this.outputLen);
1667
+ this.iHash.digestInto(buf);
1668
+ this.oHash.update(buf);
1669
+ this.oHash.digestInto(buf);
1670
+ this.destroy();
1671
+ }
1672
+ digest() {
1673
+ const out = new Uint8Array(this.oHash.outputLen);
1674
+ this.digestInto(out);
1675
+ return out;
1676
+ }
1677
+ _cloneInto(to) {
1678
+ to ||= Object.create(Object.getPrototypeOf(this), {});
1679
+ const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;
1680
+ to = to;
1681
+ to.finished = finished;
1682
+ to.destroyed = destroyed;
1683
+ to.blockLen = blockLen;
1684
+ to.outputLen = outputLen;
1685
+ to.oHash = oHash._cloneInto(to.oHash);
1686
+ to.iHash = iHash._cloneInto(to.iHash);
1687
+ return to;
1688
+ }
1689
+ clone() {
1690
+ return this._cloneInto();
1691
+ }
1692
+ destroy() {
1693
+ this.destroyed = true;
1694
+ this.oHash.destroy();
1695
+ this.iHash.destroy();
1696
+ }
1697
+ };
1698
+ var hmac = /* @__PURE__ */ (() => {
1699
+ const hmac_ = ((hash, key, message) => new _HMAC(hash, key).update(message).digest());
1700
+ hmac_.create = (hash, key) => new _HMAC(hash, key);
1701
+ return hmac_;
1702
+ })();
1703
+
1704
+ // node_modules/@noble/hashes/_md.js
1705
+ function Chi(a, b, c) {
1706
+ return a & b ^ ~a & c;
1707
+ }
1708
+ function Maj(a, b, c) {
1709
+ return a & b ^ a & c ^ b & c;
1710
+ }
1711
+ var HashMD = class {
1712
+ blockLen;
1713
+ outputLen;
1714
+ canXOF = false;
1715
+ padOffset;
1716
+ isLE;
1717
+ // For partial updates less than block size
1718
+ buffer;
1719
+ view;
1720
+ finished = false;
1721
+ length = 0;
1722
+ pos = 0;
1723
+ destroyed = false;
1724
+ constructor(blockLen, outputLen, padOffset, isLE2) {
1725
+ this.blockLen = blockLen;
1726
+ this.outputLen = outputLen;
1727
+ this.padOffset = padOffset;
1728
+ this.isLE = isLE2;
1729
+ this.buffer = new Uint8Array(blockLen);
1730
+ this.view = createView(this.buffer);
1731
+ }
1732
+ update(data) {
1733
+ aexists(this);
1734
+ abytes(data);
1735
+ const { view, buffer, blockLen } = this;
1736
+ const len = data.length;
1737
+ for (let pos = 0; pos < len; ) {
1738
+ const take = Math.min(blockLen - this.pos, len - pos);
1739
+ if (take === blockLen) {
1740
+ const dataView = createView(data);
1741
+ for (; blockLen <= len - pos; pos += blockLen)
1742
+ this.process(dataView, pos);
1743
+ continue;
1744
+ }
1745
+ buffer.set(data.subarray(pos, pos + take), this.pos);
1746
+ this.pos += take;
1747
+ pos += take;
1748
+ if (this.pos === blockLen) {
1749
+ this.process(view, 0);
1750
+ this.pos = 0;
1751
+ }
1752
+ }
1753
+ this.length += data.length;
1754
+ this.roundClean();
1755
+ return this;
1756
+ }
1757
+ digestInto(out) {
1758
+ aexists(this);
1759
+ aoutput(out, this);
1760
+ this.finished = true;
1761
+ const { buffer, view, blockLen, isLE: isLE2 } = this;
1762
+ let { pos } = this;
1763
+ buffer[pos++] = 128;
1764
+ clean(this.buffer.subarray(pos));
1765
+ if (this.padOffset > blockLen - pos) {
1766
+ this.process(view, 0);
1767
+ pos = 0;
1768
+ }
1769
+ for (let i = pos; i < blockLen; i++)
1770
+ buffer[i] = 0;
1771
+ view.setBigUint64(blockLen - 8, BigInt(this.length * 8), isLE2);
1772
+ this.process(view, 0);
1773
+ const oview = createView(out);
1774
+ const len = this.outputLen;
1775
+ if (len % 4)
1776
+ throw new Error("_sha2: outputLen must be aligned to 32bit");
1777
+ const outLen = len / 4;
1778
+ const state = this.get();
1779
+ if (outLen > state.length)
1780
+ throw new Error("_sha2: outputLen bigger than state");
1781
+ for (let i = 0; i < outLen; i++)
1782
+ oview.setUint32(4 * i, state[i], isLE2);
1783
+ }
1784
+ digest() {
1785
+ const { buffer, outputLen } = this;
1786
+ this.digestInto(buffer);
1787
+ const res = buffer.slice(0, outputLen);
1788
+ this.destroy();
1789
+ return res;
1790
+ }
1791
+ _cloneInto(to) {
1792
+ to ||= new this.constructor();
1793
+ to.set(...this.get());
1794
+ const { blockLen, buffer, length, finished, destroyed, pos } = this;
1795
+ to.destroyed = destroyed;
1796
+ to.finished = finished;
1797
+ to.length = length;
1798
+ to.pos = pos;
1799
+ if (length % blockLen)
1800
+ to.buffer.set(buffer);
1801
+ return to;
1802
+ }
1803
+ clone() {
1804
+ return this._cloneInto();
1805
+ }
1806
+ };
1807
+ var SHA256_IV = /* @__PURE__ */ Uint32Array.from([
1808
+ 1779033703,
1809
+ 3144134277,
1810
+ 1013904242,
1811
+ 2773480762,
1812
+ 1359893119,
1813
+ 2600822924,
1814
+ 528734635,
1815
+ 1541459225
1816
+ ]);
1817
+ var SHA512_IV = /* @__PURE__ */ Uint32Array.from([
1818
+ 1779033703,
1819
+ 4089235720,
1820
+ 3144134277,
1821
+ 2227873595,
1822
+ 1013904242,
1823
+ 4271175723,
1824
+ 2773480762,
1825
+ 1595750129,
1826
+ 1359893119,
1827
+ 2917565137,
1828
+ 2600822924,
1829
+ 725511199,
1830
+ 528734635,
1831
+ 4215389547,
1832
+ 1541459225,
1833
+ 327033209
1834
+ ]);
1835
+
1836
+ // node_modules/@noble/hashes/sha2.js
1837
+ var SHA256_K = /* @__PURE__ */ Uint32Array.from([
1838
+ 1116352408,
1839
+ 1899447441,
1840
+ 3049323471,
1841
+ 3921009573,
1842
+ 961987163,
1843
+ 1508970993,
1844
+ 2453635748,
1845
+ 2870763221,
1846
+ 3624381080,
1847
+ 310598401,
1848
+ 607225278,
1849
+ 1426881987,
1850
+ 1925078388,
1851
+ 2162078206,
1852
+ 2614888103,
1853
+ 3248222580,
1854
+ 3835390401,
1855
+ 4022224774,
1856
+ 264347078,
1857
+ 604807628,
1858
+ 770255983,
1859
+ 1249150122,
1860
+ 1555081692,
1861
+ 1996064986,
1862
+ 2554220882,
1863
+ 2821834349,
1864
+ 2952996808,
1865
+ 3210313671,
1866
+ 3336571891,
1867
+ 3584528711,
1868
+ 113926993,
1869
+ 338241895,
1870
+ 666307205,
1871
+ 773529912,
1872
+ 1294757372,
1873
+ 1396182291,
1874
+ 1695183700,
1875
+ 1986661051,
1876
+ 2177026350,
1877
+ 2456956037,
1878
+ 2730485921,
1879
+ 2820302411,
1880
+ 3259730800,
1881
+ 3345764771,
1882
+ 3516065817,
1883
+ 3600352804,
1884
+ 4094571909,
1885
+ 275423344,
1886
+ 430227734,
1887
+ 506948616,
1888
+ 659060556,
1889
+ 883997877,
1890
+ 958139571,
1891
+ 1322822218,
1892
+ 1537002063,
1893
+ 1747873779,
1894
+ 1955562222,
1895
+ 2024104815,
1896
+ 2227730452,
1897
+ 2361852424,
1898
+ 2428436474,
1899
+ 2756734187,
1900
+ 3204031479,
1901
+ 3329325298
1902
+ ]);
1903
+ var SHA256_W = /* @__PURE__ */ new Uint32Array(64);
1904
+ var SHA2_32B = class extends HashMD {
1905
+ constructor(outputLen) {
1906
+ super(64, outputLen, 8, false);
1907
+ }
1908
+ get() {
1909
+ const { A, B, C, D: D2, E, F: F3, G, H } = this;
1910
+ return [A, B, C, D2, E, F3, G, H];
1911
+ }
1912
+ // prettier-ignore
1913
+ set(A, B, C, D2, E, F3, G, H) {
1914
+ this.A = A | 0;
1915
+ this.B = B | 0;
1916
+ this.C = C | 0;
1917
+ this.D = D2 | 0;
1918
+ this.E = E | 0;
1919
+ this.F = F3 | 0;
1920
+ this.G = G | 0;
1921
+ this.H = H | 0;
1922
+ }
1923
+ process(view, offset) {
1924
+ for (let i = 0; i < 16; i++, offset += 4)
1925
+ SHA256_W[i] = view.getUint32(offset, false);
1926
+ for (let i = 16; i < 64; i++) {
1927
+ const W15 = SHA256_W[i - 15];
1928
+ const W2 = SHA256_W[i - 2];
1929
+ const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ W15 >>> 3;
1930
+ const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ W2 >>> 10;
1931
+ SHA256_W[i] = s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16] | 0;
1932
+ }
1933
+ let { A, B, C, D: D2, E, F: F3, G, H } = this;
1934
+ for (let i = 0; i < 64; i++) {
1935
+ const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);
1936
+ const T1 = H + sigma1 + Chi(E, F3, G) + SHA256_K[i] + SHA256_W[i] | 0;
1937
+ const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);
1938
+ const T2 = sigma0 + Maj(A, B, C) | 0;
1939
+ H = G;
1940
+ G = F3;
1941
+ F3 = E;
1942
+ E = D2 + T1 | 0;
1943
+ D2 = C;
1944
+ C = B;
1945
+ B = A;
1946
+ A = T1 + T2 | 0;
1947
+ }
1948
+ A = A + this.A | 0;
1949
+ B = B + this.B | 0;
1950
+ C = C + this.C | 0;
1951
+ D2 = D2 + this.D | 0;
1952
+ E = E + this.E | 0;
1953
+ F3 = F3 + this.F | 0;
1954
+ G = G + this.G | 0;
1955
+ H = H + this.H | 0;
1956
+ this.set(A, B, C, D2, E, F3, G, H);
1957
+ }
1958
+ roundClean() {
1959
+ clean(SHA256_W);
1960
+ }
1961
+ destroy() {
1962
+ this.destroyed = true;
1963
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
1964
+ clean(this.buffer);
1965
+ }
1966
+ };
1967
+ var _SHA256 = class extends SHA2_32B {
1968
+ // We cannot use array here since array allows indexing by variable
1969
+ // which means optimizer/compiler cannot use registers.
1970
+ A = SHA256_IV[0] | 0;
1971
+ B = SHA256_IV[1] | 0;
1972
+ C = SHA256_IV[2] | 0;
1973
+ D = SHA256_IV[3] | 0;
1974
+ E = SHA256_IV[4] | 0;
1975
+ F = SHA256_IV[5] | 0;
1976
+ G = SHA256_IV[6] | 0;
1977
+ H = SHA256_IV[7] | 0;
1978
+ constructor() {
1979
+ super(32);
1980
+ }
1981
+ };
1982
+ var K512 = /* @__PURE__ */ (() => split([
1983
+ "0x428a2f98d728ae22",
1984
+ "0x7137449123ef65cd",
1985
+ "0xb5c0fbcfec4d3b2f",
1986
+ "0xe9b5dba58189dbbc",
1987
+ "0x3956c25bf348b538",
1988
+ "0x59f111f1b605d019",
1989
+ "0x923f82a4af194f9b",
1990
+ "0xab1c5ed5da6d8118",
1991
+ "0xd807aa98a3030242",
1992
+ "0x12835b0145706fbe",
1993
+ "0x243185be4ee4b28c",
1994
+ "0x550c7dc3d5ffb4e2",
1995
+ "0x72be5d74f27b896f",
1996
+ "0x80deb1fe3b1696b1",
1997
+ "0x9bdc06a725c71235",
1998
+ "0xc19bf174cf692694",
1999
+ "0xe49b69c19ef14ad2",
2000
+ "0xefbe4786384f25e3",
2001
+ "0x0fc19dc68b8cd5b5",
2002
+ "0x240ca1cc77ac9c65",
2003
+ "0x2de92c6f592b0275",
2004
+ "0x4a7484aa6ea6e483",
2005
+ "0x5cb0a9dcbd41fbd4",
2006
+ "0x76f988da831153b5",
2007
+ "0x983e5152ee66dfab",
2008
+ "0xa831c66d2db43210",
2009
+ "0xb00327c898fb213f",
2010
+ "0xbf597fc7beef0ee4",
2011
+ "0xc6e00bf33da88fc2",
2012
+ "0xd5a79147930aa725",
2013
+ "0x06ca6351e003826f",
2014
+ "0x142929670a0e6e70",
2015
+ "0x27b70a8546d22ffc",
2016
+ "0x2e1b21385c26c926",
2017
+ "0x4d2c6dfc5ac42aed",
2018
+ "0x53380d139d95b3df",
2019
+ "0x650a73548baf63de",
2020
+ "0x766a0abb3c77b2a8",
2021
+ "0x81c2c92e47edaee6",
2022
+ "0x92722c851482353b",
2023
+ "0xa2bfe8a14cf10364",
2024
+ "0xa81a664bbc423001",
2025
+ "0xc24b8b70d0f89791",
2026
+ "0xc76c51a30654be30",
2027
+ "0xd192e819d6ef5218",
2028
+ "0xd69906245565a910",
2029
+ "0xf40e35855771202a",
2030
+ "0x106aa07032bbd1b8",
2031
+ "0x19a4c116b8d2d0c8",
2032
+ "0x1e376c085141ab53",
2033
+ "0x2748774cdf8eeb99",
2034
+ "0x34b0bcb5e19b48a8",
2035
+ "0x391c0cb3c5c95a63",
2036
+ "0x4ed8aa4ae3418acb",
2037
+ "0x5b9cca4f7763e373",
2038
+ "0x682e6ff3d6b2b8a3",
2039
+ "0x748f82ee5defb2fc",
2040
+ "0x78a5636f43172f60",
2041
+ "0x84c87814a1f0ab72",
2042
+ "0x8cc702081a6439ec",
2043
+ "0x90befffa23631e28",
2044
+ "0xa4506cebde82bde9",
2045
+ "0xbef9a3f7b2c67915",
2046
+ "0xc67178f2e372532b",
2047
+ "0xca273eceea26619c",
2048
+ "0xd186b8c721c0c207",
2049
+ "0xeada7dd6cde0eb1e",
2050
+ "0xf57d4f7fee6ed178",
2051
+ "0x06f067aa72176fba",
2052
+ "0x0a637dc5a2c898a6",
2053
+ "0x113f9804bef90dae",
2054
+ "0x1b710b35131c471b",
2055
+ "0x28db77f523047d84",
2056
+ "0x32caab7b40c72493",
2057
+ "0x3c9ebe0a15c9bebc",
2058
+ "0x431d67c49c100d4c",
2059
+ "0x4cc5d4becb3e42b6",
2060
+ "0x597f299cfc657e2a",
2061
+ "0x5fcb6fab3ad6faec",
2062
+ "0x6c44198c4a475817"
2063
+ ].map((n) => BigInt(n))))();
2064
+ var SHA512_Kh = /* @__PURE__ */ (() => K512[0])();
2065
+ var SHA512_Kl = /* @__PURE__ */ (() => K512[1])();
2066
+ var SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);
2067
+ var SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);
2068
+ var SHA2_64B = class extends HashMD {
2069
+ constructor(outputLen) {
2070
+ super(128, outputLen, 16, false);
2071
+ }
2072
+ // prettier-ignore
2073
+ get() {
2074
+ const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
2075
+ return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];
2076
+ }
2077
+ // prettier-ignore
2078
+ set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {
2079
+ this.Ah = Ah | 0;
2080
+ this.Al = Al | 0;
2081
+ this.Bh = Bh | 0;
2082
+ this.Bl = Bl | 0;
2083
+ this.Ch = Ch | 0;
2084
+ this.Cl = Cl | 0;
2085
+ this.Dh = Dh | 0;
2086
+ this.Dl = Dl | 0;
2087
+ this.Eh = Eh | 0;
2088
+ this.El = El | 0;
2089
+ this.Fh = Fh | 0;
2090
+ this.Fl = Fl | 0;
2091
+ this.Gh = Gh | 0;
2092
+ this.Gl = Gl | 0;
2093
+ this.Hh = Hh | 0;
2094
+ this.Hl = Hl | 0;
2095
+ }
2096
+ process(view, offset) {
2097
+ for (let i = 0; i < 16; i++, offset += 4) {
2098
+ SHA512_W_H[i] = view.getUint32(offset);
2099
+ SHA512_W_L[i] = view.getUint32(offset += 4);
2100
+ }
2101
+ for (let i = 16; i < 80; i++) {
2102
+ const W15h = SHA512_W_H[i - 15] | 0;
2103
+ const W15l = SHA512_W_L[i - 15] | 0;
2104
+ const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7);
2105
+ const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7);
2106
+ const W2h = SHA512_W_H[i - 2] | 0;
2107
+ const W2l = SHA512_W_L[i - 2] | 0;
2108
+ const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6);
2109
+ const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6);
2110
+ const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);
2111
+ const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);
2112
+ SHA512_W_H[i] = SUMh | 0;
2113
+ SHA512_W_L[i] = SUMl | 0;
2114
+ }
2115
+ let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;
2116
+ for (let i = 0; i < 80; i++) {
2117
+ const sigma1h = rotrSH(Eh, El, 14) ^ rotrSH(Eh, El, 18) ^ rotrBH(Eh, El, 41);
2118
+ const sigma1l = rotrSL(Eh, El, 14) ^ rotrSL(Eh, El, 18) ^ rotrBL(Eh, El, 41);
2119
+ const CHIh = Eh & Fh ^ ~Eh & Gh;
2120
+ const CHIl = El & Fl ^ ~El & Gl;
2121
+ const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);
2122
+ const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);
2123
+ const T1l = T1ll | 0;
2124
+ const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39);
2125
+ const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39);
2126
+ const MAJh = Ah & Bh ^ Ah & Ch ^ Bh & Ch;
2127
+ const MAJl = Al & Bl ^ Al & Cl ^ Bl & Cl;
2128
+ Hh = Gh | 0;
2129
+ Hl = Gl | 0;
2130
+ Gh = Fh | 0;
2131
+ Gl = Fl | 0;
2132
+ Fh = Eh | 0;
2133
+ Fl = El | 0;
2134
+ ({ h: Eh, l: El } = add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));
2135
+ Dh = Ch | 0;
2136
+ Dl = Cl | 0;
2137
+ Ch = Bh | 0;
2138
+ Cl = Bl | 0;
2139
+ Bh = Ah | 0;
2140
+ Bl = Al | 0;
2141
+ const All = add3L(T1l, sigma0l, MAJl);
2142
+ Ah = add3H(All, T1h, sigma0h, MAJh);
2143
+ Al = All | 0;
2144
+ }
2145
+ ({ h: Ah, l: Al } = add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));
2146
+ ({ h: Bh, l: Bl } = add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));
2147
+ ({ h: Ch, l: Cl } = add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));
2148
+ ({ h: Dh, l: Dl } = add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));
2149
+ ({ h: Eh, l: El } = add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));
2150
+ ({ h: Fh, l: Fl } = add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));
2151
+ ({ h: Gh, l: Gl } = add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));
2152
+ ({ h: Hh, l: Hl } = add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));
2153
+ this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);
2154
+ }
2155
+ roundClean() {
2156
+ clean(SHA512_W_H, SHA512_W_L);
2157
+ }
2158
+ destroy() {
2159
+ this.destroyed = true;
2160
+ clean(this.buffer);
2161
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
2162
+ }
2163
+ };
2164
+ var _SHA512 = class extends SHA2_64B {
2165
+ Ah = SHA512_IV[0] | 0;
2166
+ Al = SHA512_IV[1] | 0;
2167
+ Bh = SHA512_IV[2] | 0;
2168
+ Bl = SHA512_IV[3] | 0;
2169
+ Ch = SHA512_IV[4] | 0;
2170
+ Cl = SHA512_IV[5] | 0;
2171
+ Dh = SHA512_IV[6] | 0;
2172
+ Dl = SHA512_IV[7] | 0;
2173
+ Eh = SHA512_IV[8] | 0;
2174
+ El = SHA512_IV[9] | 0;
2175
+ Fh = SHA512_IV[10] | 0;
2176
+ Fl = SHA512_IV[11] | 0;
2177
+ Gh = SHA512_IV[12] | 0;
2178
+ Gl = SHA512_IV[13] | 0;
2179
+ Hh = SHA512_IV[14] | 0;
2180
+ Hl = SHA512_IV[15] | 0;
2181
+ constructor() {
2182
+ super(64);
2183
+ }
2184
+ };
2185
+ var sha256 = /* @__PURE__ */ createHasher(
2186
+ () => new _SHA256(),
2187
+ /* @__PURE__ */ oidNist(1)
2188
+ );
2189
+ var sha512 = /* @__PURE__ */ createHasher(
2190
+ () => new _SHA512(),
2191
+ /* @__PURE__ */ oidNist(3)
2192
+ );
2193
+
2194
+ // node_modules/@noble/post-quantum/slh-dsa.js
2195
+ var PARAMS3 = /* @__PURE__ */ (() => Object.freeze({
2196
+ "128f": Object.freeze({ W: 16, N: 16, H: 66, D: 22, K: 33, A: 6, securityLevel: 128 }),
2197
+ "128s": Object.freeze({ W: 16, N: 16, H: 63, D: 7, K: 14, A: 12, securityLevel: 128 }),
2198
+ "192f": Object.freeze({ W: 16, N: 24, H: 66, D: 22, K: 33, A: 8, securityLevel: 192 }),
2199
+ "192s": Object.freeze({ W: 16, N: 24, H: 63, D: 7, K: 17, A: 14, securityLevel: 192 }),
2200
+ "256f": Object.freeze({ W: 16, N: 32, H: 68, D: 17, K: 35, A: 9, securityLevel: 256 }),
2201
+ "256s": Object.freeze({ W: 16, N: 32, H: 64, D: 8, K: 22, A: 14, securityLevel: 256 })
2202
+ }))();
2203
+ var AddressType = {
2204
+ WOTS: 0,
2205
+ WOTSPK: 1,
2206
+ HASHTREE: 2,
2207
+ FORSTREE: 3,
2208
+ FORSPK: 4,
2209
+ WOTSPRF: 5,
2210
+ FORSPRF: 6
2211
+ };
2212
+ function hexToNumber(hex) {
2213
+ if (typeof hex !== "string")
2214
+ throw new Error("hex string expected, got " + typeof hex);
2215
+ return BigInt(hex === "" ? "0" : "0x" + hex);
2216
+ }
2217
+ function bytesToNumberBE(bytes) {
2218
+ return hexToNumber(bytesToHex(bytes));
2219
+ }
2220
+ function numberToBytesBE(n, len) {
2221
+ return hexToBytes(n.toString(16).padStart(len * 2, "0"));
2222
+ }
2223
+ var base2b = (outLen, b) => {
2224
+ const mask = getMask(b);
2225
+ return (bytes) => {
2226
+ const baseB = new Uint32Array(outLen);
2227
+ for (let out = 0, pos = 0, bits = 0, total = 0; out < outLen; out++) {
2228
+ while (bits < b) {
2229
+ total = total << 8 | bytes[pos++];
2230
+ bits += 8;
2231
+ }
2232
+ bits -= b;
2233
+ baseB[out] = total >>> bits & mask;
2234
+ }
2235
+ return baseB;
2236
+ };
2237
+ };
2238
+ function getMaskBig(bits) {
2239
+ return (1n << BigInt(bits)) - 1n;
2240
+ }
2241
+ function gen(opts2, hashOpts_) {
2242
+ const hashOpts = hashOpts_;
2243
+ const { N: N3, W, H, D: D2, K, A, securityLevel } = opts2;
2244
+ const getContext = hashOpts.getContext(opts2);
2245
+ if (W !== 16)
2246
+ throw new Error("Unsupported Winternitz parameter");
2247
+ const WOTS_LOGW = 4;
2248
+ const WOTS_LEN1 = Math.floor(8 * N3 / WOTS_LOGW);
2249
+ const WOTS_LEN2 = N3 <= 8 ? 2 : N3 <= 136 ? 3 : 4;
2250
+ const TREE_HEIGHT = Math.floor(H / D2);
2251
+ const WOTS_LEN = WOTS_LEN1 + WOTS_LEN2;
2252
+ let ADDR_BYTES = 22;
2253
+ let OFFSET_LAYER = 0;
2254
+ let OFFSET_TREE = 1;
2255
+ let OFFSET_TYPE = 9;
2256
+ let OFFSET_KP_ADDR2 = 12;
2257
+ let OFFSET_KP_ADDR1 = 13;
2258
+ let OFFSET_CHAIN_ADDR = 17;
2259
+ let OFFSET_TREE_INDEX = 18;
2260
+ let OFFSET_HASH_ADDR = 21;
2261
+ if (!hashOpts.isCompressed) {
2262
+ ADDR_BYTES = 32;
2263
+ OFFSET_LAYER += 3;
2264
+ OFFSET_TREE += 7;
2265
+ OFFSET_TYPE += 10;
2266
+ OFFSET_KP_ADDR2 += 10;
2267
+ OFFSET_KP_ADDR1 += 10;
2268
+ OFFSET_CHAIN_ADDR += 10;
2269
+ OFFSET_TREE_INDEX += 10;
2270
+ OFFSET_HASH_ADDR += 10;
2271
+ }
2272
+ const setAddr = (opts3, addr = new Uint8Array(ADDR_BYTES)) => {
2273
+ const { type, height, tree, layer, index, chain, hash, keypair } = opts3;
2274
+ const { subtreeAddr, keypairAddr } = opts3;
2275
+ const v = createView(addr);
2276
+ if (height !== void 0)
2277
+ addr[OFFSET_CHAIN_ADDR] = height;
2278
+ if (layer !== void 0)
2279
+ addr[OFFSET_LAYER] = layer;
2280
+ if (type !== void 0)
2281
+ addr[OFFSET_TYPE] = type;
2282
+ if (chain !== void 0)
2283
+ addr[OFFSET_CHAIN_ADDR] = chain;
2284
+ if (hash !== void 0)
2285
+ addr[OFFSET_HASH_ADDR] = hash;
2286
+ if (index !== void 0)
2287
+ v.setUint32(OFFSET_TREE_INDEX, index, false);
2288
+ if (subtreeAddr)
2289
+ addr.set(subtreeAddr.subarray(0, OFFSET_TREE + 8));
2290
+ if (tree !== void 0)
2291
+ v.setBigUint64(OFFSET_TREE, tree, false);
2292
+ if (keypair !== void 0) {
2293
+ addr[OFFSET_KP_ADDR1] = keypair;
2294
+ if (TREE_HEIGHT > 8)
2295
+ addr[OFFSET_KP_ADDR2] = keypair >>> 8;
2296
+ }
2297
+ if (keypairAddr) {
2298
+ addr.set(keypairAddr.subarray(0, OFFSET_TREE + 8));
2299
+ addr[OFFSET_KP_ADDR1] = keypairAddr[OFFSET_KP_ADDR1];
2300
+ if (TREE_HEIGHT > 8)
2301
+ addr[OFFSET_KP_ADDR2] = keypairAddr[OFFSET_KP_ADDR2];
2302
+ }
2303
+ return addr;
2304
+ };
2305
+ const chainCoder = base2b(WOTS_LEN2, WOTS_LOGW);
2306
+ const chainLengths = (msg) => {
2307
+ const W1 = base2b(WOTS_LEN1, WOTS_LOGW)(msg);
2308
+ let csum = 0;
2309
+ for (let i = 0; i < W1.length; i++)
2310
+ csum += W - 1 - W1[i];
2311
+ csum <<= (8 - WOTS_LEN2 * WOTS_LOGW % 8) % 8;
2312
+ const W2 = chainCoder(numberToBytesBE(csum, Math.ceil(WOTS_LEN2 * WOTS_LOGW / 8)));
2313
+ const lengths = new Uint32Array(WOTS_LEN);
2314
+ lengths.set(W1);
2315
+ lengths.set(W2, W1.length);
2316
+ return lengths;
2317
+ };
2318
+ const messageToIndices = base2b(K, A);
2319
+ const TREE_BITS = TREE_HEIGHT * (D2 - 1);
2320
+ const LEAF_BITS = TREE_HEIGHT;
2321
+ const hashMsgCoder = splitCoder("hashedMessage", Math.ceil(A * K / 8), Math.ceil(TREE_BITS / 8), Math.ceil(TREE_HEIGHT / 8));
2322
+ const hashMessage = (R, pkSeed, msg, context) => {
2323
+ const rawContext = context;
2324
+ const digest = rawContext.Hmsg(R, pkSeed, msg, hashMsgCoder.bytesLen);
2325
+ const [md, tmpIdxTree, tmpIdxLeaf] = hashMsgCoder.decode(digest);
2326
+ const tree = bytesToNumberBE(tmpIdxTree) & getMaskBig(TREE_BITS);
2327
+ const leafIdx = Number(bytesToNumberBE(tmpIdxLeaf)) & getMask(LEAF_BITS);
2328
+ return { tree, leafIdx, md };
2329
+ };
2330
+ const treehash = (height, fn) => function treehash_i(context, leafIdx, idxOffset, treeAddr, info) {
2331
+ const rawContext = context;
2332
+ const leafFn = fn;
2333
+ const maxIdx = (1 << height) - 1;
2334
+ const stack = new Uint8Array(height * N3);
2335
+ const authPath = new Uint8Array(height * N3);
2336
+ for (let idx = 0; ; idx++) {
2337
+ const current = new Uint8Array(2 * N3);
2338
+ const cur0 = current.subarray(0, N3);
2339
+ const cur1 = current.subarray(N3);
2340
+ const addrOffset = idx + idxOffset;
2341
+ cur1.set(leafFn(leafIdx, addrOffset, rawContext, info));
2342
+ let h = 0;
2343
+ for (let i = idx, o = idxOffset, l = leafIdx; ; h++, i >>>= 1, l >>>= 1, o >>>= 1) {
2344
+ if (h === height)
2345
+ return { root: cur1, authPath };
2346
+ if ((i ^ l) === 1)
2347
+ authPath.subarray(h * N3).set(cur1);
2348
+ if ((i & 1) === 0 && idx < maxIdx)
2349
+ break;
2350
+ setAddr({ height: h + 1, index: (i >> 1) + (o >> 1) }, treeAddr);
2351
+ cur0.set(stack.subarray(h * N3).subarray(0, N3));
2352
+ cur1.set(rawContext.thashN(2, current, treeAddr));
2353
+ }
2354
+ stack.subarray(h * N3).set(cur1);
2355
+ }
2356
+ throw new Error("Unreachable code path reached, report this error");
2357
+ };
2358
+ const wotsTreehash = treehash(TREE_HEIGHT, (leafIdx, addrOffset, context, info) => {
2359
+ const rawContext = context;
2360
+ const wotsPk = new Uint8Array(WOTS_LEN * N3);
2361
+ const wotsKmask = addrOffset === leafIdx ? 0 : ~0 >>> 0;
2362
+ setAddr({ keypair: addrOffset }, info.leafAddr);
2363
+ setAddr({ keypair: addrOffset }, info.pkAddr);
2364
+ for (let i = 0; i < WOTS_LEN; i++) {
2365
+ const wotsK = info.wotsSteps[i] | wotsKmask;
2366
+ const pk = wotsPk.subarray(i * N3, (i + 1) * N3);
2367
+ setAddr({ chain: i, hash: 0, type: AddressType.WOTSPRF }, info.leafAddr);
2368
+ pk.set(rawContext.PRFaddr(info.leafAddr));
2369
+ setAddr({ type: AddressType.WOTS }, info.leafAddr);
2370
+ for (let k = 0; ; k++) {
2371
+ if (k === wotsK)
2372
+ info.wotsSig.subarray(i * N3).set(pk);
2373
+ if (k === W - 1)
2374
+ break;
2375
+ setAddr({ hash: k }, info.leafAddr);
2376
+ pk.set(rawContext.thash1(pk, info.leafAddr));
2377
+ }
2378
+ }
2379
+ return rawContext.thashN(WOTS_LEN, wotsPk, info.pkAddr);
2380
+ });
2381
+ const forsTreehash = treehash(A, (_, addrOffset, context, forsLeafAddr) => {
2382
+ const rawContext = context;
2383
+ setAddr({ type: AddressType.FORSPRF, index: addrOffset }, forsLeafAddr);
2384
+ const prf = rawContext.PRFaddr(forsLeafAddr);
2385
+ setAddr({ type: AddressType.FORSTREE }, forsLeafAddr);
2386
+ return rawContext.thash1(prf, forsLeafAddr);
2387
+ });
2388
+ const merkleSign = (context, wotsAddr, treeAddr, leafIdx, prevRoot = new Uint8Array(N3)) => {
2389
+ setAddr({ type: AddressType.HASHTREE }, treeAddr);
2390
+ const info = {
2391
+ wotsSig: new Uint8Array(wotsCoder.bytesLen),
2392
+ wotsSteps: chainLengths(prevRoot),
2393
+ leafAddr: setAddr({ subtreeAddr: wotsAddr }),
2394
+ pkAddr: setAddr({ type: AddressType.WOTSPK, subtreeAddr: wotsAddr })
2395
+ };
2396
+ const { root, authPath } = wotsTreehash(context, leafIdx, 0, treeAddr, info);
2397
+ return {
2398
+ root,
2399
+ sigWots: info.wotsSig.subarray(0, WOTS_LEN * N3),
2400
+ sigAuth: authPath
2401
+ };
2402
+ };
2403
+ const computeRoot = (leaf, leafIdx, idxOffset, authPath, treeHeight, context, addr) => {
2404
+ const rawContext = context;
2405
+ const buffer = new Uint8Array(2 * N3);
2406
+ const b0 = buffer.subarray(0, N3);
2407
+ const b1 = buffer.subarray(N3, 2 * N3);
2408
+ if ((leafIdx & 1) !== 0) {
2409
+ b1.set(leaf.subarray(0, N3));
2410
+ b0.set(authPath.subarray(0, N3));
2411
+ } else {
2412
+ b0.set(leaf.subarray(0, N3));
2413
+ b1.set(authPath.subarray(0, N3));
2414
+ }
2415
+ leafIdx >>>= 1;
2416
+ idxOffset >>>= 1;
2417
+ for (let i = 0; i < treeHeight - 1; i++, leafIdx >>= 1, idxOffset >>= 1) {
2418
+ setAddr({ height: i + 1, index: leafIdx + idxOffset }, addr);
2419
+ const a = authPath.subarray((i + 1) * N3, (i + 2) * N3);
2420
+ if ((leafIdx & 1) !== 0) {
2421
+ b1.set(rawContext.thashN(2, buffer, addr));
2422
+ b0.set(a);
2423
+ } else {
2424
+ buffer.set(rawContext.thashN(2, buffer, addr));
2425
+ b1.set(a);
2426
+ }
2427
+ }
2428
+ setAddr({ height: treeHeight, index: leafIdx + idxOffset }, addr);
2429
+ return rawContext.thashN(2, buffer, addr);
2430
+ };
2431
+ const seedCoder = splitCoder("seed", N3, N3, N3);
2432
+ const publicCoder = splitCoder("publicKey", N3, N3);
2433
+ const secretCoder = splitCoder("secretKey", N3, N3, publicCoder.bytesLen);
2434
+ const forsCoder = vecCoder(splitCoder("fors", N3, N3 * A), K);
2435
+ const wotsCoder = vecCoder(splitCoder("wots", WOTS_LEN * N3, TREE_HEIGHT * N3), D2);
2436
+ const sigCoder = splitCoder("signature", N3, forsCoder, wotsCoder);
2437
+ const internal = Object.freeze({
2438
+ info: Object.freeze({ type: "internal-slh-dsa" }),
2439
+ lengths: Object.freeze({
2440
+ publicKey: publicCoder.bytesLen,
2441
+ secretKey: secretCoder.bytesLen,
2442
+ signature: sigCoder.bytesLen,
2443
+ seed: seedCoder.bytesLen,
2444
+ signRand: N3
2445
+ }),
2446
+ keygen(seed) {
2447
+ if (seed !== void 0)
2448
+ abytesDoc(seed, seedCoder.bytesLen, "seed");
2449
+ seed = seed === void 0 ? randomBytes2(seedCoder.bytesLen) : copyBytes(seed);
2450
+ const [secretSeed, secretPRF, publicSeed] = seedCoder.decode(seed);
2451
+ const context = getContext(publicSeed, secretSeed);
2452
+ const topTreeAddr = setAddr({ layer: D2 - 1 });
2453
+ const wotsAddr = setAddr({ layer: D2 - 1 });
2454
+ const { root } = merkleSign(context, wotsAddr, topTreeAddr, ~0 >>> 0);
2455
+ const publicKey = publicCoder.encode([publicSeed, root]);
2456
+ const secretKey = secretCoder.encode([secretSeed, secretPRF, publicKey]);
2457
+ context.clean();
2458
+ cleanBytes(secretSeed, secretPRF, root, wotsAddr, topTreeAddr);
2459
+ return {
2460
+ publicKey,
2461
+ secretKey
2462
+ };
2463
+ },
2464
+ getPublicKey: (secretKey) => {
2465
+ const [_skSeed, _skPRF, pk] = secretCoder.decode(secretKey);
2466
+ return Uint8Array.from(pk);
2467
+ },
2468
+ sign: (msg, sk, opts3 = {}) => {
2469
+ validateSigOpts(opts3);
2470
+ let { extraEntropy: random } = opts3;
2471
+ const [skSeed, skPRF, pk] = secretCoder.decode(sk);
2472
+ const [pkSeed, _] = publicCoder.decode(pk);
2473
+ if (random === false)
2474
+ random = copyBytes(pkSeed);
2475
+ else if (random === void 0)
2476
+ random = randomBytes2(N3);
2477
+ else
2478
+ random = copyBytes(random);
2479
+ abytesDoc(random, N3);
2480
+ const context = getContext(pkSeed, skSeed);
2481
+ const R = context.PRFmsg(skPRF, random, msg);
2482
+ let { tree, leafIdx, md } = hashMessage(R, pk, msg, context);
2483
+ const wotsAddr = setAddr({
2484
+ type: AddressType.WOTS,
2485
+ tree,
2486
+ keypair: leafIdx
2487
+ });
2488
+ const roots = [];
2489
+ const forsLeaf = setAddr({ keypairAddr: wotsAddr });
2490
+ const forsTreeAddr = setAddr({ keypairAddr: wotsAddr });
2491
+ const indices = messageToIndices(md);
2492
+ const fors = [];
2493
+ for (let i = 0; i < indices.length; i++) {
2494
+ const idxOffset = i << A;
2495
+ setAddr({
2496
+ type: AddressType.FORSPRF,
2497
+ height: 0,
2498
+ index: indices[i] + idxOffset
2499
+ }, forsTreeAddr);
2500
+ const prf = context.PRFaddr(forsTreeAddr);
2501
+ setAddr({ type: AddressType.FORSTREE }, forsTreeAddr);
2502
+ const { root: root2, authPath } = forsTreehash(context, indices[i], idxOffset, forsTreeAddr, forsLeaf);
2503
+ roots.push(root2);
2504
+ fors.push([prf, authPath]);
2505
+ }
2506
+ const forsPkAddr = setAddr({
2507
+ type: AddressType.FORSPK,
2508
+ keypairAddr: wotsAddr
2509
+ });
2510
+ const root = context.thashN(K, concatBytes(...roots), forsPkAddr);
2511
+ const treeAddr = setAddr({ type: AddressType.HASHTREE });
2512
+ const wots = [];
2513
+ for (let i = 0; i < D2; i++, tree >>= BigInt(TREE_HEIGHT)) {
2514
+ setAddr({ tree, layer: i }, treeAddr);
2515
+ setAddr({ subtreeAddr: treeAddr, keypair: leafIdx }, wotsAddr);
2516
+ const { sigWots, sigAuth, root: r } = merkleSign(context, wotsAddr, treeAddr, leafIdx, root);
2517
+ root.set(r);
2518
+ cleanBytes(r);
2519
+ wots.push([sigWots, sigAuth]);
2520
+ leafIdx = Number(tree & getMaskBig(TREE_HEIGHT));
2521
+ }
2522
+ context.clean();
2523
+ const SIG = sigCoder.encode([R, fors, wots]);
2524
+ cleanBytes(R, random, treeAddr, wotsAddr, forsLeaf, forsTreeAddr, indices, roots);
2525
+ return SIG;
2526
+ },
2527
+ verify: (sig, msg, publicKey) => {
2528
+ const [pkSeed, pubRoot] = publicCoder.decode(publicKey);
2529
+ const [random, forsVec, wotsVec] = sigCoder.decode(sig);
2530
+ const pk = publicKey;
2531
+ if (sig.length !== sigCoder.bytesLen)
2532
+ return false;
2533
+ const context = getContext(pkSeed);
2534
+ let { tree, leafIdx, md } = hashMessage(random, pk, msg, context);
2535
+ const wotsAddr = setAddr({
2536
+ type: AddressType.WOTS,
2537
+ tree,
2538
+ keypair: leafIdx
2539
+ });
2540
+ const roots = [];
2541
+ const forsTreeAddr = setAddr({
2542
+ type: AddressType.FORSTREE,
2543
+ keypairAddr: wotsAddr
2544
+ });
2545
+ const indices = messageToIndices(md);
2546
+ for (let i = 0; i < forsVec.length; i++) {
2547
+ const [prf, authPath] = forsVec[i];
2548
+ const idxOffset = i << A;
2549
+ setAddr({ height: 0, index: indices[i] + idxOffset }, forsTreeAddr);
2550
+ const leaf = context.thash1(prf, forsTreeAddr);
2551
+ roots.push(computeRoot(leaf, indices[i], idxOffset, authPath, A, context, forsTreeAddr));
2552
+ }
2553
+ const forsPkAddr = setAddr({
2554
+ type: AddressType.FORSPK,
2555
+ keypairAddr: wotsAddr
2556
+ });
2557
+ let root = context.thashN(K, concatBytes(...roots), forsPkAddr);
2558
+ const treeAddr = setAddr({ type: AddressType.HASHTREE });
2559
+ const wotsPkAddr = setAddr({ type: AddressType.WOTSPK });
2560
+ const wotsPk = new Uint8Array(WOTS_LEN * N3);
2561
+ for (let i = 0; i < wotsVec.length; i++, tree >>= BigInt(TREE_HEIGHT)) {
2562
+ const [wots, sigAuth] = wotsVec[i];
2563
+ setAddr({ tree, layer: i }, treeAddr);
2564
+ setAddr({ subtreeAddr: treeAddr, keypair: leafIdx }, wotsAddr);
2565
+ setAddr({ keypairAddr: wotsAddr }, wotsPkAddr);
2566
+ const lengths = chainLengths(root);
2567
+ for (let i2 = 0; i2 < WOTS_LEN; i2++) {
2568
+ setAddr({ chain: i2 }, wotsAddr);
2569
+ const steps = W - 1 - lengths[i2];
2570
+ const start = lengths[i2];
2571
+ const out = wotsPk.subarray(i2 * N3);
2572
+ out.set(wots.subarray(i2 * N3, (i2 + 1) * N3));
2573
+ for (let j = start; j < start + steps && j < W; j++) {
2574
+ setAddr({ hash: j }, wotsAddr);
2575
+ out.set(context.thash1(out, wotsAddr));
2576
+ }
2577
+ }
2578
+ const leaf = context.thashN(WOTS_LEN, wotsPk, wotsPkAddr);
2579
+ root = computeRoot(leaf, leafIdx, 0, sigAuth, TREE_HEIGHT, context, treeAddr);
2580
+ leafIdx = Number(tree & getMaskBig(TREE_HEIGHT));
2581
+ }
2582
+ return equalBytes(root, pubRoot);
2583
+ }
2584
+ });
2585
+ return Object.freeze({
2586
+ info: Object.freeze({ type: "slh-dsa" }),
2587
+ internal,
2588
+ securityLevel,
2589
+ lengths: internal.lengths,
2590
+ keygen: internal.keygen,
2591
+ getPublicKey: internal.getPublicKey,
2592
+ sign: (msg, secretKey, opts3 = {}) => {
2593
+ validateSigOpts(opts3);
2594
+ const M = getMessage(msg, opts3.context);
2595
+ const res = internal.sign(M, secretKey, opts3);
2596
+ cleanBytes(M);
2597
+ return res;
2598
+ },
2599
+ verify: (sig, msg, publicKey, opts3 = {}) => {
2600
+ validateVerOpts(opts3);
2601
+ return internal.verify(sig, getMessage(msg, opts3.context), publicKey);
2602
+ },
2603
+ prehash: (hash) => {
2604
+ checkHash(hash, securityLevel);
2605
+ const rawHash = hash;
2606
+ return Object.freeze({
2607
+ info: Object.freeze({ type: "hashslh-dsa" }),
2608
+ lengths: internal.lengths,
2609
+ keygen: internal.keygen,
2610
+ getPublicKey: internal.getPublicKey,
2611
+ sign: (msg, secretKey, opts3 = {}) => {
2612
+ validateSigOpts(opts3);
2613
+ const M = getMessagePrehash(rawHash, msg, opts3.context);
2614
+ const res = internal.sign(M, secretKey, opts3);
2615
+ cleanBytes(M);
2616
+ return res;
2617
+ },
2618
+ verify: (sig, msg, publicKey, opts3 = {}) => {
2619
+ validateVerOpts(opts3);
2620
+ return internal.verify(sig, getMessagePrehash(rawHash, msg, opts3.context), publicKey);
2621
+ }
2622
+ });
2623
+ }
2624
+ });
2625
+ }
2626
+ var genShake2 = () => (opts2) => (pubSeed, skSeed) => {
2627
+ const { N: N3 } = opts2;
2628
+ const stats = { prf: 0, thash: 0, hmsg: 0, gen_message_random: 0 };
2629
+ const h0 = shake256.create({}).update(pubSeed);
2630
+ const h0tmp = h0.clone();
2631
+ const thash = (blocks, input, addr) => {
2632
+ stats.thash++;
2633
+ return h0._cloneInto(h0tmp).update(addr).update(input.subarray(0, blocks * N3)).xof(N3);
2634
+ };
2635
+ return {
2636
+ PRFaddr: (addr) => {
2637
+ if (!skSeed)
2638
+ throw new Error("no sk seed");
2639
+ stats.prf++;
2640
+ const res = h0._cloneInto(h0tmp).update(addr).update(skSeed).xof(N3);
2641
+ return res;
2642
+ },
2643
+ PRFmsg: (skPRF, random, msg) => {
2644
+ stats.gen_message_random++;
2645
+ return shake256.create({}).update(skPRF).update(random).update(msg).digest().subarray(0, N3);
2646
+ },
2647
+ Hmsg: (R, pk, m, outLen) => {
2648
+ stats.hmsg++;
2649
+ return shake256.create({}).update(R.subarray(0, N3)).update(pk).update(m).xof(outLen);
2650
+ },
2651
+ thash1: thash.bind(null, 1),
2652
+ thashN: thash,
2653
+ clean: () => {
2654
+ h0.destroy();
2655
+ h0tmp.destroy();
2656
+ }
2657
+ };
2658
+ };
2659
+ var SHAKE_SIMPLE = /* @__PURE__ */ (() => ({ getContext: genShake2() }))();
2660
+ var slh_dsa_shake_128f = /* @__PURE__ */ (() => gen(PARAMS3["128f"], SHAKE_SIMPLE))();
2661
+ var slh_dsa_shake_192f = /* @__PURE__ */ (() => gen(PARAMS3["192f"], SHAKE_SIMPLE))();
2662
+ var slh_dsa_shake_256f = /* @__PURE__ */ (() => gen(PARAMS3["256f"], SHAKE_SIMPLE))();
2663
+ var genSha = (h0, h1) => (opts2) => (pub_seed, sk_seed) => {
2664
+ const { N: N3 } = opts2;
2665
+ const stats = { prf: 0, thash: 0, hmsg: 0, gen_message_random: 0, mgf1: 0 };
2666
+ const counterB = new Uint8Array(4);
2667
+ const counterV = createView(counterB);
2668
+ const h0ps = h0.create().update(pub_seed).update(new Uint8Array(h0.blockLen - N3));
2669
+ const h1ps = h1.create().update(pub_seed).update(new Uint8Array(h1.blockLen - N3));
2670
+ const h0tmp = h0ps.clone();
2671
+ const h1tmp = h1ps.clone();
2672
+ function mgf1(seed, length, hash) {
2673
+ stats.mgf1++;
2674
+ const out = new Uint8Array(Math.ceil(length / hash.outputLen) * hash.outputLen);
2675
+ if (length > 2 ** 32)
2676
+ throw new Error("mask too long");
2677
+ for (let counter = 0, o = out; o.length; counter++) {
2678
+ counterV.setUint32(0, counter, false);
2679
+ hash.create().update(seed).update(counterB).digestInto(o);
2680
+ o = o.subarray(hash.outputLen);
2681
+ }
2682
+ cleanBytes(out.subarray(length));
2683
+ return out.subarray(0, length);
2684
+ }
2685
+ const thash = (_, h, hTmp) => (blocks, input, addr) => {
2686
+ stats.thash++;
2687
+ const d = h._cloneInto(hTmp).update(addr).update(input.subarray(0, blocks * N3)).digest();
2688
+ return d.subarray(0, N3);
2689
+ };
2690
+ return {
2691
+ PRFaddr: (addr) => {
2692
+ if (!sk_seed)
2693
+ throw new Error("No sk seed");
2694
+ stats.prf++;
2695
+ const res = h0ps._cloneInto(h0tmp).update(addr).update(sk_seed).digest().subarray(0, N3);
2696
+ return res;
2697
+ },
2698
+ PRFmsg: (skPRF, random, msg) => {
2699
+ stats.gen_message_random++;
2700
+ return hmac.create(h1, skPRF).update(random).update(msg).digest().subarray(0, N3);
2701
+ },
2702
+ Hmsg: (R, pk, m, outLen) => {
2703
+ stats.hmsg++;
2704
+ const seed = concatBytes(R.subarray(0, N3), pk.subarray(0, N3), h1.create().update(R.subarray(0, N3)).update(pk).update(m).digest());
2705
+ return mgf1(seed, outLen, h1);
2706
+ },
2707
+ thash1: thash(h0, h0ps, h0tmp).bind(null, 1),
2708
+ thashN: thash(h1, h1ps, h1tmp),
2709
+ clean: () => {
2710
+ h0ps.destroy();
2711
+ h1ps.destroy();
2712
+ h0tmp.destroy();
2713
+ h1tmp.destroy();
2714
+ }
2715
+ };
2716
+ };
2717
+ var SHA256_SIMPLE = /* @__PURE__ */ (() => ({
2718
+ isCompressed: true,
2719
+ getContext: genSha(sha256, sha256)
2720
+ }))();
2721
+ var SHA512_SIMPLE = /* @__PURE__ */ (() => ({
2722
+ isCompressed: true,
2723
+ getContext: genSha(sha256, sha512)
2724
+ }))();
2725
+ var slh_dsa_sha2_128f = /* @__PURE__ */ (() => gen(PARAMS3["128f"], SHA256_SIMPLE))();
2726
+ var slh_dsa_sha2_192f = /* @__PURE__ */ (() => gen(PARAMS3["192f"], SHA512_SIMPLE))();
2727
+ var slh_dsa_sha2_256f = /* @__PURE__ */ (() => gen(PARAMS3["256f"], SHA512_SIMPLE))();
2728
+ // Annotate the CommonJS export names for ESM import in node:
2729
+ 0 && (module.exports = {
2730
+ ml_dsa44,
2731
+ ml_dsa65,
2732
+ ml_dsa87,
2733
+ ml_kem1024,
2734
+ ml_kem512,
2735
+ ml_kem768,
2736
+ slh_dsa_sha2_128f,
2737
+ slh_dsa_sha2_192f,
2738
+ slh_dsa_sha2_256f,
2739
+ slh_dsa_shake_128f,
2740
+ slh_dsa_shake_192f,
2741
+ slh_dsa_shake_256f
2742
+ });
7
2743
  /*! Bundled license information:
8
2744
 
9
2745
  @noble/post-quantum/utils.js: