ts-mls 1.4.1 → 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 (156) 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/keyPackage.d.ts +5 -3
  83. package/dist/keyPackage.js +17 -15
  84. package/dist/keyPackage.js.map +1 -1
  85. package/dist/leafNode.d.ts +11 -1
  86. package/dist/leafNode.js +43 -27
  87. package/dist/leafNode.js.map +1 -1
  88. package/dist/leafNodeSource.d.ts +2 -1
  89. package/dist/leafNodeSource.js +4 -3
  90. package/dist/leafNodeSource.js.map +1 -1
  91. package/dist/lifetime.d.ts +2 -1
  92. package/dist/lifetime.js +4 -3
  93. package/dist/lifetime.js.map +1 -1
  94. package/dist/message.d.ts +9 -2
  95. package/dist/message.js +27 -20
  96. package/dist/message.js.map +1 -1
  97. package/dist/messageProtection.js +4 -3
  98. package/dist/messageProtection.js.map +1 -1
  99. package/dist/nodeType.d.ts +2 -1
  100. package/dist/nodeType.js +4 -3
  101. package/dist/nodeType.js.map +1 -1
  102. package/dist/parentHash.d.ts +2 -1
  103. package/dist/parentHash.js +5 -4
  104. package/dist/parentHash.js.map +1 -1
  105. package/dist/parentNode.d.ts +2 -1
  106. package/dist/parentNode.js +5 -4
  107. package/dist/parentNode.js.map +1 -1
  108. package/dist/presharedkey.d.ts +6 -1
  109. package/dist/presharedkey.js +16 -11
  110. package/dist/presharedkey.js.map +1 -1
  111. package/dist/privateMessage.d.ts +4 -1
  112. package/dist/privateMessage.js +29 -20
  113. package/dist/privateMessage.js.map +1 -1
  114. package/dist/processMessages.js +3 -2
  115. package/dist/processMessages.js.map +1 -1
  116. package/dist/proposal.d.ts +17 -1
  117. package/dist/proposal.js +50 -34
  118. package/dist/proposal.js.map +1 -1
  119. package/dist/proposalOrRefType.d.ts +5 -1
  120. package/dist/proposalOrRefType.js +14 -10
  121. package/dist/proposalOrRefType.js.map +1 -1
  122. package/dist/protocolVersion.d.ts +2 -1
  123. package/dist/protocolVersion.js +4 -3
  124. package/dist/protocolVersion.js.map +1 -1
  125. package/dist/publicMessage.d.ts +3 -1
  126. package/dist/publicMessage.js +9 -7
  127. package/dist/publicMessage.js.map +1 -1
  128. package/dist/ratchetTree.d.ts +3 -1
  129. package/dist/ratchetTree.js +13 -11
  130. package/dist/ratchetTree.js.map +1 -1
  131. package/dist/requiredCapabilities.d.ts +2 -1
  132. package/dist/requiredCapabilities.js +6 -5
  133. package/dist/requiredCapabilities.js.map +1 -1
  134. package/dist/sender.d.ts +6 -1
  135. package/dist/sender.js +24 -13
  136. package/dist/sender.js.map +1 -1
  137. package/dist/transcriptHash.d.ts +2 -1
  138. package/dist/transcriptHash.js +18 -8
  139. package/dist/transcriptHash.js.map +1 -1
  140. package/dist/treeHash.d.ts +4 -1
  141. package/dist/treeHash.js +17 -14
  142. package/dist/treeHash.js.map +1 -1
  143. package/dist/tsconfig.build.tsbuildinfo +1 -1
  144. package/dist/updatePath.d.ts +3 -1
  145. package/dist/updatePath.js +10 -8
  146. package/dist/updatePath.js.map +1 -1
  147. package/dist/util/byteArray.d.ts +2 -1
  148. package/dist/util/byteArray.js +21 -2
  149. package/dist/util/byteArray.js.map +1 -1
  150. package/dist/welcome.d.ts +3 -1
  151. package/dist/welcome.js +12 -10
  152. package/dist/welcome.js.map +1 -1
  153. package/dist/wireformat.d.ts +2 -1
  154. package/dist/wireformat.js +4 -3
  155. package/dist/wireformat.js.map +1 -1
  156. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"credential.js","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAW,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAClH,OAAO,EAAsB,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAkBpG,MAAM,CAAC,MAAM,qBAAqB,GAA6B,iBAAiB,CAC9E,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAU,CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA4B,iBAAiB,CAC5E,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,EAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAU,CACnD,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAA8B,iBAAiB,CAChF,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAU,CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAwB,CAAC,CAAC,EAAE,EAAE;IACzD,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACjC,KAAK,MAAM;YACT,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAA;QAChC;YACE,OAAO,sBAAsB,CAAC,CAAqB,CAAC,CAAA;IACxD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAA6B,UAAU,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClG,cAAc,EAAE,OAAO;IACvB,QAAQ;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAA4B,UAAU,CAC9D,gBAAgB,CAAC,gBAAgB,CAAC,EAClC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAC7D,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAwB,cAAc,CACjE,oBAAoB,EACpB,CAAC,cAAc,EAAuB,EAAE;IACtC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,qBAAqB,CAAA;QAC9B,KAAK,MAAM;YACT,OAAO,oBAAoB,CAAA;IAC/B,CAAC;AACH,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"credential.js","sourceRoot":"","sources":["../src/credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC3E,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,EAAsB,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAkBrG,MAAM,CAAC,MAAM,sBAAsB,GAAmC,uBAAuB,CAC3F,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAU,CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA6B,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,qBAAqB,GAAkC,uBAAuB,CACzF,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAC7D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAU,CACnD,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAA4B,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,uBAAuB,GAAoC,uBAAuB,CAC7F,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,EAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAU,CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAA8B,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAEhG,MAAM,CAAC,MAAM,iBAAiB,GAA8B,CAAC,CAAC,EAAE,EAAE;IAChE,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAA;QAClC,KAAK,MAAM;YACT,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACjC;YACE,OAAO,uBAAuB,CAAC,CAAqB,CAAC,CAAA;IACzD,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAwB,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAE9E,MAAM,qBAAqB,GAA6B,UAAU,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClG,cAAc,EAAE,OAAO;IACvB,QAAQ;CACT,CAAC,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAA4B,UAAU,CAC9D,gBAAgB,CAAC,gBAAgB,CAAC,EAClC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAC7D,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAwB,cAAc,CACjE,oBAAoB,EACpB,CAAC,cAAc,EAAuB,EAAE;IACtC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,qBAAqB,CAAA;QAC9B,KAAK,MAAM;YACT,OAAO,oBAAoB,CAAA;IAC/B,CAAC;AACH,CAAC,CACF,CAAA"}
