ts-mls 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,10 +44,10 @@ The following cipher suites are supported:
44
44
  | ------------------------ | ---------------- | ----------- | ------- | --------- | --------------------------------------------------- | --- | ------------------------------------------------------------------- |
45
45
  | DHKEM-X25519-HKDF-SHA256 | AES128GCM | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 | 1 | |
46
46
  | DHKEM-P256-HKDF-SHA256 | AES128GCM | HKDF-SHA256 | SHA-256 | P256 | MLS_128_DHKEMP256_AES128GCM_SHA256_P256 | 2 | @noble/curves |
47
- | DHKEM-X25519-HKDF-SHA256 | CHACHA20POLY1305 | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519 | 3 | @hpke/chacha20poly1305, @noble/curves |
48
- | DHKEM-X448-HKDF-SHA512 | AES256GCM | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448 | 4 | @noble/curves |
47
+ | DHKEM-X25519-HKDF-SHA256 | CHACHA20POLY1305 | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519 | 3 | @hpke/chacha20poly1305 |
48
+ | DHKEM-X448-HKDF-SHA512 | AES256GCM | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448 | 4 | @noble/curves, @hpke/dhkem-x448 |
49
49
  | DHKEM-P521-HKDF-SHA512 | AES256GCM | HKDF-SHA512 | SHA-512 | P521 | MLS_256_DHKEMP521_AES256GCM_SHA512_P521 | 5 | @noble/curves |
50
- | DHKEM-X448-HKDF-SHA512 | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448 | 6 | @hpke/chacha20poly1305, @noble/curves |
50
+ | DHKEM-X448-HKDF-SHA512 | CHACHA20POLY1305 | HKDF-SHA512 | SHA-512 | Ed448 | MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448 | 6 | @hpke/chacha20poly1305, @noble/curves, @hpke/dhkem-x448 |
51
51
  | DHKEM-P384-HKDF-SHA384 | AES256GCM | HKDF-SHA384 | SHA-384 | P384 | MLS_256_DHKEMP384_AES256GCM_SHA384_P384 | 7 | @noble/curves |
52
52
  | ML-KEM-512 | AES256GCM | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_MLKEM512_AES128GCM_SHA256_Ed25519 | 77 | @hpke/ml-kem |
53
53
  | ML-KEM-512 | CHACHA20POLY1305 | HKDF-SHA256 | SHA-256 | Ed25519 | MLS_128_MLKEM512_CHACHA20POLY1305_SHA256_Ed25519 | 78 | @hpke/ml-kem, @hpke/chacha20poly1305 |
@@ -50,20 +50,26 @@ export async function makeAead(aeadAlg) {
50
50
  }
51
51
  async function encryptAesGcm(key, nonce, aad, plaintext) {
52
52
  const cryptoKey = await crypto.subtle.importKey("raw", toBufferSource(key), { name: "AES-GCM" }, false, ["encrypt"]);
53
- const result = await crypto.subtle.encrypt({
53
+ const params = {
54
54
  name: "AES-GCM",
55
55
  iv: toBufferSource(nonce),
56
- additionalData: aad.length > 0 ? toBufferSource(aad) : undefined,
57
- }, cryptoKey, toBufferSource(plaintext));
56
+ };
57
+ if (aad.length > 0) {
58
+ params.additionalData = toBufferSource(aad);
59
+ }
60
+ const result = await crypto.subtle.encrypt(params, cryptoKey, toBufferSource(plaintext));
58
61
  return new Uint8Array(result);
59
62
  }
60
63
  async function decryptAesGcm(key, nonce, aad, ciphertext) {
61
64
  const cryptoKey = await crypto.subtle.importKey("raw", toBufferSource(key), { name: "AES-GCM" }, false, ["decrypt"]);
62
- const result = await crypto.subtle.decrypt({
65
+ const params = {
63
66
  name: "AES-GCM",
64
67
  iv: toBufferSource(nonce),
65
- additionalData: aad.length > 0 ? toBufferSource(aad) : undefined,
66
- }, cryptoKey, toBufferSource(ciphertext));
68
+ };
69
+ if (aad.length > 0) {
70
+ params.additionalData = toBufferSource(aad);
71
+ }
72
+ const result = await crypto.subtle.decrypt(params, cryptoKey, toBufferSource(ciphertext));
67
73
  return new Uint8Array(result);
68
74
  }
69
75
  //# sourceMappingURL=makeAead.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAead.js","sourceRoot":"","sources":["../../../../../src/crypto/implementation/default/makeAead.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makeAead.js","sourceRoot":"","sources":["../../../../../src/crypto/implementation/default/makeAead.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DhkemP256HkdfSha256, DhkemX25519HkdfSha256, DhkemX448HkdfSha512, DhkemP521HkdfSha512, DhkemP384HkdfSha384, } from "@hpke/core";
1
+ import { DhkemP256HkdfSha256, DhkemX25519HkdfSha256, DhkemP521HkdfSha512, DhkemP384HkdfSha384, } from "@hpke/core";
2
2
  import { DependencyError } from "../../../mlsError.js";
