ts-mls 1.4.0 → 1.4.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.
Files changed (159) hide show
  1. package/dist/authenticatedContent.d.ts +3 -1
  2. package/dist/authenticatedContent.js +10 -8
  3. package/dist/authenticatedContent.js.map +1 -1
  4. package/dist/capabilities.d.ts +2 -1
  5. package/dist/capabilities.js +13 -12
  6. package/dist/capabilities.js.map +1 -1
  7. package/dist/clientState.d.ts +4 -3
  8. package/dist/clientState.js +87 -59
  9. package/dist/clientState.js.map +1 -1
  10. package/dist/codec/number.d.ts +5 -1
  11. package/dist/codec/number.js +33 -24
  12. package/dist/codec/number.js.map +1 -1
  13. package/dist/codec/optional.d.ts +2 -2
  14. package/dist/codec/optional.js +24 -7
  15. package/dist/codec/optional.js.map +1 -1
  16. package/dist/codec/tlsEncoder.d.ts +11 -8
  17. package/dist/codec/tlsEncoder.js +39 -21
  18. package/dist/codec/tlsEncoder.js.map +1 -1
  19. package/dist/codec/variableLength.d.ts +4 -4
  20. package/dist/codec/variableLength.js +58 -28
  21. package/dist/codec/variableLength.js.map +1 -1
  22. package/dist/commit.d.ts +2 -1
  23. package/dist/commit.js +7 -6
  24. package/dist/commit.js.map +1 -1
  25. package/dist/contentType.d.ts +2 -1
  26. package/dist/contentType.js +4 -3
  27. package/dist/contentType.js.map +1 -1
  28. package/dist/createCommit.js +6 -5
  29. package/dist/createCommit.js.map +1 -1
  30. package/dist/credential.d.ts +5 -1
  31. package/dist/credential.js +14 -10
  32. package/dist/credential.js.map +1 -1
  33. package/dist/credentialType.d.ts +2 -1
  34. package/dist/credentialType.js +4 -3
  35. package/dist/credentialType.js.map +1 -1
  36. package/dist/crypto/ciphersuite.d.ts +2 -1
  37. package/dist/crypto/ciphersuite.js +4 -3
  38. package/dist/crypto/ciphersuite.js.map +1 -1
  39. package/dist/crypto/hash.js +4 -3
  40. package/dist/crypto/hash.js.map +1 -1
  41. package/dist/crypto/hpke.js +10 -4
  42. package/dist/crypto/hpke.js.map +1 -1
  43. package/dist/crypto/implementation/default/makeAead.js +9 -9
  44. package/dist/crypto/implementation/default/makeAead.js.map +1 -1
  45. package/dist/crypto/implementation/default/makeHashImpl.js +5 -5
  46. package/dist/crypto/implementation/default/makeHashImpl.js.map +1 -1
  47. package/dist/crypto/implementation/default/makeKdfImpl.js +3 -3
  48. package/dist/crypto/implementation/default/makeKdfImpl.js.map +1 -1
  49. package/dist/crypto/implementation/hpke.js +11 -11
  50. package/dist/crypto/implementation/hpke.js.map +1 -1
  51. package/dist/crypto/kdf.js +8 -7
  52. package/dist/crypto/kdf.js.map +1 -1
  53. package/dist/crypto/signature.js +10 -4
  54. package/dist/crypto/signature.js.map +1 -1
  55. package/dist/defaultExtensionType.d.ts +2 -1
  56. package/dist/defaultExtensionType.js +4 -3
  57. package/dist/defaultExtensionType.js.map +1 -1
  58. package/dist/defaultProposalType.d.ts +2 -1
  59. package/dist/defaultProposalType.js +4 -3
  60. package/dist/defaultProposalType.js.map +1 -1
  61. package/dist/extension.d.ts +3 -1
  62. package/dist/extension.js +8 -6
  63. package/dist/extension.js.map +1 -1
  64. package/dist/externalSender.d.ts +2 -1
  65. package/dist/externalSender.js +5 -4
  66. package/dist/externalSender.js.map +1 -1
  67. package/dist/framedContent.d.ts +9 -1
  68. package/dist/framedContent.js +35 -27
  69. package/dist/framedContent.js.map +1 -1
  70. package/dist/groupContext.d.ts +2 -1
  71. package/dist/groupContext.js +17 -16
  72. package/dist/groupContext.js.map +1 -1
  73. package/dist/groupInfo.d.ts +3 -1
  74. package/dist/groupInfo.js +11 -9
  75. package/dist/groupInfo.js.map +1 -1
  76. package/dist/groupSecrets.d.ts +2 -1
  77. package/dist/groupSecrets.js +6 -5
  78. package/dist/groupSecrets.js.map +1 -1
  79. package/dist/hpkeCiphertext.d.ts +2 -1
  80. package/dist/hpkeCiphertext.js +4 -3
  81. package/dist/hpkeCiphertext.js.map +1 -1
  82. package/dist/index.d.ts +1 -1
  83. package/dist/index.js +1 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/keyPackage.d.ts +12 -3
  86. package/dist/keyPackage.js +23 -18
  87. package/dist/keyPackage.js.map +1 -1
  88. package/dist/leafNode.d.ts +11 -1
  89. package/dist/leafNode.js +43 -27
  90. package/dist/leafNode.js.map +1 -1
  91. package/dist/leafNodeSource.d.ts +2 -1
  92. package/dist/leafNodeSource.js +4 -3
  93. package/dist/leafNodeSource.js.map +1 -1
  94. package/dist/lifetime.d.ts +2 -1
  95. package/dist/lifetime.js +4 -3
  96. package/dist/lifetime.js.map +1 -1
  97. package/dist/message.d.ts +9 -2
  98. package/dist/message.js +27 -20
  99. package/dist/message.js.map +1 -1
  100. package/dist/messageProtection.js +4 -3
  101. package/dist/messageProtection.js.map +1 -1
  102. package/dist/nodeType.d.ts +2 -1
  103. package/dist/nodeType.js +4 -3
  104. package/dist/nodeType.js.map +1 -1
  105. package/dist/parentHash.d.ts +2 -1
  106. package/dist/parentHash.js +5 -4
  107. package/dist/parentHash.js.map +1 -1
  108. package/dist/parentNode.d.ts +2 -1
  109. package/dist/parentNode.js +5 -4
  110. package/dist/parentNode.js.map +1 -1
  111. package/dist/presharedkey.d.ts +6 -1
  112. package/dist/presharedkey.js +16 -11
  113. package/dist/presharedkey.js.map +1 -1
  114. package/dist/privateMessage.d.ts +4 -1
  115. package/dist/privateMessage.js +29 -20
  116. package/dist/privateMessage.js.map +1 -1
  117. package/dist/processMessages.js +3 -2
  118. package/dist/processMessages.js.map +1 -1
  119. package/dist/proposal.d.ts +17 -1
  120. package/dist/proposal.js +50 -34
  121. package/dist/proposal.js.map +1 -1
  122. package/dist/proposalOrRefType.d.ts +5 -1
  123. package/dist/proposalOrRefType.js +14 -10
  124. package/dist/proposalOrRefType.js.map +1 -1
  125. package/dist/protocolVersion.d.ts +2 -1
  126. package/dist/protocolVersion.js +4 -3
  127. package/dist/protocolVersion.js.map +1 -1
  128. package/dist/publicMessage.d.ts +3 -1
  129. package/dist/publicMessage.js +9 -7
  130. package/dist/publicMessage.js.map +1 -1
  131. package/dist/ratchetTree.d.ts +3 -1
  132. package/dist/ratchetTree.js +13 -11
  133. package/dist/ratchetTree.js.map +1 -1
  134. package/dist/requiredCapabilities.d.ts +2 -1
  135. package/dist/requiredCapabilities.js +6 -5
  136. package/dist/requiredCapabilities.js.map +1 -1
  137. package/dist/sender.d.ts +6 -1
  138. package/dist/sender.js +24 -13
  139. package/dist/sender.js.map +1 -1
  140. package/dist/transcriptHash.d.ts +2 -1
  141. package/dist/transcriptHash.js +18 -8
  142. package/dist/transcriptHash.js.map +1 -1
  143. package/dist/treeHash.d.ts +4 -1
  144. package/dist/treeHash.js +17 -14
  145. package/dist/treeHash.js.map +1 -1
  146. package/dist/tsconfig.build.tsbuildinfo +1 -1
  147. package/dist/updatePath.d.ts +3 -1
  148. package/dist/updatePath.js +10 -8
  149. package/dist/updatePath.js.map +1 -1
  150. package/dist/util/byteArray.d.ts +2 -1
  151. package/dist/util/byteArray.js +21 -2
  152. package/dist/util/byteArray.js.map +1 -1
  153. package/dist/welcome.d.ts +3 -1
  154. package/dist/welcome.js +12 -10
  155. package/dist/welcome.js.map +1 -1
  156. package/dist/wireformat.d.ts +2 -1
  157. package/dist/wireformat.js +4 -3
  158. package/dist/wireformat.js.map +1 -1
  159. package/package.json +3 -3