@@ -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 credentialTypes: {
4
4
  readonly basic: 1;
5
5
  readonly x509: 2;
6
6
  };
7
7
  export type CredentialTypeName = keyof typeof credentialTypes;
8
8
  export type CredentialTypeValue = (typeof credentialTypes)[CredentialTypeName];
9
+ export declare const credentialTypeEncoder: BufferEncoder<CredentialTypeName>;
9
10
  export declare const encodeCredentialType: Encoder<CredentialTypeName>;
10
11
  export declare const decodeCredentialType: Decoder<CredentialTypeName>;
11
12
  export {};
@@ -1,11 +1,12 @@
1
- import { decodeUint16, encodeUint16 } from "./codec/number.js";
1
+ import { decodeUint16, uint16Encoder } 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 { openEnumNumberEncoder, openEnumNumberToKey } from "./util/enumHelpers.js";
5
5
  const credentialTypes = {
6
6
  basic: 1,
7
7
  x509: 2,
8
8
  };
9
- export const encodeCredentialType = contramapEncoder(encodeUint16, openEnumNumberEncoder(credentialTypes));
9
+ export const credentialTypeEncoder = contramapBufferEncoder(uint16Encoder, openEnumNumberEncoder(credentialTypes));
10
+ export const encodeCredentialType = encode(credentialTypeEncoder);
10
11
  export const decodeCredentialType = mapDecoderOption(decodeUint16, openEnumNumberToKey(credentialTypes));
11
12
  //# sourceMappingURL=credentialType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentialType.js","sourceRoot":"","sources":["../src/credentialType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAW,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAW,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAElF,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;CACC,CAAA;AAKV,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,YAAY,EACZ,qBAAqB,CAAC,eAAe,CAAC,CACvC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,YAAY,EACZ,mBAAmB,CAAC,eAAe,CAAC,CACrC,CAAA"}