3
3
  export async function makeDhKem(kemAlg) {
4
4
  switch (kemAlg) {
@@ -6,8 +6,15 @@ export async function makeDhKem(kemAlg) {
6
6
  return new DhkemP256HkdfSha256();
7
7
  case "DHKEM-X25519-HKDF-SHA256":
8
8
  return new DhkemX25519HkdfSha256();
9
- case "DHKEM-X448-HKDF-SHA512":
10
- return new DhkemX448HkdfSha512();
9
+ case "DHKEM-X448-HKDF-SHA512": {
10
+ try {
11
+ const { DhkemX448HkdfSha512 } = await import("@hpke/dhkem-x448");
12
+ return new DhkemX448HkdfSha512();
13
+ }
14
+ catch (err) {
15
+ throw new DependencyError("Optional dependency '@hpke/dhkem-x448' is not installed. Please install it to use this feature.");
16
+ }
17
+ }
11
18
  case "DHKEM-P521-HKDF-SHA512":
12
19
  return new DhkemP521HkdfSha512();
13
20
  case "DHKEM-P384-HKDF-SHA384":
@@ -1 +1 @@
1
- {"version":3,"file":"makeDhKem.js","sourceRoot":"","sources":["../../../../../src/crypto/implementation/default/makeDhKem.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,0BAA0B;YAC7B,OAAO,IAAI,qBAAqB,EAAE,CAAA;QACpC,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,YAAY;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBACjD,OAAO,IAAI,QAAQ,EAAE,CAAA;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QAEH,KAAK,YAAY;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBACjD,OAAO,IAAI,QAAQ,EAAE,CAAA;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QACH,KAAK,aAAa;YAChB,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBAClD,OAAO,IAAI,SAAS,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QACH,KAAK,QAAQ;YACX,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAA;gBACxD,OAAO,IAAI,KAAK,EAAE,CAAA;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,uGAAuG,CACxG,CAAA;YACH,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"makeDhKem.js","sourceRoot":"","sources":["../../../../../src/crypto/implementation/default/makeDhKem.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,0BAA0B;YAC7B,OAAO,IAAI,qBAAqB,EAAE,CAAA;QACpC,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBAChE,OAAO,IAAI,mBAAmB,EAAE,CAAA;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,iGAAiG,CAClG,CAAA;YACH,CAAC;QACH,CAAC;QACD,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,wBAAwB;YAC3B,OAAO,IAAI,mBAAmB,EAAE,CAAA;QAClC,KAAK,YAAY;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBACjD,OAAO,IAAI,QAAQ,EAAE,CAAA;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QAEH,KAAK,YAAY;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBACjD,OAAO,IAAI,QAAQ,EAAE,CAAA;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QACH,KAAK,aAAa;YAChB,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;gBAClD,OAAO,IAAI,SAAS,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,6FAA6F,CAC9F,CAAA;YACH,CAAC;QACH,KAAK,QAAQ;YACX,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAA;gBACxD,OAAO,IAAI,KAAK,EAAE,CAAA;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,eAAe,CACvB,uGAAuG,CACxG,CAAA;YACH,CAAC;IACL,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-mls",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/LukaJCB/ts-mls#readme",
6
6
  "bugs": {
@@ -24,11 +24,12 @@
24
24
  "dist/src/"
25
25
  ],
26
26
  "dependencies": {
27
- "@hpke/core": "1.7.5"
27
+ "@hpke/core": "1.8.0"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "@hpke/chacha20poly1305": "1.7.1",
31
31
  "@hpke/hybridkem-x-wing": "0.6.1",
32
+ "@hpke/dhkem-x448": "1.7.0",
32
33
  "@hpke/ml-kem": "0.2.1",
33
34
  "@noble/ciphers": "2.1.1",
34
35
  "@noble/curves": "2.0.1",
@@ -44,6 +45,9 @@
44
45
  "@hpke/ml-kem": {
45
46
  "optional": true
46
47
  },
48
+ "@hpke/dhkem-x448": {
49
+ "optional": true
50
+ },
47
51
  "@noble/curves": {
48
52
  "optional": true
49
53
  },
@@ -57,23 +61,26 @@
57
61
  "@hpke/chacha20poly1305": "1.7.1",
58
62
  "@hpke/hybridkem-x-wing": "0.6.1",
59
63
  "@hpke/ml-kem": "0.2.1",
64
+ "@hpke/dhkem-x448": "1.7.0",
60
65
  "@noble/ciphers": "2.1.1",
61
66
  "@noble/curves": "2.0.1",
62
67
  "@noble/hashes": "2.0.1",
63
68
  "@noble/post-quantum": "0.5.4",
64
69
  "@types/jest": "30.0.0",
65
70
  "@types/node": "^25.0.6",
66
- "@vitest/coverage-v8": "4.0.16",
71
+ "@vitest/browser-playwright": "4.0.17",
72
+ "@vitest/coverage-v8": "4.0.17",
67
73
  "eslint": "9.39.2",
68
74
  "eslint-plugin-import": "2.32.0",
69
75
  "madge": "8.0.0",
70
- "prettier": "3.7.4",
76
+ "playwright": "^1.52.0",
77
+ "prettier": "3.8.1",
71
78
  "tinybench": "6.0.0",
72
79
  "tsx": "4.21.0",
73
80
  "typescript": "5.9.3",
74
- "typescript-docs-verifier": "3.0.1",
75
- "typescript-eslint": "8.53.0",
76
- "vitest": "4.0.16"
81
+ "typescript-docs-verifier": "3.0.2",
82
+ "typescript-eslint": "8.56.1",
83
+ "vitest": "4.0.17"
77
84
  },
78
85
  "repository": {
79
86
  "type": "git",
@@ -115,6 +122,8 @@
115
122
  "typecheck": "tsc",
116
123
  "benchmark": "tsx bench/index.ts",
117
124
  "test": "vitest run",
125
+ "test:browser": "vitest run --config vitest.browser.config.ts",
126
+ "playwright:install": "playwright install",
118
127
  "coverage": "vitest run --coverage",
119
128
  "lint": "eslint src/ test/",
120
129
  "format": "prettier -w .",