@suveren/gateway 0.40.0 → 0.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/content/guides/6-risks.md +1 -0
- package/dist/control-plane/index.mjs +182 -37
- package/dist/mcp-server/http.mjs +357 -71
- package/dist/ui/assets/{index-C-lA_7Lt.js → index-CO-dj98E.js} +27 -27
- package/dist/ui/index.html +1 -1
- package/node_modules/@hap/core/README.md +3 -3
- package/node_modules/@hap/core/dist/index.d.mts +567 -123
- package/node_modules/@hap/core/dist/index.d.ts +567 -123
- package/node_modules/@hap/core/dist/index.js +869 -23
- package/node_modules/@hap/core/dist/index.mjs +829 -22
- package/node_modules/@hap/core/node_modules/@hpke/core/LICENSE +21 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/README.md +263 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.d.ts +11 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/mod.js +6 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/package.json +3 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.d.ts +80 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/aesGcm.js +167 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.d.ts +34 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/aeads/exportOnly.js +56 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.d.ts +145 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/cipherSuiteNative.js +326 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.d.ts +15 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/encryptionContext.js +68 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.d.ts +19 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/exporterContext.js +62 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.d.ts +17 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/aeadParams.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.d.ts +13 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/cipherSuiteParams.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.d.ts +8 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encapsulator.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.d.ts +40 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/encryptionContext.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.d.ts +17 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/exporter.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.d.ts +7 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/keyInfo.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.d.ts +10 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/interfaces/responses.js +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.d.ts +26 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemNative.js +112 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts +24 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.js +214 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts +24 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.js +214 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.d.ts +38 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX25519.js +66 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.d.ts +38 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/kems/dhkemX448.js +66 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.d.ts +5 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/mutex.js +28 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.d.ts +236 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/native.js +235 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.d.ts +6 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/recipientContext.js +38 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.d.ts +11 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/senderContext.js +45 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.d.ts +2 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/esm/src/utils/emitNotSupported.js +6 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/package.json +46 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.d.ts +11 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/mod.js +47 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/package.json +3 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.d.ts +80 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/aesGcm.js +183 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.d.ts +34 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/aeads/exportOnly.js +70 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.d.ts +145 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/cipherSuiteNative.js +340 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.d.ts +15 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/encryptionContext.js +82 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.d.ts +19 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/exporterContext.js +78 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.d.ts +17 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.d.ts +13 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.d.ts +8 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.d.ts +40 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encryptionContext.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.d.ts +17 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/exporter.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.d.ts +7 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/keyInfo.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.d.ts +10 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/responses.js +12 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.d.ts +26 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemNative.js +128 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts +24 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.js +228 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts +24 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.js +228 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.d.ts +38 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX25519.js +80 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.d.ts +38 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/kems/dhkemX448.js +80 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.d.ts +5 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/mutex.js +42 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.d.ts +236 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/native.js +255 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.d.ts +6 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/recipientContext.js +52 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.d.ts +11 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/senderContext.js +59 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.d.ts +2 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.d.ts.map +1 -0
- package/node_modules/@hap/core/node_modules/@hpke/core/script/src/utils/emitNotSupported.js +19 -0
- package/node_modules/@hap/core/package.json +2 -1
- package/node_modules/@hap/core/src/canonicalize.ts +9 -0
- package/node_modules/@hap/core/src/commitment-modes.ts +21 -9
- package/node_modules/@hap/core/src/errors.ts +24 -8
- package/node_modules/@hap/core/src/gatekeeper.ts +52 -8
- package/node_modules/@hap/core/src/index.ts +5 -1
- package/node_modules/@hap/core/src/issuance.ts +250 -0
- package/node_modules/@hap/core/src/mandate.ts +52 -14
- package/node_modules/@hap/core/src/owner-signature.ts +86 -39
- package/node_modules/@hap/core/src/profile.ts +45 -0
- package/node_modules/@hap/core/src/proposal-content.ts +219 -0
- package/node_modules/@hap/core/src/ticket-projection.ts +167 -0
- package/node_modules/@hap/core/src/ticket.ts +254 -20
- package/node_modules/@hap/core/src/types.ts +33 -5
- package/node_modules/@hap/core/src/verifier-policy.ts +178 -0
- package/node_modules/@hap/core/src/versions.ts +50 -19
- package/node_modules/@hono/node-server/dist/index.cjs +31 -6
- package/node_modules/@hono/node-server/dist/index.mjs +31 -6
- package/node_modules/@hono/node-server/package.json +1 -1
- package/node_modules/@hpke/common/esm/package.json +5 -1
- package/node_modules/@hpke/common/esm/src/curve/montgomery.d.ts +2 -2
- package/node_modules/@hpke/common/esm/src/curve/montgomery.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/curve/montgomery.js +41 -26
- package/node_modules/@hpke/common/esm/src/hash/sha3.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/hash/sha3.js +0 -15
- package/node_modules/@hpke/common/esm/src/kdfs/hkdf.d.ts +2 -1
- package/node_modules/@hpke/common/esm/src/kdfs/hkdf.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/kdfs/hkdf.js +12 -2
- package/node_modules/@hpke/common/esm/src/kems/dhkemPrimitives/xCurve.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/kems/dhkemPrimitives/xCurve.js +14 -3
- package/node_modules/@hpke/common/esm/src/utils/misc.d.ts +6 -0
- package/node_modules/@hpke/common/esm/src/utils/misc.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/utils/misc.js +43 -10
- package/node_modules/@hpke/common/esm/src/utils/noble.d.ts +1 -1
- package/node_modules/@hpke/common/esm/src/utils/noble.d.ts.map +1 -1
- package/node_modules/@hpke/common/esm/src/utils/noble.js +21 -10
- package/node_modules/@hpke/common/package.json +5 -1
- package/node_modules/@hpke/common/script/src/curve/montgomery.d.ts +2 -2
- package/node_modules/@hpke/common/script/src/curve/montgomery.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/curve/montgomery.js +40 -25
- package/node_modules/@hpke/common/script/src/hash/sha3.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/hash/sha3.js +0 -15
- package/node_modules/@hpke/common/script/src/kdfs/hkdf.d.ts +2 -1
- package/node_modules/@hpke/common/script/src/kdfs/hkdf.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/kdfs/hkdf.js +12 -2
- package/node_modules/@hpke/common/script/src/kems/dhkemPrimitives/xCurve.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/kems/dhkemPrimitives/xCurve.js +13 -2
- package/node_modules/@hpke/common/script/src/utils/misc.d.ts +6 -0
- package/node_modules/@hpke/common/script/src/utils/misc.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/utils/misc.js +43 -9
- package/node_modules/@hpke/common/script/src/utils/noble.d.ts +1 -1
- package/node_modules/@hpke/common/script/src/utils/noble.d.ts.map +1 -1
- package/node_modules/@hpke/common/script/src/utils/noble.js +22 -11
- package/node_modules/@hpke/core/README.md +56 -56
- package/node_modules/@hpke/core/esm/package.json +2 -1
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts +3 -21
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -1
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x25519.js +3 -201
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts +3 -21
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.d.ts.map +1 -1
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/x448.js +3 -201
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.d.ts +26 -0
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.d.ts.map +1 -0
- package/node_modules/@hpke/core/esm/src/kems/dhkemPrimitives/xCurveNative.js +216 -0
- package/node_modules/@hpke/core/package.json +6 -2
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts +3 -21
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.d.ts.map +1 -1
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x25519.js +4 -202
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts +3 -21
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.d.ts.map +1 -1
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/x448.js +4 -202
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.d.ts +26 -0
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.d.ts.map +1 -0
- package/node_modules/@hpke/core/script/src/kems/dhkemPrimitives/xCurveNative.js +230 -0
- package/node_modules/@types/node/README.md +1 -1
- package/node_modules/@types/node/package.json +2 -2
- package/node_modules/@types/node/zlib.d.ts +752 -0
- package/node_modules/encodeurl/README.md +14 -0
- package/node_modules/encodeurl/index.js +5 -10
- package/node_modules/encodeurl/package.json +10 -6
- package/node_modules/express-rate-limit/dist/index.cjs +7 -3
- package/node_modules/express-rate-limit/dist/index.mjs +7 -3
- package/node_modules/express-rate-limit/package.json +10 -10
- package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
- package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
- package/node_modules/hono/dist/cjs/context.js +1 -1
- package/node_modules/hono/dist/cjs/helper/css/common.js +3 -5
- package/node_modules/hono/dist/cjs/hono-base.js +4 -10
- package/node_modules/hono/dist/cjs/hono.js +0 -1
- package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/csrf/index.js +2 -2
- package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +2 -2
- package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +2 -2
- package/node_modules/hono/dist/cjs/middleware/mount/index.js +4 -4
- package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +13 -11
- package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +4 -4
- package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +39 -51
- package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +15 -5
- package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +2 -1
- package/node_modules/hono/dist/cjs/utils/mount.js +35 -0
- package/node_modules/hono/dist/cjs/utils/url.js +10 -0
- package/node_modules/hono/dist/cjs/validator/validator.js +1 -1
- package/node_modules/hono/dist/context.js +1 -1
- package/node_modules/hono/dist/helper/css/common.js +3 -5
- package/node_modules/hono/dist/hono-base.js +4 -10
- package/node_modules/hono/dist/hono.js +0 -1
- package/node_modules/hono/dist/middleware/basic-auth/index.js +1 -1
- package/node_modules/hono/dist/middleware/bearer-auth/index.js +1 -1
- package/node_modules/hono/dist/middleware/csrf/index.js +2 -2
- package/node_modules/hono/dist/middleware/jwk/jwk.js +2 -2
- package/node_modules/hono/dist/middleware/jwt/jwt.js +2 -2
- package/node_modules/hono/dist/middleware/language/language.js +1 -1
- package/node_modules/hono/dist/middleware/mount/index.js +4 -4
- package/node_modules/hono/dist/router/reg-exp-router/node.js +13 -11
- package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +5 -5
- package/node_modules/hono/dist/router/reg-exp-router/router.js +40 -52
- package/node_modules/hono/dist/router/reg-exp-router/trie.js +15 -5
- package/node_modules/hono/dist/types/middleware/mount/index.d.ts +1 -0
- package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -3
- package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +1 -1
- package/node_modules/hono/dist/types/utils/mount.d.ts +4 -0
- package/node_modules/hono/dist/types/utils/url.d.ts +1 -0
- package/node_modules/hono/dist/utils/jwt/jwt.js +2 -1
- package/node_modules/hono/dist/utils/mount.js +34 -0
- package/node_modules/hono/dist/utils/url.js +10 -1
- package/node_modules/hono/dist/validator/validator.js +1 -1
- package/node_modules/hono/package.json +1 -1
- package/node_modules/ip-address/README.md +39 -39
- package/node_modules/ip-address/dist/ipv6.js +1 -1
- package/node_modules/ip-address/dist/ipv6.js.map +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +3 -0
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +2 -0
- package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -0
- package/node_modules/jose/dist/types/types.d.ts +8 -0
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +1 -0
- package/node_modules/jose/dist/webapi/jwks/remote.js +3 -1
- package/node_modules/jose/dist/webapi/lib/deflate.js +2 -1
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +2 -1
- package/node_modules/jose/package.json +1 -1
- package/node_modules/qs/CHANGELOG.md +29 -22
- package/node_modules/qs/dist/qs.js +14 -14
- package/node_modules/qs/eslint.config.mjs +6 -0
- package/node_modules/qs/lib/stringify.js +1 -1
- package/node_modules/qs/package.json +5 -5
- package/node_modules/qs/test/stringify.js +74 -0
- package/package.json +2 -2
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "@hpke/common", "./exporterContext.js", "./recipientContext.js", "./senderContext.js"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CipherSuiteNative = void 0;
|
|
13
|
+
const common_1 = require("@hpke/common");
|
|
14
|
+
const exporterContext_js_1 = require("./exporterContext.js");
|
|
15
|
+
const recipientContext_js_1 = require("./recipientContext.js");
|
|
16
|
+
const senderContext_js_1 = require("./senderContext.js");
|
|
17
|
+
// b"base_nonce"
|
|
18
|
+
// deno-fmt-ignore
|
|
19
|
+
const LABEL_BASE_NONCE = new Uint8Array([
|
|
20
|
+
98, 97, 115, 101, 95, 110, 111, 110, 99, 101,
|
|
21
|
+
]);
|
|
22
|
+
// b"exp"
|
|
23
|
+
const LABEL_EXP = new Uint8Array([101, 120, 112]);
|
|
24
|
+
// b"info_hash"
|
|
25
|
+
// deno-fmt-ignore
|
|
26
|
+
const LABEL_INFO_HASH = new Uint8Array([
|
|
27
|
+
105, 110, 102, 111, 95, 104, 97, 115, 104,
|
|
28
|
+
]);
|
|
29
|
+
// b"key"
|
|
30
|
+
const LABEL_KEY = new Uint8Array([107, 101, 121]);
|
|
31
|
+
// b"psk_id_hash"
|
|
32
|
+
// deno-fmt-ignore
|
|
33
|
+
const LABEL_PSK_ID_HASH = new Uint8Array([
|
|
34
|
+
112, 115, 107, 95, 105, 100, 95, 104, 97, 115, 104,
|
|
35
|
+
]);
|
|
36
|
+
// b"secret"
|
|
37
|
+
const LABEL_SECRET = new Uint8Array([115, 101, 99, 114, 101, 116]);
|
|
38
|
+
// b"HPKE"
|
|
39
|
+
// deno-fmt-ignore
|
|
40
|
+
const SUITE_ID_HEADER_HPKE = new Uint8Array([
|
|
41
|
+
72, 80, 75, 69, 0, 0, 0, 0, 0, 0,
|
|
42
|
+
]);
|
|
43
|
+
/**
|
|
44
|
+
* The Hybrid Public Key Encryption (HPKE) ciphersuite,
|
|
45
|
+
* which is implemented using only
|
|
46
|
+
* {@link https://www.w3.org/TR/WebCryptoAPI/ | Web Cryptography API}.
|
|
47
|
+
*
|
|
48
|
+
* This is the super class of {@link CipherSuite} and the same as
|
|
49
|
+
* {@link https://jsr.io/@hpke/core/doc/~/CipherSuite | @hpke/core#CipherSuite} as follows:
|
|
50
|
+
* which supports only the ciphersuites that can be implemented on the native
|
|
51
|
+
* {@link https://www.w3.org/TR/WebCryptoAPI/ | Web Cryptography API}.
|
|
52
|
+
* Therefore, the following cryptographic algorithms are not supported for now:
|
|
53
|
+
* - DHKEM(X25519, HKDF-SHA256)
|
|
54
|
+
* - DHKEM(X448, HKDF-SHA512)
|
|
55
|
+
* - ChaCha20Poly1305
|
|
56
|
+
*
|
|
57
|
+
* In addtion, the HKDF functions contained in this class can only derive
|
|
58
|
+
* keys of the same length as the `hashSize`.
|
|
59
|
+
*
|
|
60
|
+
* If you want to use the unsupported cryptographic algorithms
|
|
61
|
+
* above or derive keys longer than the `hashSize`,
|
|
62
|
+
* please use {@link CipherSuite}.
|
|
63
|
+
*
|
|
64
|
+
* This class provides following functions:
|
|
65
|
+
*
|
|
66
|
+
* - Creates encryption contexts both for senders and recipients.
|
|
67
|
+
* - {@link createSenderContext}
|
|
68
|
+
* - {@link createRecipientContext}
|
|
69
|
+
* - Provides single-shot encryption API.
|
|
70
|
+
* - {@link seal}
|
|
71
|
+
* - {@link open}
|
|
72
|
+
*
|
|
73
|
+
* The calling of the constructor of this class is the starting
|
|
74
|
+
* point for HPKE operations for both senders and recipients.
|
|
75
|
+
*
|
|
76
|
+
* @example Use only ciphersuites supported by Web Cryptography API.
|
|
77
|
+
*
|
|
78
|
+
* ```ts
|
|
79
|
+
* import {
|
|
80
|
+
* Aes128Gcm,
|
|
81
|
+
* DhkemP256HkdfSha256,
|
|
82
|
+
* HkdfSha256,
|
|
83
|
+
* CipherSuite,
|
|
84
|
+
* } from "@hpke/core";
|
|
85
|
+
*
|
|
86
|
+
* const suite = new CipherSuite({
|
|
87
|
+
* kem: new DhkemP256HkdfSha256(),
|
|
88
|
+
* kdf: new HkdfSha256(),
|
|
89
|
+
* aead: new Aes128Gcm(),
|
|
90
|
+
* });
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @example Use a ciphersuite which is currently not supported by Web Cryptography API.
|
|
94
|
+
*
|
|
95
|
+
* ```ts
|
|
96
|
+
* import { Aes128Gcm, HkdfSha256, CipherSuite } from "@hpke/core";
|
|
97
|
+
* // Use an extension module.
|
|
98
|
+
* import { DhkemX25519HkdfSha256 } from "@hpke/dhkem-x25519";
|
|
99
|
+
*
|
|
100
|
+
* const suite = new CipherSuite({
|
|
101
|
+
* kem: new DhkemX25519HkdfSha256(),
|
|
102
|
+
* kdf: new HkdfSha256(),
|
|
103
|
+
* aead: new Aes128Gcm(),
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
class CipherSuiteNative extends common_1.NativeAlgorithm {
|
|
108
|
+
/**
|
|
109
|
+
* @param params A set of parameters for building a cipher suite.
|
|
110
|
+
*
|
|
111
|
+
* If the error occurred, throws {@link InvalidParamError}.
|
|
112
|
+
*
|
|
113
|
+
* @throws {@link InvalidParamError}
|
|
114
|
+
*/
|
|
115
|
+
constructor(params) {
|
|
116
|
+
super();
|
|
117
|
+
Object.defineProperty(this, "_kem", {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
configurable: true,
|
|
120
|
+
writable: true,
|
|
121
|
+
value: void 0
|
|
122
|
+
});
|
|
123
|
+
Object.defineProperty(this, "_kdf", {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
configurable: true,
|
|
126
|
+
writable: true,
|
|
127
|
+
value: void 0
|
|
128
|
+
});
|
|
129
|
+
Object.defineProperty(this, "_aead", {
|
|
130
|
+
enumerable: true,
|
|
131
|
+
configurable: true,
|
|
132
|
+
writable: true,
|
|
133
|
+
value: void 0
|
|
134
|
+
});
|
|
135
|
+
Object.defineProperty(this, "_suiteId", {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
configurable: true,
|
|
138
|
+
writable: true,
|
|
139
|
+
value: void 0
|
|
140
|
+
});
|
|
141
|
+
// KEM
|
|
142
|
+
if (typeof params.kem === "number") {
|
|
143
|
+
throw new common_1.InvalidParamError("KemId cannot be used");
|
|
144
|
+
}
|
|
145
|
+
this._kem = params.kem;
|
|
146
|
+
// KDF
|
|
147
|
+
if (typeof params.kdf === "number") {
|
|
148
|
+
throw new common_1.InvalidParamError("KdfId cannot be used");
|
|
149
|
+
}
|
|
150
|
+
this._kdf = params.kdf;
|
|
151
|
+
// AEAD
|
|
152
|
+
if (typeof params.aead === "number") {
|
|
153
|
+
throw new common_1.InvalidParamError("AeadId cannot be used");
|
|
154
|
+
}
|
|
155
|
+
this._aead = params.aead;
|
|
156
|
+
this._suiteId = new Uint8Array(SUITE_ID_HEADER_HPKE);
|
|
157
|
+
this._suiteId.set((0, common_1.i2Osp)(this._kem.id, 2), 4);
|
|
158
|
+
this._suiteId.set((0, common_1.i2Osp)(this._kdf.id, 2), 6);
|
|
159
|
+
this._suiteId.set((0, common_1.i2Osp)(this._aead.id, 2), 8);
|
|
160
|
+
this._kdf.init(this._suiteId);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Gets the KEM context of the ciphersuite.
|
|
164
|
+
*/
|
|
165
|
+
get kem() {
|
|
166
|
+
return this._kem;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Gets the KDF context of the ciphersuite.
|
|
170
|
+
*/
|
|
171
|
+
get kdf() {
|
|
172
|
+
return this._kdf;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Gets the AEAD context of the ciphersuite.
|
|
176
|
+
*/
|
|
177
|
+
get aead() {
|
|
178
|
+
return this._aead;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Creates an encryption context for a sender.
|
|
182
|
+
*
|
|
183
|
+
* If the error occurred, throws {@link DecapError} | {@link ValidationError}.
|
|
184
|
+
*
|
|
185
|
+
* @param params A set of parameters for the sender encryption context.
|
|
186
|
+
* @returns A sender encryption context.
|
|
187
|
+
* @throws {@link EncapError}, {@link ValidationError}
|
|
188
|
+
*/
|
|
189
|
+
async createSenderContext(params) {
|
|
190
|
+
this._validateInputLength(params);
|
|
191
|
+
await this._setup();
|
|
192
|
+
const dh = await this._kem.encap(params);
|
|
193
|
+
let mode;
|
|
194
|
+
if (params.psk !== undefined) {
|
|
195
|
+
mode = params.senderKey !== undefined ? common_1.Mode.AuthPsk : common_1.Mode.Psk;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
mode = params.senderKey !== undefined ? common_1.Mode.Auth : common_1.Mode.Base;
|
|
199
|
+
}
|
|
200
|
+
return await this._keyScheduleS(mode, dh.sharedSecret, dh.enc, params);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Creates an encryption context for a recipient.
|
|
204
|
+
*
|
|
205
|
+
* If the error occurred, throws {@link DecapError}
|
|
206
|
+
* | {@link DeserializeError} | {@link ValidationError}.
|
|
207
|
+
*
|
|
208
|
+
* @param params A set of parameters for the recipient encryption context.
|
|
209
|
+
* @returns A recipient encryption context.
|
|
210
|
+
* @throws {@link DecapError}, {@link DeserializeError}, {@link ValidationError}
|
|
211
|
+
*/
|
|
212
|
+
async createRecipientContext(params) {
|
|
213
|
+
this._validateInputLength(params);
|
|
214
|
+
await this._setup();
|
|
215
|
+
const sharedSecret = await this._kem.decap(params);
|
|
216
|
+
let mode;
|
|
217
|
+
if (params.psk !== undefined) {
|
|
218
|
+
mode = params.senderPublicKey !== undefined ? common_1.Mode.AuthPsk : common_1.Mode.Psk;
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
mode = params.senderPublicKey !== undefined ? common_1.Mode.Auth : common_1.Mode.Base;
|
|
222
|
+
}
|
|
223
|
+
return await this._keyScheduleR(mode, sharedSecret, params);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Encrypts a message to a recipient.
|
|
227
|
+
*
|
|
228
|
+
* If the error occurred, throws `EncapError` | `MessageLimitReachedError` | `SealError` | `ValidationError`.
|
|
229
|
+
*
|
|
230
|
+
* @param params A set of parameters for building a sender encryption context.
|
|
231
|
+
* @param pt A plain text as bytes to be encrypted.
|
|
232
|
+
* @param aad Additional authenticated data as bytes fed by an application.
|
|
233
|
+
* @returns A cipher text and an encapsulated key as bytes.
|
|
234
|
+
* @throws {@link EncapError}, {@link MessageLimitReachedError}, {@link SealError}, {@link ValidationError}
|
|
235
|
+
*/
|
|
236
|
+
async seal(params, pt, aad = common_1.EMPTY.buffer) {
|
|
237
|
+
const ctx = await this.createSenderContext(params);
|
|
238
|
+
return {
|
|
239
|
+
ct: await ctx.seal(pt, aad),
|
|
240
|
+
enc: ctx.enc,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Decrypts a message from a sender.
|
|
245
|
+
*
|
|
246
|
+
* If the error occurred, throws `DecapError` | `DeserializeError` | `OpenError` | `ValidationError`.
|
|
247
|
+
*
|
|
248
|
+
* @param params A set of parameters for building a recipient encryption context.
|
|
249
|
+
* @param ct An encrypted text as bytes to be decrypted.
|
|
250
|
+
* @param aad Additional authenticated data as bytes fed by an application.
|
|
251
|
+
* @returns A decrypted plain text as bytes.
|
|
252
|
+
* @throws {@link DecapError}, {@link DeserializeError}, {@link OpenError}, {@link ValidationError}
|
|
253
|
+
*/
|
|
254
|
+
async open(params, ct, aad = common_1.EMPTY.buffer) {
|
|
255
|
+
const ctx = await this.createRecipientContext(params);
|
|
256
|
+
return await ctx.open(ct, aad);
|
|
257
|
+
}
|
|
258
|
+
// private verifyPskInputs(mode: Mode, params: KeyScheduleParams) {
|
|
259
|
+
// const gotPsk = (params.psk !== undefined);
|
|
260
|
+
// const gotPskId = (params.psk !== undefined && params.psk.id.byteLength > 0);
|
|
261
|
+
// if (gotPsk !== gotPskId) {
|
|
262
|
+
// throw new Error('Inconsistent PSK inputs');
|
|
263
|
+
// }
|
|
264
|
+
// if (gotPsk && (mode === Mode.Base || mode === Mode.Auth)) {
|
|
265
|
+
// throw new Error('PSK input provided when not needed');
|
|
266
|
+
// }
|
|
267
|
+
// if (!gotPsk && (mode === Mode.Psk || mode === Mode.AuthPsk)) {
|
|
268
|
+
// throw new Error('Missing required PSK input');
|
|
269
|
+
// }
|
|
270
|
+
// return;
|
|
271
|
+
// }
|
|
272
|
+
async _keySchedule(mode, sharedSecret, params) {
|
|
273
|
+
// Currently, there is no point in executing this function
|
|
274
|
+
// because this hpke library does not allow users to explicitly specify the mode.
|
|
275
|
+
//
|
|
276
|
+
// this.verifyPskInputs(mode, params);
|
|
277
|
+
const pskId = params.psk === undefined
|
|
278
|
+
? common_1.EMPTY
|
|
279
|
+
: (0, common_1.toUint8Array)(params.psk.id);
|
|
280
|
+
const pskIdHash = await this._kdf.labeledExtract(common_1.EMPTY, LABEL_PSK_ID_HASH, pskId);
|
|
281
|
+
const info = params.info === undefined ? common_1.EMPTY : (0, common_1.toUint8Array)(params.info);
|
|
282
|
+
const infoHash = await this._kdf.labeledExtract(common_1.EMPTY, LABEL_INFO_HASH, info);
|
|
283
|
+
const keyScheduleContext = new Uint8Array(1 + pskIdHash.byteLength + infoHash.byteLength);
|
|
284
|
+
keyScheduleContext.set(new Uint8Array([mode]), 0);
|
|
285
|
+
keyScheduleContext.set(new Uint8Array(pskIdHash), 1);
|
|
286
|
+
keyScheduleContext.set(new Uint8Array(infoHash), 1 + pskIdHash.byteLength);
|
|
287
|
+
const psk = params.psk === undefined ? common_1.EMPTY : (0, common_1.toUint8Array)(params.psk.key);
|
|
288
|
+
const ikm = this._kdf.buildLabeledIkm(LABEL_SECRET, psk);
|
|
289
|
+
const exporterSecretInfo = this._kdf.buildLabeledInfo(LABEL_EXP, keyScheduleContext, this._kdf.hashSize);
|
|
290
|
+
const exporterSecret = await this._kdf.extractAndExpand(sharedSecret, ikm, exporterSecretInfo, this._kdf.hashSize);
|
|
291
|
+
if (this._aead.id === common_1.AeadId.ExportOnly) {
|
|
292
|
+
return { aead: this._aead, exporterSecret: exporterSecret };
|
|
293
|
+
}
|
|
294
|
+
const keyInfo = this._kdf.buildLabeledInfo(LABEL_KEY, keyScheduleContext, this._aead.keySize);
|
|
295
|
+
const key = await this._kdf.extractAndExpand(sharedSecret, ikm, keyInfo, this._aead.keySize);
|
|
296
|
+
const baseNonceInfo = this._kdf.buildLabeledInfo(LABEL_BASE_NONCE, keyScheduleContext, this._aead.nonceSize);
|
|
297
|
+
const baseNonce = await this._kdf.extractAndExpand(sharedSecret, ikm, baseNonceInfo, this._aead.nonceSize);
|
|
298
|
+
return {
|
|
299
|
+
aead: this._aead,
|
|
300
|
+
exporterSecret: exporterSecret,
|
|
301
|
+
key: key,
|
|
302
|
+
baseNonce: new Uint8Array(baseNonce),
|
|
303
|
+
seq: 0,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
async _keyScheduleS(mode, sharedSecret, enc, params) {
|
|
307
|
+
const res = await this._keySchedule(mode, sharedSecret, params);
|
|
308
|
+
if (res.key === undefined) {
|
|
309
|
+
return new exporterContext_js_1.SenderExporterContextImpl(this._api, this._kdf, res.exporterSecret, enc);
|
|
310
|
+
}
|
|
311
|
+
return new senderContext_js_1.SenderContextImpl(this._api, this._kdf, res, enc);
|
|
312
|
+
}
|
|
313
|
+
async _keyScheduleR(mode, sharedSecret, params) {
|
|
314
|
+
const res = await this._keySchedule(mode, sharedSecret, params);
|
|
315
|
+
if (res.key === undefined) {
|
|
316
|
+
return new exporterContext_js_1.RecipientExporterContextImpl(this._api, this._kdf, res.exporterSecret);
|
|
317
|
+
}
|
|
318
|
+
return new recipientContext_js_1.RecipientContextImpl(this._api, this._kdf, res);
|
|
319
|
+
}
|
|
320
|
+
_validateInputLength(params) {
|
|
321
|
+
if (params.info !== undefined &&
|
|
322
|
+
params.info.byteLength > common_1.INFO_LENGTH_LIMIT) {
|
|
323
|
+
throw new common_1.InvalidParamError("Too long info");
|
|
324
|
+
}
|
|
325
|
+
if (params.psk !== undefined) {
|
|
326
|
+
if (params.psk.key.byteLength < common_1.MINIMUM_PSK_LENGTH) {
|
|
327
|
+
throw new common_1.InvalidParamError(`PSK must have at least ${common_1.MINIMUM_PSK_LENGTH} bytes`);
|
|
328
|
+
}
|
|
329
|
+
if (params.psk.key.byteLength > common_1.INPUT_LENGTH_LIMIT) {
|
|
330
|
+
throw new common_1.InvalidParamError("Too long psk.key");
|
|
331
|
+
}
|
|
332
|
+
if (params.psk.id.byteLength > common_1.INPUT_LENGTH_LIMIT) {
|
|
333
|
+
throw new common_1.InvalidParamError("Too long psk.id");
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
exports.CipherSuiteNative = CipherSuiteNative;
|
|
340
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AeadInterface, KdfInterface } from "@hpke/common";
|
|
2
|
+
import type { AeadParams } from "./interfaces/aeadParams.js";
|
|
3
|
+
import type { KeyInfo } from "./interfaces/keyInfo.js";
|
|
4
|
+
import { ExporterContextImpl } from "./exporterContext.js";
|
|
5
|
+
export declare class EncryptionContextImpl extends ExporterContextImpl {
|
|
6
|
+
protected _aead: AeadInterface;
|
|
7
|
+
protected _nK: number;
|
|
8
|
+
protected _nN: number;
|
|
9
|
+
protected _nT: number;
|
|
10
|
+
protected _ctx: KeyInfo;
|
|
11
|
+
constructor(api: SubtleCrypto, kdf: KdfInterface, params: AeadParams);
|
|
12
|
+
protected computeNonce(k: KeyInfo): ArrayBuffer;
|
|
13
|
+
protected incrementSeq(k: KeyInfo): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=encryptionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionContext.d.ts","sourceRoot":"","sources":["../../src/src/encryptionContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,qBAAa,qBAAsB,SAAQ,mBAAmB;IAE5D,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAEtB,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;gBAEZ,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU;IAsBpE,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW;IAK/C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO;CAQlC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "@hpke/common", "./exporterContext.js"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EncryptionContextImpl = void 0;
|
|
13
|
+
const common_1 = require("@hpke/common");
|
|
14
|
+
const exporterContext_js_1 = require("./exporterContext.js");
|
|
15
|
+
class EncryptionContextImpl extends exporterContext_js_1.ExporterContextImpl {
|
|
16
|
+
constructor(api, kdf, params) {
|
|
17
|
+
super(api, kdf, params.exporterSecret);
|
|
18
|
+
// AEAD id.
|
|
19
|
+
Object.defineProperty(this, "_aead", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: void 0
|
|
24
|
+
});
|
|
25
|
+
// The length in bytes of a key for the algorithm.
|
|
26
|
+
Object.defineProperty(this, "_nK", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true,
|
|
30
|
+
value: void 0
|
|
31
|
+
});
|
|
32
|
+
// The length in bytes of a nonce for the algorithm.
|
|
33
|
+
Object.defineProperty(this, "_nN", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
// The length in bytes of an authentication tag for the algorithm.
|
|
40
|
+
Object.defineProperty(this, "_nT", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: void 0
|
|
45
|
+
});
|
|
46
|
+
// The end-to-end encryption key information.
|
|
47
|
+
Object.defineProperty(this, "_ctx", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: void 0
|
|
52
|
+
});
|
|
53
|
+
if (params.key === undefined || params.baseNonce === undefined ||
|
|
54
|
+
params.seq === undefined) {
|
|
55
|
+
throw new Error("Required parameters are missing");
|
|
56
|
+
}
|
|
57
|
+
this._aead = params.aead;
|
|
58
|
+
this._nK = this._aead.keySize;
|
|
59
|
+
this._nN = this._aead.nonceSize;
|
|
60
|
+
this._nT = this._aead.tagSize;
|
|
61
|
+
const key = this._aead.createEncryptionContext(params.key);
|
|
62
|
+
this._ctx = {
|
|
63
|
+
key: key,
|
|
64
|
+
baseNonce: params.baseNonce,
|
|
65
|
+
seq: params.seq,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
computeNonce(k) {
|
|
69
|
+
const seqBytes = (0, common_1.i2Osp)(k.seq, k.baseNonce.byteLength);
|
|
70
|
+
return (0, common_1.xor)(k.baseNonce, seqBytes).buffer;
|
|
71
|
+
}
|
|
72
|
+
incrementSeq(k) {
|
|
73
|
+
// if (this.seq >= (1 << (8 * this.baseNonce.byteLength)) - 1) {
|
|
74
|
+
if (k.seq > Number.MAX_SAFE_INTEGER) {
|
|
75
|
+
throw new common_1.MessageLimitReachedError("Message limit reached");
|
|
76
|
+
}
|
|
77
|
+
k.seq += 1;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.EncryptionContextImpl = EncryptionContextImpl;
|
|
82
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { KdfInterface } from "@hpke/common";
|
|
2
|
+
import type { Encapsulator } from "./interfaces/encapsulator.js";
|
|
3
|
+
import type { EncryptionContext } from "./interfaces/encryptionContext.js";
|
|
4
|
+
export declare class ExporterContextImpl implements EncryptionContext {
|
|
5
|
+
protected _api: SubtleCrypto;
|
|
6
|
+
protected readonly exporterSecret: ArrayBuffer;
|
|
7
|
+
private _kdf;
|
|
8
|
+
constructor(api: SubtleCrypto, kdf: KdfInterface, exporterSecret: ArrayBuffer);
|
|
9
|
+
seal(_data: ArrayBufferLike | ArrayBufferView, _aad: ArrayBufferLike | ArrayBufferView): Promise<ArrayBuffer>;
|
|
10
|
+
open(_data: ArrayBufferLike | ArrayBufferView, _aad: ArrayBufferLike | ArrayBufferView): Promise<ArrayBuffer>;
|
|
11
|
+
export(exporterContext: ArrayBufferLike | ArrayBufferView, len: number): Promise<ArrayBuffer>;
|
|
12
|
+
}
|
|
13
|
+
export declare class RecipientExporterContextImpl extends ExporterContextImpl {
|
|
14
|
+
}
|
|
15
|
+
export declare class SenderExporterContextImpl extends ExporterContextImpl implements Encapsulator {
|
|
16
|
+
readonly enc: ArrayBuffer;
|
|
17
|
+
constructor(api: SubtleCrypto, kdf: KdfInterface, exporterSecret: ArrayBuffer, enc: ArrayBuffer);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=exporterContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporterContext.d.ts","sourceRoot":"","sources":["../../src/src/exporterContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAO3E,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAe;gBAGzB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,YAAY,EACjB,cAAc,EAAE,WAAW;IAOhB,IAAI,CACf,KAAK,EAAE,eAAe,GAAG,eAAe,EACxC,IAAI,EAAE,eAAe,GAAG,eAAe,GACtC,OAAO,CAAC,WAAW,CAAC;IAIV,IAAI,CACf,KAAK,EAAE,eAAe,GAAG,eAAe,EACxC,IAAI,EAAE,eAAe,GAAG,eAAe,GACtC,OAAO,CAAC,WAAW,CAAC;IAIV,MAAM,CACjB,eAAe,EAAE,eAAe,GAAG,eAAe,EAClD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC;CAgBxB;AAED,qBAAa,4BAA6B,SAAQ,mBAAmB;CAAG;AAExE,qBAAa,yBAA0B,SAAQ,mBAC7C,YAAW,YAAY;IACvB,SAAgB,GAAG,EAAE,WAAW,CAAC;gBAG/B,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,YAAY,EACjB,cAAc,EAAE,WAAW,EAC3B,GAAG,EAAE,WAAW;CAMnB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "@hpke/common", "./utils/emitNotSupported.js"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SenderExporterContextImpl = exports.RecipientExporterContextImpl = exports.ExporterContextImpl = void 0;
|
|
13
|
+
const common_1 = require("@hpke/common");
|
|
14
|
+
const emitNotSupported_js_1 = require("./utils/emitNotSupported.js");
|
|
15
|
+
// b"sec"
|
|
16
|
+
const LABEL_SEC = new Uint8Array([115, 101, 99]);
|
|
17
|
+
class ExporterContextImpl {
|
|
18
|
+
constructor(api, kdf, exporterSecret) {
|
|
19
|
+
Object.defineProperty(this, "_api", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
value: void 0
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(this, "exporterSecret", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, "_kdf", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: void 0
|
|
36
|
+
});
|
|
37
|
+
this._api = api;
|
|
38
|
+
this._kdf = kdf;
|
|
39
|
+
this.exporterSecret = exporterSecret;
|
|
40
|
+
}
|
|
41
|
+
async seal(_data, _aad) {
|
|
42
|
+
return await (0, emitNotSupported_js_1.emitNotSupported)();
|
|
43
|
+
}
|
|
44
|
+
async open(_data, _aad) {
|
|
45
|
+
return await (0, emitNotSupported_js_1.emitNotSupported)();
|
|
46
|
+
}
|
|
47
|
+
async export(exporterContext, len) {
|
|
48
|
+
const rawExporterContext = (0, common_1.toArrayBuffer)(exporterContext);
|
|
49
|
+
if (rawExporterContext.byteLength > common_1.INPUT_LENGTH_LIMIT) {
|
|
50
|
+
throw new common_1.InvalidParamError("Too long exporter context");
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return await this._kdf.labeledExpand(this.exporterSecret, LABEL_SEC, new Uint8Array(rawExporterContext), len);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
throw new common_1.ExportError(e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.ExporterContextImpl = ExporterContextImpl;
|
|
61
|
+
class RecipientExporterContextImpl extends ExporterContextImpl {
|
|
62
|
+
}
|
|
63
|
+
exports.RecipientExporterContextImpl = RecipientExporterContextImpl;
|
|
64
|
+
class SenderExporterContextImpl extends ExporterContextImpl {
|
|
65
|
+
constructor(api, kdf, exporterSecret, enc) {
|
|
66
|
+
super(api, kdf, exporterSecret);
|
|
67
|
+
Object.defineProperty(this, "enc", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
configurable: true,
|
|
70
|
+
writable: true,
|
|
71
|
+
value: void 0
|
|
72
|
+
});
|
|
73
|
+
this.enc = enc;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SenderExporterContextImpl = SenderExporterContextImpl;
|
|
78
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AeadInterface } from "@hpke/common";
|
|
2
|
+
/**
|
|
3
|
+
* The AEAD parameters for building a encryption context.
|
|
4
|
+
*/
|
|
5
|
+
export interface AeadParams {
|
|
6
|
+
/** The Aead indentifier. */
|
|
7
|
+
aead: AeadInterface;
|
|
8
|
+
/** A secret used for the secret export interface. */
|
|
9
|
+
exporterSecret: ArrayBuffer;
|
|
10
|
+
/** A secret key. */
|
|
11
|
+
key?: ArrayBuffer;
|
|
12
|
+
/** A base nonce. */
|
|
13
|
+
baseNonce?: Uint8Array;
|
|
14
|
+
/** A sequence number. */
|
|
15
|
+
seq?: number;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=aeadParams.d.ts.map
|
package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/aeadParams.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aeadParams.d.ts","sourceRoot":"","sources":["../../../src/src/interfaces/aeadParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,IAAI,EAAE,aAAa,CAAC;IAEpB,qDAAqD;IACrD,cAAc,EAAE,WAAW,CAAC;IAE5B,oBAAoB;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAElB,oBAAoB;IACpB,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
});
|
package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AeadId, AeadInterface, KdfId, KdfInterface, KemId, KemInterface } from "@hpke/common";
|
|
2
|
+
/**
|
|
3
|
+
* The parameters used to configure the `CipherSuite`.
|
|
4
|
+
*/
|
|
5
|
+
export interface CipherSuiteParams {
|
|
6
|
+
/** The KEM (Key Encapsulation Mechanism) identifier or the KEM object. */
|
|
7
|
+
kem: KemId | KemInterface;
|
|
8
|
+
/** The KDF (Key Derivation Function) identifier or the KDF object. */
|
|
9
|
+
kdf: KdfId | KdfInterface;
|
|
10
|
+
/** The AEAD (Authenticated Encryption with Addtional Data) identifier or the AEAD object. */
|
|
11
|
+
aead: AeadId | AeadInterface;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cipherSuiteParams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cipherSuiteParams.d.ts","sourceRoot":"","sources":["../../../src/src/interfaces/cipherSuiteParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,KAAK,EACL,YAAY,EACZ,KAAK,EACL,YAAY,EACb,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,GAAG,EAAE,KAAK,GAAG,YAAY,CAAC;IAE1B,sEAAsE;IACtE,GAAG,EAAE,KAAK,GAAG,YAAY,CAAC;IAE1B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B"}
|
package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/cipherSuiteParams.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
});
|
package/node_modules/@hap/core/node_modules/@hpke/core/script/src/interfaces/encapsulator.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encapsulator.d.ts","sourceRoot":"","sources":["../../../src/src/interfaces/encapsulator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,GAAG,EAAE,WAAW,CAAC;CAClB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
});
|