@@ -1,19 +1,20 @@
1
1
  import { mapDecoders } from "./codec/tlsDecoder.js";
2
- import { contramapEncoders } from "./codec/tlsEncoder.js";
3
- import { decodeVarLenData, decodeVarLenType, encodeVarLenData, encodeVarLenType } from "./codec/variableLength.js";
4
- import { decodeCiphersuite, encodeCiphersuite } from "./crypto/ciphersuite.js";
2
+ import { contramapBufferEncoders, encode } from "./codec/tlsEncoder.js";
3
+ import { decodeVarLenData, decodeVarLenType, varLenDataEncoder, varLenTypeEncoder } from "./codec/variableLength.js";
4
+ import { ciphersuiteEncoder, decodeCiphersuite } from "./crypto/ciphersuite.js";
5
5
  import { refhash } from "./crypto/hash.js";
6
6
  import { signWithLabel, verifyWithLabel } from "./crypto/signature.js";
7
- import { decodeExtension, encodeExtension } from "./extension.js";
8
- import { decodeProtocolVersion, encodeProtocolVersion } from "./protocolVersion.js";
9
- import { decodeLeafNodeKeyPackage, encodeLeafNode, signLeafNodeKeyPackage, } from "./leafNode.js";
10
- export const encodeKeyPackageTBS = contramapEncoders([encodeProtocolVersion, encodeCiphersuite, encodeVarLenData, encodeLeafNode, encodeVarLenType(encodeExtension)], (keyPackageTBS) => [
7
+ import { decodeExtension, extensionEncoder } from "./extension.js";
8
+ import { decodeProtocolVersion, protocolVersionEncoder } from "./protocolVersion.js";
9
+ import { decodeLeafNodeKeyPackage, leafNodeEncoder, signLeafNodeKeyPackage, } from "./leafNode.js";
10
+ export const keyPackageTBSEncoder = contramapBufferEncoders([protocolVersionEncoder, ciphersuiteEncoder, varLenDataEncoder, leafNodeEncoder, varLenTypeEncoder(extensionEncoder)], (keyPackageTBS) => [
11
11
  keyPackageTBS.version,
12
12
  keyPackageTBS.cipherSuite,
13
13
  keyPackageTBS.initKey,
14
14
  keyPackageTBS.leafNode,
15
15
  keyPackageTBS.extensions,
16
16
  ]);
17
+ export const encodeKeyPackageTBS = encode(keyPackageTBSEncoder);
17
18
  export const decodeKeyPackageTBS = mapDecoders([
18
19
  decodeProtocolVersion,
19
20
  decodeCiphersuite,
@@ -27,35 +28,35 @@ export const decodeKeyPackageTBS = mapDecoders([
27
28
  leafNode,
28
29
  extensions,
29
30
  }));
30
- export const encodeKeyPackage = contramapEncoders([encodeKeyPackageTBS, encodeVarLenData], (keyPackage) => [keyPackage, keyPackage.signature]);
31
+ export const keyPackageEncoder = contramapBufferEncoders([keyPackageTBSEncoder, varLenDataEncoder], (keyPackage) => [keyPackage, keyPackage.signature]);
32
+ export const encodeKeyPackage = encode(keyPackageEncoder);
31
33
  export const decodeKeyPackage = mapDecoders([decodeKeyPackageTBS, decodeVarLenData], (keyPackageTBS, signature) => ({
32
34
  ...keyPackageTBS,
33
35
  signature,
34
36
  }));
35
37
  export async function signKeyPackage(tbs, signKey, s) {
36
- return { ...tbs, signature: await signWithLabel(signKey, "KeyPackageTBS", encodeKeyPackageTBS(tbs), s) };
38
+ return { ...tbs, signature: await signWithLabel(signKey, "KeyPackageTBS", encode(keyPackageTBSEncoder)(tbs), s) };
37
39
  }
38
40
  export async function verifyKeyPackage(kp, s) {
39
- return verifyWithLabel(kp.leafNode.signaturePublicKey, "KeyPackageTBS", encodeKeyPackageTBS(kp), kp.signature, s);
41
+ return verifyWithLabel(kp.leafNode.signaturePublicKey, "KeyPackageTBS", encode(keyPackageTBSEncoder)(kp), kp.signature, s);
40
42
  }
41
43
  export function makeKeyPackageRef(value, h) {
42
- return refhash("MLS 1.0 KeyPackage Reference", encodeKeyPackage(value), h);
44
+ return refhash("MLS 1.0 KeyPackage Reference", encode(keyPackageEncoder)(value), h);
43
45
  }
44
- export async function generateKeyPackage(credential, capabilities, lifetime, extensions, cs) {
45
- const sigKeys = await cs.signature.keygen();
46
+ export async function generateKeyPackageWithKey(credential, capabilities, lifetime, extensions, signatrueKeyPair, cs, leafNodeExtensions) {
46
47
  const initKeys = await cs.hpke.generateKeyPair();
47
48
  const hpkeKeys = await cs.hpke.generateKeyPair();
48
49
  const privatePackage = {
49
50
  initPrivateKey: await cs.hpke.exportPrivateKey(initKeys.privateKey),
50
51
  hpkePrivateKey: await cs.hpke.exportPrivateKey(hpkeKeys.privateKey),
51
- signaturePrivateKey: sigKeys.signKey,
52
+ signaturePrivateKey: signatrueKeyPair.signKey,
52
53
  };
53
54
  const leafNodeTbs = {
54
55
  leafNodeSource: "key_package",
55
56
  hpkePublicKey: await cs.hpke.exportPublicKey(hpkeKeys.publicKey),
56
- signaturePublicKey: sigKeys.publicKey,
57
+ signaturePublicKey: signatrueKeyPair.publicKey,
57
58
  info: { leafNodeSource: "key_package" },
58
- extensions,
59
+ extensions: leafNodeExtensions ?? [],
59
60
  credential,
60
61
  capabilities,
61
62
  lifetime,
@@ -64,9 +65,13 @@ export async function generateKeyPackage(credential, capabilities, lifetime, ext
64
65
  version: "mls10",
65
66
  cipherSuite: cs.name,
66
67
  initKey: await cs.hpke.exportPublicKey(initKeys.publicKey),
67
- leafNode: await signLeafNodeKeyPackage(leafNodeTbs, sigKeys.signKey, cs.signature),
68
+ leafNode: await signLeafNodeKeyPackage(leafNodeTbs, signatrueKeyPair.signKey, cs.signature),
68
69
  extensions,
69
70
  };
70
- return { publicPackage: await signKeyPackage(tbs, sigKeys.signKey, cs.signature), privatePackage };
71
+ return { publicPackage: await signKeyPackage(tbs, signatrueKeyPair.signKey, cs.signature), privatePackage };
72
+ }
73
+ export async function generateKeyPackage(credential, capabilities, lifetime, extensions, cs, leafNodeExtensions) {
74
+ const sigKeys = await cs.signature.keygen();
75
+ return generateKeyPackageWithKey(credential, capabilities, lifetime, extensions, sigKeys, cs, leafNodeExtensions);
71
76
  }
72
77
  //# sourceMappingURL=keyPackage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyPackage.js","sourceRoot":"","sources":["../src/keyPackage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyPackage.js","sourceRoot":"","sources":["../src/keyPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACpH,OAAO,EAAoC,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACjH,OAAO,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAA;AACzG,OAAO,EACL,wBAAwB,EACxB,eAAe,EAGf,sBAAsB,GACvB,MAAM,eAAe,CAAA;AAatB,MAAM,CAAC,MAAM,oBAAoB,GAAiC,uBAAuB,CACvF,CAAC,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,EACrH,CAAC,aAAa,EAAE,EAAE,CAChB;IACE,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,WAAW;IACzB,aAAa,CAAC,OAAO;IACrB,aAAa,CAAC,QAAQ;IACtB,aAAa,CAAC,UAAU;CAChB,CACb,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA2B,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAEvF,MAAM,CAAC,MAAM,mBAAmB,GAA2B,WAAW,CACpE;IACE,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,wBAAwB;IACxB,gBAAgB,CAAC,eAAe,CAAC;CAClC,EACD,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO;IACP,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;CACX,CAAC,CACH,CAAA;AAID,MAAM,CAAC,MAAM,iBAAiB,GAA8B,uBAAuB,CACjF,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,EACzC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAU,CAC5D,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAwB,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,gBAAgB,GAAwB,WAAW,CAC9D,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACvC,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7B,GAAG,aAAa;IAChB,SAAS;CACV,CAAC,CACH,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAkB,EAAE,OAAmB,EAAE,CAAY;IACxF,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AACnH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAc,EAAE,CAAY;IACjE,OAAO,eAAe,CACpB,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAC9B,eAAe,EACf,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAChC,EAAE,CAAC,SAAS,EACZ,CAAC,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAiB,EAAE,CAAO;IAC1D,OAAO,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AACrF,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAsB,EACtB,YAA0B,EAC1B,QAAkB,EAClB,UAAuB,EACvB,gBAAgE,EAChE,EAAmB,EACnB,kBAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;IAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAA;IAEhD,MAAM,cAAc,GAAG;QACrB,cAAc,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnE,cAAc,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnE,mBAAmB,EAAE,gBAAgB,CAAC,OAAO;KAC9C,CAAA;IAED,MAAM,WAAW,GAA0B;QACzC,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChE,kBAAkB,EAAE,gBAAgB,CAAC,SAAS;QAC9C,IAAI,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE;QACvC,UAAU,EAAE,kBAAkB,IAAI,EAAE;QACpC,UAAU;QACV,YAAY;QACZ,QAAQ;KACT,CAAA;IAED,MAAM,GAAG,GAAkB;QACzB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,EAAE,CAAC,IAAI;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,QAAQ,EAAE,MAAM,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC;QAC3F,UAAU;KACX,CAAA;IAED,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;AAC7G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAsB,EACtB,YAA0B,EAC1B,QAAkB,EAClB,UAAuB,EACvB,EAAmB,EACnB,kBAAgC;IAEhC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IAC3C,OAAO,yBAAyB,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;AACnH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Capabilities } from "./capabilities.js";
2
2
  import { Decoder } from "./codec/tlsDecoder.js";
3
- import { Encoder } from "./codec/tlsEncoder.js";
3
+ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
4
4
  import { Credential } from "./credential.js";
5
5
  import { Signature } from "./crypto/signature.js";
6
6
  import { Extension } from "./extension.js";
@@ -12,6 +12,7 @@ export interface LeafNodeData {
12
12
  credential: Credential;
13
13
  capabilities: Capabilities;
14
14
  }
15
+ export declare const leafNodeDataEncoder: BufferEncoder<LeafNodeData>;
15
16
  export declare const encodeLeafNodeData: Encoder<LeafNodeData>;
16
17
  export declare const decodeLeafNodeData: Decoder<LeafNodeData>;
17
18
  export type LeafNodeInfo = LeafNodeInfoKeyPackage | LeafNodeInfoUpdate | LeafNodeInfoCommit;
@@ -26,9 +27,13 @@ export interface LeafNodeInfoCommit {
26
27
  leafNodeSource: "commit";
27
28
  parentHash: Uint8Array;
28
29
  }
30
+ export declare const leafNodeInfoLifetimeEncoder: BufferEncoder<LeafNodeInfoKeyPackage>;
29
31
  export declare const encodeLeafNodeInfoLifetime: Encoder<LeafNodeInfoKeyPackage>;
32
+ export declare const leafNodeInfoUpdateEncoder: BufferEncoder<LeafNodeInfoUpdate>;
30
33
  export declare const encodeLeafNodeInfoUpdate: Encoder<LeafNodeInfoUpdate>;
34
+ export declare const leafNodeInfoCommitEncoder: BufferEncoder<LeafNodeInfoCommit>;
31
35
  export declare const encodeLeafNodeInfoCommit: Encoder<LeafNodeInfoCommit>;
36
+ export declare const leafNodeInfoEncoder: BufferEncoder<LeafNodeInfo>;
32
37
  export declare const encodeLeafNodeInfo: Encoder<LeafNodeInfo>;
33
38
  export declare const decodeLeafNodeInfoLifetime: Decoder<LeafNodeInfoKeyPackage>;
34
39
  export declare const decodeLeafNodeInfoCommit: Decoder<LeafNodeInfoCommit>;
@@ -36,6 +41,7 @@ export declare const decodeLeafNodeInfo: Decoder<LeafNodeInfo>;
36
41
  export interface LeafNodeExtensions {
37
42
  extensions: Extension[];
38
43
  }
44
+ export declare const leafNodeExtensionsEncoder: BufferEncoder<LeafNodeExtensions>;
39
45
  export declare const encodeLeafNodeExtensions: Encoder<LeafNodeExtensions>;
40
46
  export declare const decodeLeafNodeExtensions: Decoder<LeafNodeExtensions>;
41
47
  type GroupIdLeafIndex = {
@@ -43,10 +49,12 @@ type GroupIdLeafIndex = {
43
49
  groupId: Uint8Array;
44
50
  leafIndex: number;
45
51
  };
52
+ export declare const groupIdLeafIndexEncoder: BufferEncoder<GroupIdLeafIndex>;
46
53
  export declare const encodeGroupIdLeafIndex: Encoder<GroupIdLeafIndex>;
47
54
  export type LeafNodeGroupInfo = GroupIdLeafIndex | {
48
55
  leafNodeSource: "key_package";
49
56
  };
57
+ export declare const leafNodeGroupInfoEncoder: BufferEncoder<LeafNodeGroupInfo>;
50
58
  export declare const encodeLeafNodeGroupInfo: Encoder<LeafNodeGroupInfo>;
51
59
  export type LeafNodeTBS = LeafNodeData & LeafNodeInfo & LeafNodeExtensions & {
52
60
  info: LeafNodeGroupInfo;
@@ -59,10 +67,12 @@ export type LeafNodeTBSKeyPackage = LeafNodeData & LeafNodeInfoKeyPackage & Leaf
59
67
  leafNodeSource: "key_package";
60
68
  };
61
69
  };
70
+ export declare const leafNodeTBSEncoder: BufferEncoder<LeafNodeTBS>;
62
71
  export declare const encodeLeafNodeTBS: Encoder<LeafNodeTBS>;
63
72
  export type LeafNode = LeafNodeData & LeafNodeInfo & LeafNodeExtensions & {
64
73
  signature: Uint8Array;
65
74
  };
75
+ export declare const leafNodeEncoder: BufferEncoder<LeafNode>;
66
76
  export declare const encodeLeafNode: Encoder<LeafNode>;
67
77
  export declare const decodeLeafNode: Decoder<LeafNode>;
68
78
  export type LeafNodeKeyPackage = LeafNode & LeafNodeInfoKeyPackage;
package/dist/leafNode.js CHANGED
@@ -1,33 +1,38 @@
1
- import { decodeCapabilities, encodeCapabilities } from "./capabilities.js";
2
- import { encodeUint32 } from "./codec/number.js";
1
+ import { capabilitiesEncoder, decodeCapabilities } from "./capabilities.js";
2
+ import { uint32Encoder } from "./codec/number.js";
3
3
  import { mapDecoders, mapDecoder, flatMapDecoder, succeedDecoder, mapDecoderOption, } from "./codec/tlsDecoder.js";
4
- import { contramapEncoders, contramapEncoder } from "./codec/tlsEncoder.js";
5
- import { encodeVarLenData, decodeVarLenData, encodeVarLenType, decodeVarLenType } from "./codec/variableLength.js";
6
- import { encodeCredential, decodeCredential } from "./credential.js";
4
+ import { contramapBufferEncoders, contramapBufferEncoder, encode, encVoid, } from "./codec/tlsEncoder.js";
5
+ import { varLenDataEncoder, decodeVarLenData, varLenTypeEncoder, decodeVarLenType } from "./codec/variableLength.js";
6
+ import { credentialEncoder, decodeCredential } from "./credential.js";
7
7
  import { signWithLabel, verifyWithLabel } from "./crypto/signature.js";
8
- import { encodeExtension, decodeExtension } from "./extension.js";
9
- import { encodeLeafNodeSource, decodeLeafNodeSource } from "./leafNodeSource.js";
10
- import { encodeLifetime, decodeLifetime } from "./lifetime.js";
11
- export const encodeLeafNodeData = contramapEncoders([encodeVarLenData, encodeVarLenData, encodeCredential, encodeCapabilities], (data) => [data.hpkePublicKey, data.signaturePublicKey, data.credential, data.capabilities]);
8
+ import { extensionEncoder, decodeExtension } from "./extension.js";
9
+ import { leafNodeSourceEncoder, decodeLeafNodeSource } from "./leafNodeSource.js";
10
+ import { lifetimeEncoder, decodeLifetime } from "./lifetime.js";
11
+ export const leafNodeDataEncoder = contramapBufferEncoders([varLenDataEncoder, varLenDataEncoder, credentialEncoder, capabilitiesEncoder], (data) => [data.hpkePublicKey, data.signaturePublicKey, data.credential, data.capabilities]);
12
+ export const encodeLeafNodeData = encode(leafNodeDataEncoder);
12
13
  export const decodeLeafNodeData = mapDecoders([decodeVarLenData, decodeVarLenData, decodeCredential, decodeCapabilities], (hpkePublicKey, signaturePublicKey, credential, capabilities) => ({
13
14
  hpkePublicKey,
14
15
  signaturePublicKey,
15
16
  credential,
16
17
  capabilities,
17
18
  }));
18
- export const encodeLeafNodeInfoLifetime = contramapEncoders([encodeLeafNodeSource, encodeLifetime], (info) => ["key_package", info.lifetime]);
19
- export const encodeLeafNodeInfoUpdate = contramapEncoder(encodeLeafNodeSource, (i) => i.leafNodeSource);
20
- export const encodeLeafNodeInfoCommit = contramapEncoders([encodeLeafNodeSource, encodeVarLenData], (info) => ["commit", info.parentHash]);
21
- export const encodeLeafNodeInfo = (info) => {
19
+ export const leafNodeInfoLifetimeEncoder = contramapBufferEncoders([leafNodeSourceEncoder, lifetimeEncoder], (info) => ["key_package", info.lifetime]);
20
+ export const encodeLeafNodeInfoLifetime = encode(leafNodeInfoLifetimeEncoder);
21
+ export const leafNodeInfoUpdateEncoder = contramapBufferEncoder(leafNodeSourceEncoder, (i) => i.leafNodeSource);
22
+ export const encodeLeafNodeInfoUpdate = encode(leafNodeInfoUpdateEncoder);
23
+ export const leafNodeInfoCommitEncoder = contramapBufferEncoders([leafNodeSourceEncoder, varLenDataEncoder], (info) => ["commit", info.parentHash]);
24
+ export const encodeLeafNodeInfoCommit = encode(leafNodeInfoCommitEncoder);
25
+ export const leafNodeInfoEncoder = (info) => {
22
26
  switch (info.leafNodeSource) {
23
27
  case "key_package":
24
- return encodeLeafNodeInfoLifetime(info);
28
+ return leafNodeInfoLifetimeEncoder(info);
25
29
  case "update":
26
- return encodeLeafNodeInfoUpdate(info);
30
+ return leafNodeInfoUpdateEncoder(info);
27
31
  case "commit":
28
- return encodeLeafNodeInfoCommit(info);
32
+ return leafNodeInfoCommitEncoder(info);
29
33
  }
30
34
  };
35
+ export const encodeLeafNodeInfo = encode(leafNodeInfoEncoder);
31
36
  export const decodeLeafNodeInfoLifetime = mapDecoder(decodeLifetime, (lifetime) => ({
32
37
  leafNodeSource: "key_package",
33
38
  lifetime,
@@ -46,20 +51,25 @@ export const decodeLeafNodeInfo = flatMapDecoder(decodeLeafNodeSource, (leafNode
46
51
  return decodeLeafNodeInfoCommit;
47
52
  }
48
53
  });
49
- export const encodeLeafNodeExtensions = contramapEncoder(encodeVarLenType(encodeExtension), (ext) => ext.extensions);
54
+ export const leafNodeExtensionsEncoder = contramapBufferEncoder(varLenTypeEncoder(extensionEncoder), (ext) => ext.extensions);
55
+ export const encodeLeafNodeExtensions = encode(leafNodeExtensionsEncoder);
50
56
  export const decodeLeafNodeExtensions = mapDecoder(decodeVarLenType(decodeExtension), (extensions) => ({ extensions }));
51
- export const encodeGroupIdLeafIndex = contramapEncoders([encodeVarLenData, encodeUint32], (g) => [g.groupId, g.leafIndex]);
52
- export const encodeLeafNodeGroupInfo = (info) => {
57
+ export const groupIdLeafIndexEncoder = contramapBufferEncoders([varLenDataEncoder, uint32Encoder], (g) => [g.groupId, g.leafIndex]);
58
+ export const encodeGroupIdLeafIndex = encode(groupIdLeafIndexEncoder);
59
+ export const leafNodeGroupInfoEncoder = (info) => {
53
60
  switch (info.leafNodeSource) {
54
61
  case "key_package":
55
- return new Uint8Array();
62
+ return encVoid;
56
63
  case "update":
57
64
  case "commit":
58
- return encodeGroupIdLeafIndex(info);
65
+ return groupIdLeafIndexEncoder(info);
59
66
  }
60
67
  };
61
- export const encodeLeafNodeTBS = contramapEncoders([encodeLeafNodeData, encodeLeafNodeInfo, encodeLeafNodeExtensions, encodeLeafNodeGroupInfo], (tbs) => [tbs, tbs, tbs, tbs.info]);
62
- export const encodeLeafNode = contramapEncoders([encodeLeafNodeData, encodeLeafNodeInfo, encodeLeafNodeExtensions, encodeVarLenData], (leafNode) => [leafNode, leafNode, leafNode, leafNode.signature]);
68
+ export const encodeLeafNodeGroupInfo = encode(leafNodeGroupInfoEncoder);
69
+ export const leafNodeTBSEncoder = contramapBufferEncoders([leafNodeDataEncoder, leafNodeInfoEncoder, leafNodeExtensionsEncoder, leafNodeGroupInfoEncoder], (tbs) => [tbs, tbs, tbs, tbs.info]);
70
+ export const encodeLeafNodeTBS = encode(leafNodeTBSEncoder);
71
+ export const leafNodeEncoder = contramapBufferEncoders([leafNodeDataEncoder, leafNodeInfoEncoder, leafNodeExtensionsEncoder, varLenDataEncoder], (leafNode) => [leafNode, leafNode, leafNode, leafNode.signature]);
72
+ export const encodeLeafNode = encode(leafNodeEncoder);
63
73
  export const decodeLeafNode = mapDecoders([decodeLeafNodeData, decodeLeafNodeInfo, decodeLeafNodeExtensions, decodeVarLenData], (data, info, extensions, signature) => ({
64
74
  ...data,
65
75
  ...info,
@@ -73,15 +83,21 @@ function toTbs(leafNode, groupId, leafIndex) {
73
83
  return { ...leafNode, info: { leafNodeSource: leafNode.leafNodeSource, groupId, leafIndex } };
74
84
  }
75
85
  export async function signLeafNodeCommit(tbs, signaturePrivateKey, sig) {
76
- return { ...tbs, signature: await signWithLabel(signaturePrivateKey, "LeafNodeTBS", encodeLeafNodeTBS(tbs), sig) };
86
+ return {
87
+ ...tbs,
88
+ signature: await signWithLabel(signaturePrivateKey, "LeafNodeTBS", encode(leafNodeTBSEncoder)(tbs), sig),
89
+ };
77
90
  }
78
91
  export async function signLeafNodeKeyPackage(tbs, signaturePrivateKey, sig) {
79
- return { ...tbs, signature: await signWithLabel(signaturePrivateKey, "LeafNodeTBS", encodeLeafNodeTBS(tbs), sig) };
92
+ return {
93
+ ...tbs,
94
+ signature: await signWithLabel(signaturePrivateKey, "LeafNodeTBS", encode(leafNodeTBSEncoder)(tbs), sig),
95
+ };
80
96
  }
81
97
  export function verifyLeafNodeSignature(leaf, groupId, leafIndex, sig) {
82
- return verifyWithLabel(leaf.signaturePublicKey, "LeafNodeTBS", encodeLeafNodeTBS(toTbs(leaf, groupId, leafIndex)), leaf.signature, sig);
98
+ return verifyWithLabel(leaf.signaturePublicKey, "LeafNodeTBS", encode(leafNodeTBSEncoder)(toTbs(leaf, groupId, leafIndex)), leaf.signature, sig);
83
99
  }
84
100
  export function verifyLeafNodeSignatureKeyPackage(leaf, sig) {
85
- return verifyWithLabel(leaf.signaturePublicKey, "LeafNodeTBS", encodeLeafNodeTBS({ ...leaf, info: { leafNodeSource: leaf.leafNodeSource } }), leaf.signature, sig);
101
+ return verifyWithLabel(leaf.signaturePublicKey, "LeafNodeTBS", encode(leafNodeTBSEncoder)({ ...leaf, info: { leafNodeSource: leaf.leafNodeSource } }), leaf.signature, sig);
86
102
  }
87
103
  //# sourceMappingURL=leafNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../src/leafNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAEL,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAW,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAc,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAa,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAsB,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAAY,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AASxE,MAAM,CAAC,MAAM,kBAAkB,GAA0B,iBAAiB,CACxE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAC1E,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAU,CACrG,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA0B,WAAW,CAClE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAC1E,CAAC,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAChE,aAAa;IACb,kBAAkB;IAClB,UAAU;IACV,YAAY;CACb,CAAC,CACH,CAAA;AAeD,MAAM,CAAC,MAAM,0BAA0B,GAAoC,iBAAiB,CAC1F,CAAC,oBAAoB,EAAE,cAAc,CAAC,EACtC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAU,CAClD,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAgC,gBAAgB,CACnF,oBAAoB,EACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CACxB,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAgC,iBAAiB,CACpF,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EACxC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAU,CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA0B,CAAC,IAAI,EAAE,EAAE;IAChE,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACzC,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;QACvC,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoC,UAAU,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnH,cAAc,EAAE,aAAa;IAC7B,QAAQ;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAgC,WAAW,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpH,cAAc,EAAE,QAAQ;IACxB,UAAU;CACX,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAA0B,cAAc,CACrE,oBAAoB,EACpB,CAAC,cAAc,EAAyB,EAAE;IACxC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,0BAA0B,CAAA;QACnC,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QAC3C,KAAK,QAAQ;YACX,OAAO,wBAAwB,CAAA;IACnC,CAAC;AACH,CAAC,CACF,CAAA;AAMD,MAAM,CAAC,MAAM,wBAAwB,GAAgC,gBAAgB,CACnF,gBAAgB,CAAC,eAAe,CAAC,EACjC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CACxB,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAgC,UAAU,CAC7E,gBAAgB,CAAC,eAAe,CAAC,EACjC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CACjC,CAAA;AAQD,MAAM,CAAC,MAAM,sBAAsB,GAA8B,iBAAiB,CAChF,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAU,CACzC,CAAA;AAID,MAAM,CAAC,MAAM,uBAAuB,GAA+B,CAAC,IAAI,EAAE,EAAE;IAC1E,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;AACH,CAAC,CAAA;AAUD,MAAM,CAAC,MAAM,iBAAiB,GAAyB,iBAAiB,CACtE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,uBAAuB,CAAC,EAC3F,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAU,CAC5C,CAAA;AAID,MAAM,CAAC,MAAM,cAAc,GAAsB,iBAAiB,CAChE,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EACpF,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAU,CAC1E,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAsB,WAAW,CAC1D,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EACpF,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,GAAG,IAAI;IACP,GAAG,IAAI;IACP,GAAG,UAAU;IACb,SAAS;CACV,CAAC,CACH,CAAA;AAID,MAAM,CAAC,MAAM,wBAAwB,GAAgC,gBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAC3G,EAAE,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CACrD,CAAA;AAID,MAAM,CAAC,MAAM,oBAAoB,GAA4B,gBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CACnG,EAAE,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAChD,CAAA;AAID,MAAM,CAAC,MAAM,oBAAoB,GAA4B,gBAAgB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CACnG,EAAE,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAChD,CAAA;AAED,SAAS,KAAK,CAAC,QAAkB,EAAE,OAAmB,EAAE,SAAiB;IACvE,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAA;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAsB,EACtB,mBAA+B,EAC/B,GAAc;IAEd,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;AACpH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAA0B,EAC1B,mBAA+B,EAC/B,GAAc;IAEd,OAAO,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;AACpH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAc,EACd,OAAmB,EACnB,SAAiB,EACjB,GAAc;IAEd,OAAO,eAAe,CACpB,IAAI,CAAC,kBAAkB,EACvB,aAAa,EACb,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAClD,IAAI,CAAC,SAAS,EACd,GAAG,CACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAAwB,EAAE,GAAc;IACxF,OAAO,eAAe,CACpB,IAAI,CAAC,kBAAkB,EACvB,aAAa,EACb,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,EAC7E,IAAI,CAAC,SAAS,EACd,GAAG,CACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../src/leafNode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Decoder } from "./codec/tlsDecoder.js";
2
- import { Encoder } from "./codec/tlsEncoder.js";
2
+ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
3
3
  declare const leafNodeSources: {
4
4
  readonly key_package: 1;
5
5
  readonly update: 2;
@@ -7,6 +7,7 @@ declare const leafNodeSources: {
7
7
  };
8
8
  export type LeafNodeSourceName = keyof typeof leafNodeSources;
9
9
  export type LeafNodeSourceValue = (typeof leafNodeSources)[LeafNodeSourceName];
10
+ export declare const leafNodeSourceEncoder: BufferEncoder<LeafNodeSourceName>;
10
11
  export declare const encodeLeafNodeSource: Encoder<LeafNodeSourceName>;
11
12
  export declare const decodeLeafNodeSource: Decoder<LeafNodeSourceName>;
12
13
  export {};
@@ -1,12 +1,13 @@
1
- import { decodeUint8, encodeUint8 } from "./codec/number.js";
1
+ import { decodeUint8, uint8Encoder } from "./codec/number.js";
2
2
  import { mapDecoderOption } from "./codec/tlsDecoder.js";
3
- import { contramapEncoder } from "./codec/tlsEncoder.js";
3
+ import { contramapBufferEncoder, encode } from "./codec/tlsEncoder.js";
4
4
  import { enumNumberToKey } from "./util/enumHelpers.js";
5
5
  const leafNodeSources = {
6
6
  key_package: 1,
7
7
  update: 2,
8
8
  commit: 3,
9
9
  };
10
- export const encodeLeafNodeSource = contramapEncoder(encodeUint8, (t) => leafNodeSources[t]);
10
+ export const leafNodeSourceEncoder = contramapBufferEncoder(uint8Encoder, (t) => leafNodeSources[t]);
11
+ export const encodeLeafNodeSource = encode(leafNodeSourceEncoder);
11
12
  export const decodeLeafNodeSource = mapDecoderOption(decodeUint8, enumNumberToKey(leafNodeSources));
12
13
  //# sourceMappingURL=leafNodeSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"leafNodeSource.js","sourceRoot":"","sources":["../src/leafNodeSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAW,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAW,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACD,CAAA;AAKV,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,WAAW,EACX,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,WAAW,EACX,eAAe,CAAC,eAAe,CAAC,CACjC,CAAA"}
1
+ {"version":3,"file":"leafNodeSource.js","sourceRoot":"","sources":["../src/leafNodeSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAW,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACD,CAAA;AAKV,MAAM,CAAC,MAAM,qBAAqB,GAAsC,sBAAsB,CAC5F,YAAY,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgC,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAE9F,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,WAAW,EACX,eAAe,CAAC,eAAe,CAAC,CACjC,CAAA"}
@@ -1,9 +1,10 @@
1
- import { Encoder } from "./codec/tlsEncoder.js";
1
+ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
2
2
  import { Decoder } from "./codec/tlsDecoder.js";
3
3
  export interface Lifetime {
4
4
  notBefore: bigint;
5
5
  notAfter: bigint;
6
6
  }
7
+ export declare const lifetimeEncoder: BufferEncoder<Lifetime>;
7
8
  export declare const encodeLifetime: Encoder<Lifetime>;
8
9
  export declare const decodeLifetime: Decoder<Lifetime>;
9
10
  export declare const defaultLifetime: Lifetime;
package/dist/lifetime.js CHANGED
@@ -1,7 +1,8 @@
1
- import { encodeUint64, decodeUint64 } from "./codec/number.js";
2
- import { contramapEncoders } from "./codec/tlsEncoder.js";
1
+ import { uint64Encoder, decodeUint64 } from "./codec/number.js";
2
+ import { contramapBufferEncoders, encode } from "./codec/tlsEncoder.js";
3
3
  import { mapDecoders } from "./codec/tlsDecoder.js";
4
- export const encodeLifetime = contramapEncoders([encodeUint64, encodeUint64], (lt) => [lt.notBefore, lt.notAfter]);
4
+ export const lifetimeEncoder = contramapBufferEncoders([uint64Encoder, uint64Encoder], (lt) => [lt.notBefore, lt.notAfter]);
5
+ export const encodeLifetime = encode(lifetimeEncoder);
5
6
  export const decodeLifetime = mapDecoders([decodeUint64, decodeUint64], (notBefore, notAfter) => ({
6
7
  notBefore,
7
8
  notAfter,
@@ -1 +1 @@
1
- {"version":3,"file":"lifetime.js","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAW,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAO5D,MAAM,CAAC,MAAM,cAAc,GAAsB,iBAAiB,CAChE,CAAC,YAAY,EAAE,YAAY,CAAC,EAC5B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAU,CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAsB,WAAW,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnH,SAAS;IACT,QAAQ;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,oBAAoB;CAC/B,CAAA"}
1
+ {"version":3,"file":"lifetime.js","sourceRoot":"","sources":["../src/lifetime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAiB,uBAAuB,EAAE,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAO5D,MAAM,CAAC,MAAM,eAAe,GAA4B,uBAAuB,CAC7E,CAAC,aAAa,EAAE,aAAa,CAAC,EAC9B,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAU,CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAsB,MAAM,CAAC,eAAe,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,cAAc,GAAsB,WAAW,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnH,SAAS;IACT,QAAQ;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,oBAAoB;CAC/B,CAAA"}
package/dist/message.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Decoder } from "./codec/tlsDecoder.js";
2
- import { Encoder } from "./codec/tlsEncoder.js";
2
+ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
3
3
  import { GroupInfo } from "./groupInfo.js";
4
4
  import { KeyPackage } from "./keyPackage.js";
5
5
  import { PrivateMessage } from "./privateMessage.js";
@@ -31,12 +31,19 @@ export interface MlsPublicMessage {
31
31
  }
32
32
  export type MlsMessageContent = MlsWelcome | MlsPrivateMessage | MlsGroupInfo | MlsKeyPackage | MlsPublicMessage;
33
33
  export type MLSMessage = MlsMessageProtocol & MlsMessageContent;
34
- export declare const encodeMlsMessageContent: Encoder<MlsMessageContent>;
34
+ export declare const mlsPublicMessageEncoder: BufferEncoder<MlsPublicMessage>;
35
35
  export declare const encodeMlsPublicMessage: Encoder<MlsPublicMessage>;
36
+ export declare const mlsWelcomeEncoder: BufferEncoder<MlsWelcome>;
36
37
  export declare const encodeMlsWelcome: Encoder<MlsWelcome>;
38
+ export declare const mlsPrivateMessageEncoder: BufferEncoder<MlsPrivateMessage>;
37
39
  export declare const encodeMlsPrivateMessage: Encoder<MlsPrivateMessage>;
40
+ export declare const mlsGroupInfoEncoder: BufferEncoder<MlsGroupInfo>;
38
41
  export declare const encodeMlsGroupInfo: Encoder<MlsGroupInfo>;
42
+ export declare const mlsKeyPackageEncoder: BufferEncoder<MlsKeyPackage>;
39
43
  export declare const encodeMlsKeyPackage: Encoder<MlsKeyPackage>;
44
+ export declare const mlsMessageContentEncoder: BufferEncoder<MlsMessageContent>;
45
+ export declare const encodeMlsMessageContent: Encoder<MlsMessageContent>;
40
46
  export declare const decodeMlsMessageContent: Decoder<MlsMessageContent>;
47
+ export declare const mlsMessageEncoder: BufferEncoder<MLSMessage>;
41
48
  export declare const encodeMlsMessage: Encoder<MLSMessage>;
42
49
  export declare const decodeMlsMessage: Decoder<MLSMessage>;
package/dist/message.js CHANGED
@@ -1,31 +1,37 @@
1
1
  import { flatMapDecoder, mapDecoder, mapDecoders } from "./codec/tlsDecoder.js";
2
- import { contramapEncoders } from "./codec/tlsEncoder.js";
3
- import { decodeGroupInfo, encodeGroupInfo } from "./groupInfo.js";
4
- import { decodeKeyPackage, encodeKeyPackage } from "./keyPackage.js";
5
- import { decodePrivateMessage, encodePrivateMessage } from "./privateMessage.js";
6
- import { decodeProtocolVersion, encodeProtocolVersion } from "./protocolVersion.js";
7
- import { decodePublicMessage, encodePublicMessage } from "./publicMessage.js";
8
- import { decodeWelcome, encodeWelcome } from "./welcome.js";
9
- import { decodeWireformat, encodeWireformat } from "./wireformat.js";
10
- export const encodeMlsMessageContent = (mc) => {
2
+ import { contramapBufferEncoders, encode } from "./codec/tlsEncoder.js";
3
+ import { decodeGroupInfo, groupInfoEncoder } from "./groupInfo.js";
4
+ import { decodeKeyPackage, keyPackageEncoder } from "./keyPackage.js";
5
+ import { decodePrivateMessage, privateMessageEncoder } from "./privateMessage.js";
6
+ import { decodeProtocolVersion, protocolVersionEncoder } from "./protocolVersion.js";
7
+ import { decodePublicMessage, publicMessageEncoder } from "./publicMessage.js";
8
+ import { decodeWelcome, welcomeEncoder } from "./welcome.js";
9
+ import { decodeWireformat, wireformatEncoder } from "./wireformat.js";
10
+ export const mlsPublicMessageEncoder = contramapBufferEncoders([wireformatEncoder, publicMessageEncoder], (msg) => [msg.wireformat, msg.publicMessage]);
11
+ export const encodeMlsPublicMessage = encode(mlsPublicMessageEncoder);
12
+ export const mlsWelcomeEncoder = contramapBufferEncoders([wireformatEncoder, welcomeEncoder], (wm) => [wm.wireformat, wm.welcome]);
13
+ export const encodeMlsWelcome = encode(mlsWelcomeEncoder);
14
+ export const mlsPrivateMessageEncoder = contramapBufferEncoders([wireformatEncoder, privateMessageEncoder], (pm) => [pm.wireformat, pm.privateMessage]);
15
+ export const encodeMlsPrivateMessage = encode(mlsPrivateMessageEncoder);
16
+ export const mlsGroupInfoEncoder = contramapBufferEncoders([wireformatEncoder, groupInfoEncoder], (gi) => [gi.wireformat, gi.groupInfo]);
17
+ export const encodeMlsGroupInfo = encode(mlsGroupInfoEncoder);
18
+ export const mlsKeyPackageEncoder = contramapBufferEncoders([wireformatEncoder, keyPackageEncoder], (kp) => [kp.wireformat, kp.keyPackage]);
19
+ export const encodeMlsKeyPackage = encode(mlsKeyPackageEncoder);
20
+ export const mlsMessageContentEncoder = (mc) => {
11
21
  switch (mc.wireformat) {
12
22
  case "mls_public_message":
13
- return encodeMlsPublicMessage(mc);
23
+ return mlsPublicMessageEncoder(mc);
14
24
  case "mls_welcome":
15
- return encodeMlsWelcome(mc);
25
+ return mlsWelcomeEncoder(mc);
16
26
  case "mls_private_message":
17
- return encodeMlsPrivateMessage(mc);
27
+ return mlsPrivateMessageEncoder(mc);
18
28
  case "mls_group_info":
19
- return encodeMlsGroupInfo(mc);
29
+ return mlsGroupInfoEncoder(mc);
20
30
  case "mls_key_package":
21
- return encodeMlsKeyPackage(mc);
31
+ return mlsKeyPackageEncoder(mc);
22
32
  }
23
33
  };
24
- export const encodeMlsPublicMessage = contramapEncoders([encodeWireformat, encodePublicMessage], (msg) => [msg.wireformat, msg.publicMessage]);
25
- export const encodeMlsWelcome = contramapEncoders([encodeWireformat, encodeWelcome], (wm) => [wm.wireformat, wm.welcome]);
26
- export const encodeMlsPrivateMessage = contramapEncoders([encodeWireformat, encodePrivateMessage], (pm) => [pm.wireformat, pm.privateMessage]);
27
- export const encodeMlsGroupInfo = contramapEncoders([encodeWireformat, encodeGroupInfo], (gi) => [gi.wireformat, gi.groupInfo]);
28
- export const encodeMlsKeyPackage = contramapEncoders([encodeWireformat, encodeKeyPackage], (kp) => [kp.wireformat, kp.keyPackage]);
34
+ export const encodeMlsMessageContent = encode(mlsMessageContentEncoder);
29
35
  export const decodeMlsMessageContent = flatMapDecoder(decodeWireformat, (wireformat) => {
30
36
  switch (wireformat) {
31
37
  case "mls_public_message":
@@ -40,6 +46,7 @@ export const decodeMlsMessageContent = flatMapDecoder(decodeWireformat, (wirefor
40
46
  return mapDecoder(decodeKeyPackage, (keyPackage) => ({ wireformat, keyPackage }));
41
47
  }
42
48
  });
43
- export const encodeMlsMessage = contramapEncoders([encodeProtocolVersion, encodeMlsMessageContent], (w) => [w.version, w]);
49
+ export const mlsMessageEncoder = contramapBufferEncoders([protocolVersionEncoder, mlsMessageContentEncoder], (w) => [w.version, w]);
50
+ export const encodeMlsMessage = encode(mlsMessageEncoder);
44
51
  export const decodeMlsMessage = mapDecoders([decodeProtocolVersion, decodeMlsMessageContent], (version, mc) => ({ ...mc, version }));
45
52
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import { makeProposalRef } from "./authenticatedContent.js";
2
2
  import { signFramedContentApplicationOrProposal, verifyFramedContentSignature, } from "./framedContent.js";
3
- import { decodePrivateMessageContent, decryptSenderData, encodePrivateContentAAD, encodePrivateMessageContent, encryptSenderData, toAuthenticatedContent, } from "./privateMessage.js";
3
+ import { decodePrivateMessageContent, decryptSenderData, encodePrivateMessageContent, encryptSenderData, privateContentAADEncoder, toAuthenticatedContent, } from "./privateMessage.js";
4
4
  import { consumeRatchet, ratchetToGeneration } from "./secretTree.js";
5
5
  import { getSignaturePublicKeyFromLeafIndex } from "./ratchetTree.js";
6
6
  import { leafToNodeIndex, toLeafIndex } from "./treemath.js";
7
7
  import { CryptoVerificationError, CodecError, ValidationError, InternalError } from "./mlsError.js";
8
+ import { encode } from "./codec/tlsEncoder.js";
8
9
  export async function protectApplicationData(signKey, senderDataSecret, applicationData, authenticatedData, groupContext, secretTree, leafIndex, paddingConfig, cs) {
9
10
  const tbs = {
10
11
  protocolVersion: groupContext.version,
@@ -72,7 +73,7 @@ export async function protect(senderDataSecret, authenticatedData, groupContext,
72
73
  contentType: content.contentType,
73
74
  authenticatedData: authenticatedData,
74
75
  };
75
- const ciphertext = await cs.hpke.encryptAead(key, nonce, encodePrivateContentAAD(aad), encodePrivateMessageContent(config)(content));
76
+ const ciphertext = await cs.hpke.encryptAead(key, nonce, encode(privateContentAADEncoder)(aad), encodePrivateMessageContent(config)(content));
76
77
  const senderData = {
77
78
  leafIndex,
78
79
  generation,
@@ -108,7 +109,7 @@ export async function unprotectPrivateMessage(senderDataSecret, msg, secretTree,
108
109
  contentType: msg.contentType,
109
110
  authenticatedData: msg.authenticatedData,
110
111
  };
111
- const decrypted = await cs.hpke.decryptAead(key, nonce, encodePrivateContentAAD(aad), msg.ciphertext);
112
+ const decrypted = await cs.hpke.decryptAead(key, nonce, encode(privateContentAADEncoder)(aad), msg.ciphertext);
112
113
  const pmc = decodePrivateMessageContent(msg.contentType)(decrypted, 0)?.[0];
113
114
  if (pmc === undefined)
114
115
  throw new CodecError("Could not decode PrivateMessageContent");
@@ -1 +1 @@
1
- {"version":3,"file":"messageProtection.js","sourceRoot":"","sources":["../src/messageProtection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messageProtection.js","sourceRoot":"","sources":["../src/messageProtection.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { Decoder } from "./codec/tlsDecoder.js";
2
- import { Encoder } from "./codec/tlsEncoder.js";
2
+ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
3
3
  declare const nodeTypes: {
4
4
  readonly leaf: 1;
5
5
  readonly parent: 2;
6
6
  };
7
7
  export type NodeTypeName = keyof typeof nodeTypes;
8
8
  export type NodeTypeValue = (typeof nodeTypes)[NodeTypeName];
9
+ export declare const nodeTypeEncoder: BufferEncoder<NodeTypeName>;
9
10
  export declare const encodeNodeType: Encoder<NodeTypeName>;
10
11
  export declare const decodeNodeType: Decoder<NodeTypeName>;
11
12
  export {};
package/dist/nodeType.js CHANGED
@@ -1,11 +1,12 @@
1
- import { decodeUint8, encodeUint8 } from "./codec/number.js";
1
+ import { decodeUint8, uint8Encoder } from "./codec/number.js";
2
2
  import { mapDecoderOption } from "./codec/tlsDecoder.js";
3
- import { contramapEncoder } from "./codec/tlsEncoder.js";
3
+ import { contramapBufferEncoder, encode } from "./codec/tlsEncoder.js";
4
4
  import { enumNumberToKey } from "./util/enumHelpers.js";
5
5
  const nodeTypes = {
6
6
  leaf: 1,
7
7
  parent: 2,
8
8
  };
9
- export const encodeNodeType = contramapEncoder(encodeUint8, (t) => nodeTypes[t]);
9
+ export const nodeTypeEncoder = contramapBufferEncoder(uint8Encoder, (t) => nodeTypes[t]);
10
+ export const encodeNodeType = encode(nodeTypeEncoder);
10
11
  export const decodeNodeType = mapDecoderOption(decodeUint8, enumNumberToKey(nodeTypes));
11
12
  //# sourceMappingURL=nodeType.js.map