1
+ {"version":3,"file":"credentialType.js","sourceRoot":"","sources":["../src/credentialType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAW,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC9F,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAElF,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;CACC,CAAA;AAKV,MAAM,CAAC,MAAM,qBAAqB,GAAsC,sBAAsB,CAC5F,aAAa,EACb,qBAAqB,CAAC,eAAe,CAAC,CACvC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAgC,MAAM,CAAC,qBAAqB,CAAC,CAAA;AAE9F,MAAM,CAAC,MAAM,oBAAoB,GAAgC,gBAAgB,CAC/E,YAAY,EACZ,mBAAmB,CAAC,eAAe,CAAC,CACrC,CAAA"}
@@ -2,7 +2,7 @@ import { Signature, SignatureAlgorithm } from "./signature.js";
2
2
  import { Hash, HashAlgorithm } from "./hash.js";
3
3
  import { Kdf } from "./kdf.js";
4
4
  import { Hpke, HpkeAlgorithm } from "./hpke.js";
5
- import { Encoder } from "../codec/tlsEncoder.js";
5
+ import { BufferEncoder, Encoder } from "../codec/tlsEncoder.js";
6
6
  import { Decoder } from "../codec/tlsDecoder.js";
7
7
  import { Rng } from "./rng.js";
8
8
  export interface CiphersuiteImpl {
@@ -36,6 +36,7 @@ export declare const ciphersuites: {
36
36
  };
37
37
  export type CiphersuiteName = keyof typeof ciphersuites;
38
38
  export type CiphersuiteId = (typeof ciphersuites)[CiphersuiteName];
39
+ export declare const ciphersuiteEncoder: BufferEncoder<CiphersuiteName>;
39
40
  export declare const encodeCiphersuite: Encoder<CiphersuiteName>;
40
41
  export declare const decodeCiphersuite: Decoder<CiphersuiteName>;
41
42
  export declare function getCiphersuiteNameFromId(id: CiphersuiteId): CiphersuiteName;
@@ -1,5 +1,5 @@
1
- import { contramapEncoder } from "../codec/tlsEncoder.js";
2
- import { decodeUint16, encodeUint16 } from "../codec/number.js";
1
+ import { contramapBufferEncoder, encode } from "../codec/tlsEncoder.js";
2
+ import { decodeUint16, uint16Encoder } from "../codec/number.js";
3
3
  import { mapDecoderOption } from "../codec/tlsDecoder.js";
4
4
  import { openEnumNumberEncoder, openEnumNumberToKey, reverseMap } from "../util/enumHelpers.js";
5
5
  export const ciphersuites = {
@@ -23,7 +23,8 @@ export const ciphersuites = {
23
23
  MLS_256_XWING_AES256GCM_SHA512_MLDSA87: 87,
24
24
  MLS_256_XWING_CHACHA20POLY1305_SHA512_MLDSA87: 88,
25
25
  };
26
- export const encodeCiphersuite = contramapEncoder(encodeUint16, openEnumNumberEncoder(ciphersuites));
26
+ export const ciphersuiteEncoder = contramapBufferEncoder(uint16Encoder, openEnumNumberEncoder(ciphersuites));
27
+ export const encodeCiphersuite = encode(ciphersuiteEncoder);
27
28
  export const decodeCiphersuite = mapDecoderOption(decodeUint16, openEnumNumberToKey(ciphersuites));
28
29
  export function getCiphersuiteNameFromId(id) {
29
30
  return reverseMap(ciphersuites)[id];
@@ -1 +1 @@
1
- {"version":3,"file":"ciphersuite.js","sourceRoot":"","sources":["../../src/crypto/ciphersuite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ciphersuite.js","sourceRoot":"","sources":["../../src/crypto/ciphersuite.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { encodeVarLenData } from "../codec/variableLength.js";
2
- import { concatUint8Arrays } from "../util/byteArray.js";
1
+ import { composeBufferEncoders, encode } from "../codec/tlsEncoder.js";
2
+ import { varLenDataEncoder } from "../codec/variableLength.js";
3
3
  export function refhash(label, value, h) {
4
4
  return h.digest(encodeRefHash(label, value));
5
5
  }
6
6
  function encodeRefHash(label, value) {
7
7
  const labelBytes = new TextEncoder().encode(label);
8
- return concatUint8Arrays(encodeVarLenData(labelBytes), encodeVarLenData(value));
8
+ const enc = composeBufferEncoders([varLenDataEncoder, varLenDataEncoder]);
9
+ return encode(enc)([labelBytes, value]);
9
10
  }
10
11
  //# sourceMappingURL=hash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/crypto/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAUxD,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,KAAiB,EAAE,CAAO;IAC/D,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAiB;IACrD,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClD,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA;AACjF,CAAC"}
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/crypto/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAU9D,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,KAAiB,EAAE,CAAO;IAC/D,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,KAAiB;IACrD,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,GAAG,GAAG,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAA;IACzE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC"}
@@ -1,9 +1,15 @@
1
- import { encodeVarLenData } from "../codec/variableLength.js";
2
- import { concatUint8Arrays } from "../util/byteArray.js";
1
+ import { varLenDataEncoder } from "../codec/variableLength.js";
2
+ import { composeBufferEncoders, encode } from "../codec/tlsEncoder.js";
3
3
  export function encryptWithLabel(publicKey, label, context, plaintext, hpke) {
4
- return hpke.seal(publicKey, plaintext, concatUint8Arrays(encodeVarLenData(new TextEncoder().encode(`MLS 1.0 ${label}`)), encodeVarLenData(context)), new Uint8Array());
4
+ return hpke.seal(publicKey, plaintext, encode(composeBufferEncoders([varLenDataEncoder, varLenDataEncoder]))([
5
+ new TextEncoder().encode(`MLS 1.0 ${label}`),
6
+ context,
7
+ ]), new Uint8Array());
5
8
  }
6
9
  export function decryptWithLabel(privateKey, label, context, kemOutput, ciphertext, hpke) {
7
- return hpke.open(privateKey, kemOutput, ciphertext, concatUint8Arrays(encodeVarLenData(new TextEncoder().encode(`MLS 1.0 ${label}`)), encodeVarLenData(context)));
10
+ return hpke.open(privateKey, kemOutput, ciphertext, encode(composeBufferEncoders([varLenDataEncoder, varLenDataEncoder]))([
11
+ new TextEncoder().encode(`MLS 1.0 ${label}`),
12
+ context,
13
+ ]));
8
14
  }
9
15
  //# sourceMappingURL=hpke.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hpke.js","sourceRoot":"","sources":["../../src/crypto/hpke.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAYxD,MAAM,UAAU,gBAAgB,CAC9B,SAAoB,EACpB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,IAAU;IAEV,OAAO,IAAI,CAAC,IAAI,CACd,SAAS,EACT,SAAS,EACT,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC5G,IAAI,UAAU,EAAE,CACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,UAAsB,EACtB,IAAU;IAEV,OAAO,IAAI,CAAC,IAAI,CACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC7G,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"hpke.js","sourceRoot":"","sources":["../../src/crypto/hpke.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAYtE,MAAM,UAAU,gBAAgB,CAC9B,SAAoB,EACpB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,IAAU;IAEV,OAAO,IAAI,CAAC,IAAI,CACd,SAAS,EACT,SAAS,EACT,MAAM,CAAC,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,EACF,IAAI,UAAU,EAAE,CACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,UAAsB,EACtB,IAAU;IAEV,OAAO,IAAI,CAAC,IAAI,CACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,MAAM,CAAC,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Aes128Gcm, Aes256Gcm } from "@hpke/core";
2
2
  import { DependencyError } from "../../../mlsError.js";
3
- import { bytesToBuffer } from "../../../util/byteArray.js";
3
+ import { toBufferSource } from "../../../util/byteArray.js";
4
4
  export async function makeAead(aeadAlg) {
5
5
  switch (aeadAlg) {
6
6
  case "AES128GCM":
@@ -49,21 +49,21 @@ export async function makeAead(aeadAlg) {
49
49
  }
50
50
  }
51
51
  async function encryptAesGcm(key, nonce, aad, plaintext) {
52
- const cryptoKey = await crypto.subtle.importKey("raw", bytesToBuffer(key), { name: "AES-GCM" }, false, ["encrypt"]);
52
+ const cryptoKey = await crypto.subtle.importKey("raw", toBufferSource(key), { name: "AES-GCM" }, false, ["encrypt"]);
53
53
  const result = await crypto.subtle.encrypt({
54
54
  name: "AES-GCM",
55
- iv: bytesToBuffer(nonce),
56
- additionalData: aad.length > 0 ? bytesToBuffer(aad) : undefined,
57
- }, cryptoKey, bytesToBuffer(plaintext));
55
+ iv: toBufferSource(nonce),
56
+ additionalData: aad.length > 0 ? toBufferSource(aad) : undefined,
57
+ }, cryptoKey, toBufferSource(plaintext));
58
58
  return new Uint8Array(result);
59
59
  }
60
60
  async function decryptAesGcm(key, nonce, aad, ciphertext) {
61
- const cryptoKey = await crypto.subtle.importKey("raw", bytesToBuffer(key), { name: "AES-GCM" }, false, ["decrypt"]);
61
+ const cryptoKey = await crypto.subtle.importKey("raw", toBufferSource(key), { name: "AES-GCM" }, false, ["decrypt"]);
62
62
  const result = await crypto.subtle.decrypt({
63
63
  name: "AES-GCM",
64
- iv: bytesToBuffer(nonce),
65
- additionalData: aad.length > 0 ? bytesToBuffer(aad) : undefined,
66
- }, cryptoKey, bytesToBuffer(ciphertext));
64
+ iv: toBufferSource(nonce),
65
+ additionalData: aad.length > 0 ? toBufferSource(aad) : undefined,
66
+ }, cryptoKey, toBufferSource(ciphertext));
67
67
  return new Uint8Array(result);
68
68
  }
69
69
  //# 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,21 +1,21 @@
1
- import { bytesToBuffer } from "../../../util/byteArray.js";
1
+ import { toBufferSource } from "../../../util/byteArray.js";
2
2
  export function makeHashImpl(sc, h) {
3
3
  return {
4
4
  async digest(data) {
5
- const result = await sc.digest(h, bytesToBuffer(data));
5
+ const result = await sc.digest(h, toBufferSource(data));
6
6
  return new Uint8Array(result);
7
7
  },
8
8
  async mac(key, data) {
9
- const result = await sc.sign("HMAC", await importMacKey(key, h), bytesToBuffer(data));
9
+ const result = await sc.sign("HMAC", await importMacKey(key, h), toBufferSource(data));
10
10
  return new Uint8Array(result);
11
11
  },
12
12
  async verifyMac(key, mac, data) {
13
- return sc.verify("HMAC", await importMacKey(key, h), bytesToBuffer(mac), bytesToBuffer(data));
13
+ return sc.verify("HMAC", await importMacKey(key, h), toBufferSource(mac), toBufferSource(data));
14
14
  },
15
15
  };
16
16
  }
17
17
  function importMacKey(rawKey, h) {
18
- return crypto.subtle.importKey("raw", bytesToBuffer(rawKey), {
18
+ return crypto.subtle.importKey("raw", toBufferSource(rawKey), {
19
19
  name: "HMAC",
20
20
  hash: { name: h },
21
21
  }, false, ["sign", "verify"]);
@@ -1 +1 @@
1
- {"version":3,"file":"makeHashImpl.js","sourceRoot":"","sources":["../../../../src/crypto/implementation/default/makeHashImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,MAAM,UAAU,YAAY,CAAC,EAAgB,EAAE,CAAgB;IAC7D,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,IAAI;YACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;YACtD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI;YACjB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;YACrF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;YAC5B,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/F,CAAC;KACF,CAAA;AACH,CAAC;AACD,SAAS,YAAY,CAAC,MAAkB,EAAE,CAAgB;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,aAAa,CAAC,MAAM,CAAC,EACrB;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;KAClB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"makeHashImpl.js","sourceRoot":"","sources":["../../../../src/crypto/implementation/default/makeHashImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAG3D,MAAM,UAAU,YAAY,CAAC,EAAgB,EAAE,CAAgB;IAC7D,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,IAAI;YACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;YACvD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI;YACjB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;YACtF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;YAC5B,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;QACjG,CAAC;KACF,CAAA;AACH,CAAC;AACD,SAAS,YAAY,CAAC,MAAkB,EAAE,CAAgB;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5B,KAAK,EACL,cAAc,CAAC,MAAM,CAAC,EACtB;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;KAClB,EACD,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;AACH,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { HkdfSha256, HkdfSha384, HkdfSha512 } from "@hpke/core";
2
- import { bytesToBuffer } from "../../../util/byteArray.js";
2
+ import { bytesToArrayBuffer } from "../../../util/byteArray.js";
3
3
  export function makeKdfImpl(k) {
4
4
  return {
5
5
  async extract(salt, ikm) {
6
- const result = await k.extract(bytesToBuffer(salt), bytesToBuffer(ikm));
6
+ const result = await k.extract(bytesToArrayBuffer(salt), bytesToArrayBuffer(ikm));
7
7
  return new Uint8Array(result);
8
8
  },
9
9
  async expand(prk, info, len) {
10
- const result = await k.expand(bytesToBuffer(prk), bytesToBuffer(info), len);
10
+ const result = await k.expand(bytesToArrayBuffer(prk), bytesToArrayBuffer(info), len);
11
11
  return new Uint8Array(result);
12
12
  },
13
13
  size: k.hashSize,
@@ -1 +1 @@
1
- {"version":3,"file":"makeKdfImpl.js","sourceRoot":"","sources":["../../../../src/crypto/implementation/default/makeKdfImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG1D,MAAM,UAAU,WAAW,CAAC,CAAe;IACzC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;YACvE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAe,EAAE,IAAgB,EAAE,GAAW;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC3E,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,QAAQ;KACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAoB;IAC1C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;QACzB,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;QACzB,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;IAC3B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"makeKdfImpl.js","sourceRoot":"","sources":["../../../../src/crypto/implementation/default/makeKdfImpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAG/D,MAAM,UAAU,WAAW,CAAC,CAAe;IACzC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;YACjF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAe,EAAE,IAAgB,EAAE,GAAW;YACzD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YACrF,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,QAAQ;KACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAoB;IAC1C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;QACzB,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;QACzB,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,EAAE,CAAA;IAC3B,CAAC;AACH,CAAC"}
@@ -1,10 +1,10 @@
1
- import { bytesToBuffer, concatUint8Arrays } from "../../util/byteArray.js";
1
+ import { concatUint8Arrays, bytesToArrayBuffer } from "../../util/byteArray.js";
2
2
  import { CryptoError } from "../../mlsError.js";
3
3
  export async function makeGenericHpke(hpkealg, aead, cs) {
4
4
  return {
5
5
  async open(privateKey, kemOutput, ciphertext, info, aad) {
6
6
  try {
7
- const result = await cs.open({ recipientKey: privateKey, enc: bytesToBuffer(kemOutput), info: bytesToBuffer(info) }, bytesToBuffer(ciphertext), aad ? bytesToBuffer(aad) : new ArrayBuffer());
7
+ const result = await cs.open({ recipientKey: privateKey, enc: bytesToArrayBuffer(kemOutput), info: bytesToArrayBuffer(info) }, bytesToArrayBuffer(ciphertext), aad ? bytesToArrayBuffer(aad) : new ArrayBuffer());
8
8
  return new Uint8Array(result);
9
9
  }
10
10
  catch (e) {
@@ -12,27 +12,27 @@ export async function makeGenericHpke(hpkealg, aead, cs) {
12
12
  }
13
13
  },
14
14
  async seal(publicKey, plaintext, info, aad) {
15
- const result = await cs.seal({ recipientPublicKey: publicKey, info: bytesToBuffer(info) }, bytesToBuffer(plaintext), aad ? bytesToBuffer(aad) : new ArrayBuffer());
15
+ const result = await cs.seal({ recipientPublicKey: publicKey, info: bytesToArrayBuffer(info) }, bytesToArrayBuffer(plaintext), aad ? bytesToArrayBuffer(aad) : new ArrayBuffer());
16
16
  return {
17
17
  ct: new Uint8Array(result.ct),
18
18
  enc: new Uint8Array(result.enc),
19
19
  };
20
20
  },
21
21
  async exportSecret(publicKey, exporterContext, length, info) {
22
- const context = await cs.createSenderContext({ recipientPublicKey: publicKey, info: bytesToBuffer(info) });
22
+ const context = await cs.createSenderContext({ recipientPublicKey: publicKey, info: bytesToArrayBuffer(info) });
23
23
  return {
24
24
  enc: new Uint8Array(context.enc),
25
- secret: new Uint8Array(await context.export(bytesToBuffer(exporterContext), length)),
25
+ secret: new Uint8Array(await context.export(bytesToArrayBuffer(exporterContext), length)),
26
26
  };
27
27
  },
28
28
  async importSecret(privateKey, exporterContext, kemOutput, length, info) {
29
29
  try {
30
30
  const context = await cs.createRecipientContext({
31
31
  recipientKey: privateKey,
32
- info: bytesToBuffer(info),
33
- enc: bytesToBuffer(kemOutput),
32
+ info: bytesToArrayBuffer(info),
33
+ enc: bytesToArrayBuffer(kemOutput),
34
34
  });
35
- return new Uint8Array(await context.export(bytesToBuffer(exporterContext), length));
35
+ return new Uint8Array(await context.export(bytesToArrayBuffer(exporterContext), length));
36
36
  }
37
37
  catch (e) {
38
38
  throw new CryptoError(`${e}`);
@@ -42,7 +42,7 @@ export async function makeGenericHpke(hpkealg, aead, cs) {
42
42
  try {
43
43
  // See https://github.com/mlswg/mls-implementations/issues/176#issuecomment-1817043142
44
44
  const key = hpkealg.kem === "DHKEM-P521-HKDF-SHA512" ? prepadPrivateKeyP521(k) : k;
45
- return (await cs.kem.deserializePrivateKey(bytesToBuffer(key)));
45
+ return (await cs.kem.deserializePrivateKey(bytesToArrayBuffer(key)));
46
46
  }
47
47
  catch (e) {
48
48
  throw new CryptoError(`${e}`);
@@ -50,7 +50,7 @@ export async function makeGenericHpke(hpkealg, aead, cs) {
50
50
  },
51
51
  async importPublicKey(k) {
52
52
  try {
53
- return (await cs.kem.deserializePublicKey(bytesToBuffer(k)));
53
+ return (await cs.kem.deserializePublicKey(bytesToArrayBuffer(k)));
54
54
  }
55
55
  catch (e) {
56
56
  throw new CryptoError(`${e}`);
@@ -74,7 +74,7 @@ export async function makeGenericHpke(hpkealg, aead, cs) {
74
74
  }
75
75
  },
76
76
  async deriveKeyPair(ikm) {
77
- const kp = await cs.kem.deriveKeyPair(bytesToBuffer(ikm));
77
+ const kp = await cs.kem.deriveKeyPair(bytesToArrayBuffer(ikm));
78
78
  return { privateKey: kp.privateKey, publicKey: kp.publicKey };
79
79
  },
80
80
  async generateKeyPair() {
@@ -1 +1 @@
1
- {"version":3,"file":"hpke.js","sourceRoot":"","sources":["../../../src/crypto/implementation/hpke.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hpke.js","sourceRoot":"","sources":["../../../src/crypto/implementation/hpke.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,17 @@
1
- import { encodeVarLenData } from "../codec/variableLength.js";
2
- import { encodeUint16, encodeUint32 } from "../codec/number.js";
1
+ import { varLenDataEncoder } from "../codec/variableLength.js";
2
+ import { uint16Encoder, uint32Encoder } from "../codec/number.js";
3
+ import { composeBufferEncoders, encode } from "../codec/tlsEncoder.js";
3
4
  export function expandWithLabel(secret, label, context, length, kdf) {
4
- return kdf.expand(secret, new Uint8Array([
5
- ...encodeUint16(length),
6
- ...encodeVarLenData(new TextEncoder().encode(`MLS 1.0 ${label}`)),
7
- ...encodeVarLenData(context),
5
+ return kdf.expand(secret, encode(composeBufferEncoders([uint16Encoder, varLenDataEncoder, varLenDataEncoder]))([
6
+ length,
7
+ new TextEncoder().encode(`MLS 1.0 ${label}`),
8
+ context,
8
9
  ]), length);
9
10
  }
10
11
  export async function deriveSecret(secret, label, kdf) {
11
12
  return expandWithLabel(secret, label, new Uint8Array(), kdf.size, kdf);
12
13
  }
13
14
  export async function deriveTreeSecret(secret, label, generation, length, kdf) {
14
- return expandWithLabel(secret, label, encodeUint32(generation), length, kdf);
15
+ return expandWithLabel(secret, label, encode(uint32Encoder)(generation), length, kdf);
15
16
  }
16
17
  //# sourceMappingURL=kdf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kdf.js","sourceRoot":"","sources":["../../src/crypto/kdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAU/D,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,KAAa,EACb,OAAmB,EACnB,MAAc,EACd,GAAQ;IAER,OAAO,GAAG,CAAC,MAAM,CACf,MAAM,EACN,IAAI,UAAU,CAAC;QACb,GAAG,YAAY,CAAC,MAAM,CAAC;QACvB,GAAG,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QACjE,GAAG,gBAAgB,CAAC,OAAO,CAAC;KAC7B,CAAC,EACF,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAQ;IAC5E,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,KAAa,EACb,UAAkB,EAClB,MAAc,EACd,GAAQ;IAER,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AAC9E,CAAC"}
1
+ {"version":3,"file":"kdf.js","sourceRoot":"","sources":["../../src/crypto/kdf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAUtE,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,KAAa,EACb,OAAmB,EACnB,MAAc,EACd,GAAQ;IAER,OAAO,GAAG,CAAC,MAAM,CACf,MAAM,EACN,MAAM,CAAC,qBAAqB,CAAC,CAAC,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM;QACN,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,EACF,MAAM,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB,EAAE,KAAa,EAAE,GAAQ;IAC5E,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,KAAa,EACb,UAAkB,EAClB,MAAc,EACd,GAAQ;IAER,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AACvF,CAAC"}
@@ -1,9 +1,15 @@
1
- import { encodeVarLenData } from "../codec/variableLength.js";
2
- import { concatUint8Arrays } from "../util/byteArray.js";
1
+ import { composeBufferEncoders, encode } from "../codec/tlsEncoder.js";
2
+ import { varLenDataEncoder } from "../codec/variableLength.js";
3
3
  export async function signWithLabel(signKey, label, content, s) {
4
- return s.sign(signKey, concatUint8Arrays(encodeVarLenData(new TextEncoder().encode(`MLS 1.0 ${label}`)), encodeVarLenData(content)));
4
+ return s.sign(signKey, encode(composeBufferEncoders([varLenDataEncoder, varLenDataEncoder]))([
5
+ new TextEncoder().encode(`MLS 1.0 ${label}`),
6
+ content,
7
+ ]));
5
8
  }
6
9
  export async function verifyWithLabel(publicKey, label, content, signature, s) {
7
- return s.verify(publicKey, concatUint8Arrays(encodeVarLenData(new TextEncoder().encode(`MLS 1.0 ${label}`)), encodeVarLenData(content)), signature);
10
+ return s.verify(publicKey, encode(composeBufferEncoders([varLenDataEncoder, varLenDataEncoder]))([
11
+ new TextEncoder().encode(`MLS 1.0 ${label}`),
12
+ content,
13
+ ]), signature);
8
14
  }
9
15
  //# sourceMappingURL=signature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/crypto/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAUxD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAmB,EACnB,KAAa,EACb,OAAmB,EACnB,CAAY;IAEZ,OAAO,CAAC,CAAC,IAAI,CACX,OAAO,EACP,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC7G,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAqB,EACrB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,CAAY;IAEZ,OAAO,CAAC,CAAC,MAAM,CACb,SAAS,EACT,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC5G,SAAS,CACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/crypto/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAU9D,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAmB,EACnB,KAAa,EACb,OAAmB,EACnB,CAAY;IAEZ,OAAO,CAAC,CAAC,IAAI,CACX,OAAO,EACP,MAAM,CAAC,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAqB,EACrB,KAAa,EACb,OAAmB,EACnB,SAAqB,EACrB,CAAY;IAEZ,OAAO,CAAC,CAAC,MAAM,CACb,SAAS,EACT,MAAM,CAAC,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,EACF,SAAS,CACV,CAAA;AACH,CAAC"}
@@ -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
  export declare const defaultExtensionTypes: {
4
4
  readonly application_id: 1;
5
5
  readonly ratchet_tree: 2;
@@ -9,5 +9,6 @@ export declare const defaultExtensionTypes: {
9
9
  };
10
10
  export type DefaultExtensionTypeName = keyof typeof defaultExtensionTypes;
11
11
  export type DefaultExtensionTypeValue = (typeof defaultExtensionTypes)[DefaultExtensionTypeName];
12
+ export declare const defaultExtensionTypeEncoder: BufferEncoder<DefaultExtensionTypeName>;
12
13
  export declare const encodeDefaultExtensionType: Encoder<DefaultExtensionTypeName>;
13
14
  export declare const decodeDefaultExtensionType: Decoder<DefaultExtensionTypeName>;
@@ -1,6 +1,6 @@
1
- import { decodeUint16, encodeUint16 } from "./codec/number.js";
1
+ import { decodeUint16, uint16Encoder } 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
  export const defaultExtensionTypes = {
6
6
  application_id: 1,
@@ -9,6 +9,7 @@ export const defaultExtensionTypes = {
9
9
  external_pub: 4,
10
10
  external_senders: 5,
11
11
  };
12
- export const encodeDefaultExtensionType = contramapEncoder(encodeUint16, (n) => defaultExtensionTypes[n]);
12
+ export const defaultExtensionTypeEncoder = contramapBufferEncoder(uint16Encoder, (n) => defaultExtensionTypes[n]);
13
+ export const encodeDefaultExtensionType = encode(defaultExtensionTypeEncoder);
13
14
  export const decodeDefaultExtensionType = mapDecoderOption(decodeUint16, enumNumberToKey(defaultExtensionTypes));
14
15
  //# sourceMappingURL=defaultExtensionType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultExtensionType.js","sourceRoot":"","sources":["../src/defaultExtensionType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9D,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,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,qBAAqB,EAAE,CAAC;IACxB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;CACX,CAAA;AAKV,MAAM,CAAC,MAAM,0BAA0B,GAAsC,gBAAgB,CAC3F,YAAY,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAChC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAsC,gBAAgB,CAC3F,YAAY,EACZ,eAAe,CAAC,qBAAqB,CAAC,CACvC,CAAA"}
1
+ {"version":3,"file":"defaultExtensionType.js","sourceRoot":"","sources":["../src/defaultExtensionType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,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,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,qBAAqB,EAAE,CAAC;IACxB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,CAAC;CACX,CAAA;AAKV,MAAM,CAAC,MAAM,2BAA2B,GAA4C,sBAAsB,CACxG,aAAa,EACb,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAChC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAsC,MAAM,CAAC,2BAA2B,CAAC,CAAA;AAEhH,MAAM,CAAC,MAAM,0BAA0B,GAAsC,gBAAgB,CAC3F,YAAY,EACZ,eAAe,CAAC,qBAAqB,CAAC,CACvC,CAAA"}
@@ -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
  export declare const defaultProposalTypes: {
4
4
  readonly add: 1;
5
5
  readonly update: 2;
@@ -11,5 +11,6 @@ export declare const defaultProposalTypes: {
11
11
  };
12
12
  export type DefaultProposalTypeName = keyof typeof defaultProposalTypes;
13
13
  export type DefaultProposalTypeValue = (typeof defaultProposalTypes)[DefaultProposalTypeName];
14
+ export declare const defaultProposalTypeEncoder: BufferEncoder<DefaultProposalTypeName>;
14
15
  export declare const encodeDefaultProposalType: Encoder<DefaultProposalTypeName>;
15
16
  export declare const decodeDefaultProposalType: Decoder<DefaultProposalTypeName>;
@@ -1,6 +1,6 @@
1
- import { decodeUint16, encodeUint16 } from "./codec/number.js";
1
+ import { decodeUint16, uint16Encoder } 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
  export const defaultProposalTypes = {
6
6
  add: 1,
@@ -11,6 +11,7 @@ export const defaultProposalTypes = {
11
11
  external_init: 6,
12
12
  group_context_extensions: 7,
13
13
  };
14
- export const encodeDefaultProposalType = contramapEncoder(encodeUint16, (n) => defaultProposalTypes[n]);
14
+ export const defaultProposalTypeEncoder = contramapBufferEncoder(uint16Encoder, (n) => defaultProposalTypes[n]);
15
+ export const encodeDefaultProposalType = encode(defaultProposalTypeEncoder);
15
16
  export const decodeDefaultProposalType = mapDecoderOption(decodeUint16, enumNumberToKey(defaultProposalTypes));
16
17
  //# sourceMappingURL=defaultProposalType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProposalType.js","sourceRoot":"","sources":["../src/defaultProposalType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9D,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,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,wBAAwB,EAAE,CAAC;CACnB,CAAA;AAKV,MAAM,CAAC,MAAM,yBAAyB,GAAqC,gBAAgB,CACzF,YAAY,EACZ,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAqC,gBAAgB,CACzF,YAAY,EACZ,eAAe,CAAC,oBAAoB,CAAC,CACtC,CAAA"}
1
+ {"version":3,"file":"defaultProposalType.js","sourceRoot":"","sources":["../src/defaultProposalType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,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,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,wBAAwB,EAAE,CAAC;CACnB,CAAA;AAKV,MAAM,CAAC,MAAM,0BAA0B,GAA2C,sBAAsB,CACtG,aAAa,EACb,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAqC,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAE7G,MAAM,CAAC,MAAM,yBAAyB,GAAqC,gBAAgB,CACzF,YAAY,EACZ,eAAe,CAAC,oBAAoB,CAAC,CACtC,CAAA"}
@@ -1,13 +1,15 @@
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 { DefaultExtensionTypeName } from "./defaultExtensionType.js";
4
4
  export type ExtensionType = DefaultExtensionTypeName | number;
5
+ export declare const extensionTypeEncoder: BufferEncoder<ExtensionType>;
5
6
  export declare const encodeExtensionType: Encoder<ExtensionType>;
6
7
  export declare const decodeExtensionType: Decoder<ExtensionType>;
7
8
  export interface Extension {
8
9
  extensionType: ExtensionType;
9
10
  extensionData: Uint8Array;
10
11
  }
12
+ export declare const extensionEncoder: BufferEncoder<Extension>;
11
13
  export declare const encodeExtension: Encoder<Extension>;
12
14
  export declare const decodeExtension: Decoder<Extension>;
13
15
  export declare function extensionEqual(a: Extension, b: Extension): boolean;
package/dist/extension.js CHANGED
@@ -1,12 +1,14 @@
1
- import { decodeUint16, encodeUint16 } from "./codec/number.js";
1
+ import { decodeUint16, uint16Encoder } from "./codec/number.js";
2
2
  import { mapDecoders, orDecoder } from "./codec/tlsDecoder.js";
3
- import { contramapEncoders } from "./codec/tlsEncoder.js";
4
- import { decodeVarLenData, encodeVarLenData } from "./codec/variableLength.js";
5
- import { decodeDefaultExtensionType, encodeDefaultExtensionType, defaultExtensionTypes, } from "./defaultExtensionType.js";
3
+ import { contramapBufferEncoders, encode } from "./codec/tlsEncoder.js";
4
+ import { decodeVarLenData, varLenDataEncoder } from "./codec/variableLength.js";
5
+ import { decodeDefaultExtensionType, defaultExtensionTypeEncoder, defaultExtensionTypes, } from "./defaultExtensionType.js";
6
6
  import { constantTimeEqual } from "./util/constantTimeCompare.js";
7
- export const encodeExtensionType = (t) => typeof t === "number" ? encodeUint16(t) : encodeDefaultExtensionType(t);
7
+ export const extensionTypeEncoder = (t) => typeof t === "number" ? uint16Encoder(t) : defaultExtensionTypeEncoder(t);
8
+ export const encodeExtensionType = encode(extensionTypeEncoder);
8
9
  export const decodeExtensionType = orDecoder(decodeDefaultExtensionType, decodeUint16);
9
- export const encodeExtension = contramapEncoders([encodeExtensionType, encodeVarLenData], (e) => [e.extensionType, e.extensionData]);
10
+ export const extensionEncoder = contramapBufferEncoders([extensionTypeEncoder, varLenDataEncoder], (e) => [e.extensionType, e.extensionData]);
11
+ export const encodeExtension = encode(extensionEncoder);
10
12
  export const decodeExtension = mapDecoders([decodeExtensionType, decodeVarLenData], (extensionType, extensionData) => ({ extensionType, extensionData }));
11
13
  export function extensionEqual(a, b) {
12
14
  return a.extensionType === b.extensionType && constantTimeEqual(a.extensionData, b.extensionData);
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAW,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAE1B,qBAAqB,GACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAIjE,MAAM,CAAC,MAAM,mBAAmB,GAA2B,CAAC,CAAC,EAAE,EAAE,CAC/D,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAA2B,SAAS,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAA;AAO9G,MAAM,CAAC,MAAM,eAAe,GAAuB,iBAAiB,CAClE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAU,CACnD,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAuB,WAAW,CAC5D,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACvC,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CACrE,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,CAAY,EAAE,CAAY;IACvD,OAAO,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,CAAA;AACnG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAc,EAAE,CAAc;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,kBAA+B,EAC/B,YAAsC;IAEtC,OAAO,kBAAkB;SACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;SACrD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAgB;IAC1C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAgB;IACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAW,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAE3B,qBAAqB,GACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAIjE,MAAM,CAAC,MAAM,oBAAoB,GAAiC,CAAC,CAAC,EAAE,EAAE,CACtE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAA2B,MAAM,CAAC,oBAAoB,CAAC,CAAA;AAEvF,MAAM,CAAC,MAAM,mBAAmB,GAA2B,SAAS,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAA;AAO9G,MAAM,CAAC,MAAM,gBAAgB,GAA6B,uBAAuB,CAC/E,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,EACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAU,CACnD,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAuB,MAAM,CAAC,gBAAgB,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAuB,WAAW,CAC5D,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACvC,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CACrE,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,CAAY,EAAE,CAAY;IACvD,OAAO,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,CAAA;AACnG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAc,EAAE,CAAc;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,kBAA+B,EAC/B,YAAsC;IAEtC,OAAO,kBAAkB;SACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;SACrD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAgB;IAC1C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAgB;IACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC"}
@@ -1,9 +1,10 @@
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 { Credential } from "./credential.js";
4
4
  export interface ExternalSender {
5
5
  signaturePublicKey: Uint8Array;
6
6
  credential: Credential;
7
7
  }
8
+ export declare const externalSenderEncoder: BufferEncoder<ExternalSender>;
8
9
  export declare const encodeExternalSender: Encoder<ExternalSender>;
9
10
  export declare const decodeExternalSender: Decoder<ExternalSender>;