ts-mls 1.5.0 → 1.6.0

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 (176) hide show
  1. package/README.md +24 -14
  2. package/dist/src/authenticationService.d.ts +2 -0
  3. package/dist/src/authenticationService.js +1 -0
  4. package/dist/src/authenticationService.js.map +1 -1
  5. package/dist/src/capabilities.d.ts +1 -0
  6. package/dist/src/capabilities.js.map +1 -1
  7. package/dist/src/clientConfig.d.ts +1 -0
  8. package/dist/src/clientConfig.js.map +1 -1
  9. package/dist/src/clientState.d.ts +15 -1
  10. package/dist/src/clientState.js +95 -7
  11. package/dist/src/clientState.js.map +1 -1
  12. package/dist/src/codec/tlsDecoder.d.ts +1 -0
  13. package/dist/src/codec/tlsDecoder.js.map +1 -1
  14. package/dist/src/codec/tlsEncoder.d.ts +1 -0
  15. package/dist/src/codec/tlsEncoder.js.map +1 -1
  16. package/dist/src/commit.d.ts +1 -0
  17. package/dist/src/commit.js.map +1 -1
  18. package/dist/src/contentType.d.ts +3 -2
  19. package/dist/src/contentType.js +2 -1
  20. package/dist/src/contentType.js.map +1 -1
  21. package/dist/src/createCommit.d.ts +10 -1
  22. package/dist/src/createCommit.js +25 -8
  23. package/dist/src/createCommit.js.map +1 -1
  24. package/dist/src/createMessage.d.ts +4 -0
  25. package/dist/src/createMessage.js +9 -1
  26. package/dist/src/createMessage.js.map +1 -1
  27. package/dist/src/credential.d.ts +4 -0
  28. package/dist/src/credential.js.map +1 -1
  29. package/dist/src/credentialType.d.ts +3 -2
  30. package/dist/src/credentialType.js +2 -1
  31. package/dist/src/credentialType.js.map +1 -1
  32. package/dist/src/crypto/aead.d.ts +1 -0
  33. package/dist/src/crypto/ciphersuite.d.ts +5 -0
  34. package/dist/src/crypto/ciphersuite.js +2 -0
  35. package/dist/src/crypto/ciphersuite.js.map +1 -1
  36. package/dist/src/crypto/getCiphersuiteImpl.d.ts +1 -0
  37. package/dist/src/crypto/getCiphersuiteImpl.js +1 -0
  38. package/dist/src/crypto/getCiphersuiteImpl.js.map +1 -1
  39. package/dist/src/crypto/hash.d.ts +2 -0
  40. package/dist/src/crypto/hash.js.map +1 -1
  41. package/dist/src/crypto/hpke.d.ts +4 -0
  42. package/dist/src/crypto/hpke.js.map +1 -1
  43. package/dist/src/crypto/implementation/default/makeNobleSignatureImpl.js +35 -1
  44. package/dist/src/crypto/implementation/default/makeNobleSignatureImpl.js.map +1 -1
  45. package/dist/src/crypto/implementation/default/provider.d.ts +1 -0
  46. package/dist/src/crypto/implementation/default/provider.js +1 -0
  47. package/dist/src/crypto/implementation/default/provider.js.map +1 -1
  48. package/dist/src/crypto/implementation/noble/provider.d.ts +1 -0
  49. package/dist/src/crypto/implementation/noble/provider.js +1 -0
  50. package/dist/src/crypto/implementation/noble/provider.js.map +1 -1
  51. package/dist/src/crypto/kdf.d.ts +2 -0
  52. package/dist/src/crypto/kdf.js.map +1 -1
  53. package/dist/src/crypto/kem.d.ts +1 -0
  54. package/dist/src/crypto/provider.d.ts +1 -0
  55. package/dist/src/crypto/rng.d.ts +1 -0
  56. package/dist/src/crypto/signature.d.ts +2 -0
  57. package/dist/src/crypto/signature.js.map +1 -1
  58. package/dist/src/defaultCapabilities.d.ts +1 -0
  59. package/dist/src/defaultCapabilities.js +1 -0
  60. package/dist/src/defaultCapabilities.js.map +1 -1
  61. package/dist/src/defaultExtensionType.d.ts +2 -0
  62. package/dist/src/defaultExtensionType.js +1 -0
  63. package/dist/src/defaultExtensionType.js.map +1 -1
  64. package/dist/src/defaultProposalType.d.ts +2 -0
  65. package/dist/src/defaultProposalType.js +1 -0
  66. package/dist/src/defaultProposalType.js.map +1 -1
  67. package/dist/src/epochReceiverData.d.ts +2 -0
  68. package/dist/src/epochReceiverData.js.map +1 -1
  69. package/dist/src/extension.d.ts +2 -0
  70. package/dist/src/extension.js.map +1 -1
  71. package/dist/src/externalProposal.d.ts +2 -0
  72. package/dist/src/externalProposal.js +2 -0
  73. package/dist/src/externalProposal.js.map +1 -1
  74. package/dist/src/externalSender.d.ts +3 -0
  75. package/dist/src/externalSender.js +2 -0
  76. package/dist/src/externalSender.js.map +1 -1
  77. package/dist/src/framedContent.d.ts +13 -2
  78. package/dist/src/framedContent.js.map +1 -1
  79. package/dist/src/groupActiveState.d.ts +1 -0
  80. package/dist/src/groupActiveState.js.map +1 -1
  81. package/dist/src/groupContext.d.ts +1 -0
  82. package/dist/src/groupContext.js.map +1 -1
  83. package/dist/src/groupInfo.d.ts +2 -0
  84. package/dist/src/groupInfo.js.map +1 -1
  85. package/dist/src/hpkeCiphertext.d.ts +1 -0
  86. package/dist/src/hpkeCiphertext.js.map +1 -1
  87. package/dist/src/incomingMessageAction.d.ts +5 -0
  88. package/dist/src/incomingMessageAction.js +1 -0
  89. package/dist/src/incomingMessageAction.js.map +1 -1
  90. package/dist/src/index.d.ts +61 -1
  91. package/dist/src/index.js +6 -0
  92. package/dist/src/index.js.map +1 -1
  93. package/dist/src/keyPackage.d.ts +6 -2
  94. package/dist/src/keyPackage.js +2 -0
  95. package/dist/src/keyPackage.js.map +1 -1
  96. package/dist/src/keyPackageEqualityConfig.d.ts +2 -0
  97. package/dist/src/keyPackageEqualityConfig.js +1 -0
  98. package/dist/src/keyPackageEqualityConfig.js.map +1 -1
  99. package/dist/src/keyRetentionConfig.d.ts +2 -0
  100. package/dist/src/keyRetentionConfig.js +1 -0
  101. package/dist/src/keyRetentionConfig.js.map +1 -1
  102. package/dist/src/keySchedule.d.ts +5 -4
  103. package/dist/src/keySchedule.js +10 -11
  104. package/dist/src/keySchedule.js.map +1 -1
  105. package/dist/src/leafNode.d.ts +9 -5
  106. package/dist/src/leafNode.js.map +1 -1
  107. package/dist/src/lifetime.d.ts +2 -0
  108. package/dist/src/lifetime.js +1 -0
  109. package/dist/src/lifetime.js.map +1 -1
  110. package/dist/src/lifetimeConfig.d.ts +2 -0
  111. package/dist/src/lifetimeConfig.js +1 -0
  112. package/dist/src/lifetimeConfig.js.map +1 -1
  113. package/dist/src/message.d.ts +10 -0
  114. package/dist/src/message.js +2 -0
  115. package/dist/src/message.js.map +1 -1
  116. package/dist/src/messageProtection.d.ts +5 -4
  117. package/dist/src/messageProtection.js +8 -7
  118. package/dist/src/messageProtection.js.map +1 -1
  119. package/dist/src/paddingConfig.d.ts +2 -0
  120. package/dist/src/paddingConfig.js +1 -0
  121. package/dist/src/paddingConfig.js.map +1 -1
  122. package/dist/src/parentNode.d.ts +1 -0
  123. package/dist/src/parentNode.js.map +1 -1
  124. package/dist/src/presharedkey.d.ts +9 -2
  125. package/dist/src/presharedkey.js +2 -1
  126. package/dist/src/presharedkey.js.map +1 -1
  127. package/dist/src/privateKeyPath.d.ts +1 -0
  128. package/dist/src/privateKeyPath.js.map +1 -1
  129. package/dist/src/privateMessage.d.ts +1 -0
  130. package/dist/src/privateMessage.js.map +1 -1
  131. package/dist/src/processMessages.d.ts +9 -0
  132. package/dist/src/processMessages.js +33 -7
  133. package/dist/src/processMessages.js.map +1 -1
  134. package/dist/src/proposal.d.ts +16 -0
  135. package/dist/src/proposal.js.map +1 -1
  136. package/dist/src/proposalOrRefType.d.ts +3 -0
  137. package/dist/src/proposalOrRefType.js.map +1 -1
  138. package/dist/src/protocolVersion.d.ts +2 -0
  139. package/dist/src/protocolVersion.js +1 -0
  140. package/dist/src/protocolVersion.js.map +1 -1
  141. package/dist/src/pskIndex.d.ts +2 -0
  142. package/dist/src/pskIndex.js +1 -0
  143. package/dist/src/pskIndex.js.map +1 -1
  144. package/dist/src/publicMessage.d.ts +7 -4
  145. package/dist/src/publicMessage.js.map +1 -1
  146. package/dist/src/ratchetTree.d.ts +6 -3
  147. package/dist/src/ratchetTree.js.map +1 -1
  148. package/dist/src/requiredCapabilities.d.ts +3 -0
  149. package/dist/src/requiredCapabilities.js +2 -0
  150. package/dist/src/requiredCapabilities.js.map +1 -1
  151. package/dist/src/resumption.d.ts +5 -0
  152. package/dist/src/resumption.js +5 -0
  153. package/dist/src/resumption.js.map +1 -1
  154. package/dist/src/secretTree.d.ts +6 -1
  155. package/dist/src/secretTree.js +50 -19
  156. package/dist/src/secretTree.js.map +1 -1
  157. package/dist/src/sender.d.ts +9 -2
  158. package/dist/src/sender.js +2 -1
  159. package/dist/src/sender.js.map +1 -1
  160. package/dist/src/treemath.d.ts +4 -0
  161. package/dist/src/treemath.js +2 -0
  162. package/dist/src/treemath.js.map +1 -1
  163. package/dist/src/unappliedProposals.d.ts +2 -0
  164. package/dist/src/unappliedProposals.js.map +1 -1
  165. package/dist/src/updatePath.d.ts +2 -0
  166. package/dist/src/updatePath.js.map +1 -1
  167. package/dist/src/util/brand.d.ts +1 -0
  168. package/dist/src/util/byteArray.d.ts +3 -0
  169. package/dist/src/util/byteArray.js +8 -0
  170. package/dist/src/util/byteArray.js.map +1 -1
  171. package/dist/src/welcome.d.ts +2 -0
  172. package/dist/src/welcome.js.map +1 -1
  173. package/package.json +9 -5
  174. package/dist/src/util/repeat.d.ts +0 -1
  175. package/dist/src/util/repeat.js +0 -8
  176. package/dist/src/util/repeat.js.map +0 -1
package/dist/src/index.js CHANGED
@@ -12,6 +12,7 @@ export { generateKeyPackage, generateKeyPackageWithKey } from "./keyPackage.js";
12
12
  export { defaultKeyRetentionConfig } from "./keyRetentionConfig.js";
13
13
  export { createGroup, makePskIndex, joinGroup, joinGroupWithExtensions, decodeGroupState, encodeGroupState, } from "./clientState.js";
14
14
  export { createApplicationMessage, createProposal } from "./createMessage.js";
15
+ export { zeroOutUint8Array } from "./util/byteArray.js";
15
16
  export { joinGroupExternal, createCommit, createGroupInfoWithExternalPub, createGroupInfoWithExternalPubAndRatchetTree, } from "./createCommit.js";
16
17
  export { processPrivateMessage, processMessage, processPublicMessage, } from "./processMessages.js";
17
18
  export { emptyPskIndex } from "./pskIndex.js";
@@ -25,4 +26,9 @@ export { bytesToBase64 } from "./util/byteArray.js";
25
26
  export { decodeMlsMessage, encodeMlsMessage, } from "./message.js";
26
27
  export { defaultLifetime } from "./lifetime.js";
27
28
  export { defaultCapabilities } from "./defaultCapabilities.js";
29
+ export { contentTypes } from "./contentType.js";
30
+ export { credentialTypes } from "./credentialType.js";
31
+ export { protocolVersions } from "./protocolVersion.js";
32
+ export { senderTypes, } from "./sender.js";
33
+ export { resumptionPSKUsages } from "./presharedkey.js";
28
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAgC,MAAM,0BAA0B,CAAA;AAE7F,OAAO,EAAE,qBAAqB,EAAiC,MAAM,2BAA2B,CAAA;AAMhG,OAAO,EAAE,SAAS,EAA4D,MAAM,4BAA4B,CAAA;AAEhH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI3E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAA;AAErG,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAE3B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAA8B,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAErG,OAAO,EAAsB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EAAE,+BAA+B,EAAiC,MAAM,+BAA+B,CAAA;AAE9G,OAAO,EAAuB,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,OAAO,EAA2C,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAA2B,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAE5F,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,8BAA8B,EAC9B,4CAA4C,GAE7C,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GAErB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAiB,aAAa,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AAUxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAIL,YAAY,EACZ,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAMjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAiB,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAgC,MAAM,0BAA0B,CAAA;AAE7F,OAAO,EAAE,qBAAqB,EAAiC,MAAM,2BAA2B,CAAA;AAMhG,OAAO,EAAE,SAAS,EAA4D,MAAM,4BAA4B,CAAA;AAEhH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI3E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAuB,MAAM,qBAAqB,CAAA;AAErG,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAE3B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAA8B,4BAA4B,EAAE,MAAM,4BAA4B,CAAA;AAErG,OAAO,EAAsB,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EAAE,+BAA+B,EAAiC,MAAM,+BAA+B,CAAA;AAE9G,OAAO,EAAuB,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,OAAO,EAA2C,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAA2B,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAE5F,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAMvD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,8BAA8B,EAC9B,4CAA4C,GAE7C,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GAErB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAiB,aAAa,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,iBAAiB,CAAA;AAYxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAIL,YAAY,EACZ,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAMhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAMjB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAiB,eAAe,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AA0F9D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EACL,WAAW,GAOZ,MAAM,aAAa,CAAA;AAcpB,OAAO,EAAE,mBAAmB,EAA+B,MAAM,mBAAmB,CAAA"}
@@ -9,7 +9,8 @@ import { LeafNodeKeyPackage } from "./leafNode.js";
9
9
  import { Capabilities } from "./capabilities.js";
10
10
  import { Lifetime } from "./lifetime.js";
11
11
  import { Credential } from "./credential.js";
12
- type KeyPackageTBS = {
12
+ /** @public */
13
+ export type KeyPackageTBS = {
13
14
  version: ProtocolVersionName;
14
15
  cipherSuite: CiphersuiteName;
15
16
  initKey: Uint8Array;
@@ -19,6 +20,7 @@ type KeyPackageTBS = {
19
20
  export declare const keyPackageTBSEncoder: BufferEncoder<KeyPackageTBS>;
20
21
  export declare const encodeKeyPackageTBS: Encoder<KeyPackageTBS>;
21
22
  export declare const decodeKeyPackageTBS: Decoder<KeyPackageTBS>;
23
+ /** @public */
22
24
  export type KeyPackage = KeyPackageTBS & {
23
25
  signature: Uint8Array;
24
26
  };
@@ -28,11 +30,13 @@ export declare const decodeKeyPackage: Decoder<KeyPackage>;
28
30
  export declare function signKeyPackage(tbs: KeyPackageTBS, signKey: Uint8Array, s: Signature): Promise<KeyPackage>;
29
31
  export declare function verifyKeyPackage(kp: KeyPackage, s: Signature): Promise<boolean>;
30
32
  export declare function makeKeyPackageRef(value: KeyPackage, h: Hash): Promise<Uint8Array>;
33
+ /** @public */
31
34
  export interface PrivateKeyPackage {
32
35
  initPrivateKey: Uint8Array;
33
36
  hpkePrivateKey: Uint8Array;
34
37
  signaturePrivateKey: Uint8Array;
35
38
  }
39
+ /** @public */
36
40
  export declare function generateKeyPackageWithKey(credential: Credential, capabilities: Capabilities, lifetime: Lifetime, extensions: Extension[], signatureKeyPair: {
37
41
  signKey: Uint8Array;
38
42
  publicKey: Uint8Array;
@@ -40,8 +44,8 @@ export declare function generateKeyPackageWithKey(credential: Credential, capabi
40
44
  publicPackage: KeyPackage;
41
45
  privatePackage: PrivateKeyPackage;
42
46
  }>;
47
+ /** @public */
43
48
  export declare function generateKeyPackage(credential: Credential, capabilities: Capabilities, lifetime: Lifetime, extensions: Extension[], cs: CiphersuiteImpl, leafNodeExtensions?: Extension[]): Promise<{
44
49
  publicPackage: KeyPackage;
45
50
  privatePackage: PrivateKeyPackage;
46
51
  }>;
47
- export {};
@@ -43,6 +43,7 @@ export async function verifyKeyPackage(kp, s) {
43
43
  export function makeKeyPackageRef(value, h) {
44
44
  return refhash("MLS 1.0 KeyPackage Reference", encode(keyPackageEncoder)(value), h);
45
45
  }
46
+ /** @public */
46
47
  export async function generateKeyPackageWithKey(credential, capabilities, lifetime, extensions, signatureKeyPair, cs, leafNodeExtensions) {
47
48
  const initKeys = await cs.hpke.generateKeyPair();
48
49
  const hpkeKeys = await cs.hpke.generateKeyPair();
@@ -69,6 +70,7 @@ export async function generateKeyPackageWithKey(credential, capabilities, lifeti
69
70
  };
70
71
  return { publicPackage: await signKeyPackage(tbs, signatureKeyPair.signKey, cs.signature), privatePackage };
71
72
  }
73
+ /** @public */
72
74
  export async function generateKeyPackage(credential, capabilities, lifetime, extensions, cs, leafNodeExtensions) {
73
75
  const sigKeys = await cs.signature.keygen();
74
76
  return generateKeyPackageWithKey(credential, capabilities, lifetime, extensions, sigKeys, cs, leafNodeExtensions);
@@ -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":"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"}
@@ -1,7 +1,9 @@
1
1
  import { KeyPackage } from "./keyPackage.js";
2
2
  import { LeafNode } from "./leafNode.js";
3
+ /** @public */
3
4
  export interface KeyPackageEqualityConfig {
4
5
  compareKeyPackages(a: KeyPackage, b: KeyPackage): boolean;
5
6
  compareKeyPackageToLeafNode(a: KeyPackage, b: LeafNode): boolean;
6
7
  }
8
+ /** @public */
7
9
  export declare const defaultKeyPackageEqualityConfig: KeyPackageEqualityConfig;
@@ -1,4 +1,5 @@
1
1
  import { constantTimeEqual } from "./util/constantTimeCompare.js";
2
+ /** @public */
2
3
  export const defaultKeyPackageEqualityConfig = {
3
4
  compareKeyPackages(a, b) {
4
5
  return constantTimeEqual(a.leafNode.signaturePublicKey, b.leafNode.signaturePublicKey);
@@ -1 +1 @@
1
- {"version":3,"file":"keyPackageEqualityConfig.js","sourceRoot":"","sources":["../../src/keyPackageEqualityConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAOjE,MAAM,CAAC,MAAM,+BAA+B,GAA6B;IACvE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACxF,CAAC;IACD,2BAA2B,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC/E,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"keyPackageEqualityConfig.js","sourceRoot":"","sources":["../../src/keyPackageEqualityConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAQjE,cAAc;AACd,MAAM,CAAC,MAAM,+BAA+B,GAA6B;IACvE,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IACxF,CAAC;IACD,2BAA2B,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC/E,CAAC;CACF,CAAA"}
@@ -1,6 +1,8 @@
1
+ /** @public */
1
2
  export interface KeyRetentionConfig {
2
3
  retainKeysForGenerations: number;
3
4
  retainKeysForEpochs: number;
4
5
  maximumForwardRatchetSteps: number;
5
6
  }
7
+ /** @public */
6
8
  export declare const defaultKeyRetentionConfig: KeyRetentionConfig;
@@ -1,3 +1,4 @@
1
+ /** @public */
1
2
  export const defaultKeyRetentionConfig = {
2
3
  retainKeysForGenerations: 10,
3
4
  retainKeysForEpochs: 4,
@@ -1 +1 @@
1
- {"version":3,"file":"keyRetentionConfig.js","sourceRoot":"","sources":["../../src/keyRetentionConfig.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAuB;IAC3D,wBAAwB,EAAE,EAAE;IAC5B,mBAAmB,EAAE,CAAC;IACtB,0BAA0B,EAAE,GAAG;CAChC,CAAA"}
1
+ {"version":3,"file":"keyRetentionConfig.js","sourceRoot":"","sources":["../../src/keyRetentionConfig.ts"],"names":[],"mappings":"AAOA,cAAc;AACd,MAAM,CAAC,MAAM,yBAAyB,GAAuB;IAC3D,wBAAwB,EAAE,EAAE;IAC5B,mBAAmB,EAAE,CAAC;IACtB,0BAA0B,EAAE,GAAG;CAChC,CAAA"}
@@ -3,10 +3,9 @@ import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
3
3
  import { CiphersuiteImpl } from "./crypto/ciphersuite.js";
4
4
  import { Kdf } from "./crypto/kdf.js";
5
5
  import { GroupContext } from "./groupContext.js";
6
+ /** @public */
6
7
  export interface KeySchedule {
7
- epochSecret: Uint8Array;
8
8
  senderDataSecret: Uint8Array;
9
- encryptionSecret: Uint8Array;
10
9
  exporterSecret: Uint8Array;
11
10
  externalSecret: Uint8Array;
12
11
  confirmationKey: Uint8Array;
@@ -22,8 +21,10 @@ export interface EpochSecrets {
22
21
  keySchedule: KeySchedule;
23
22
  joinerSecret: Uint8Array;
24
23
  welcomeSecret: Uint8Array;
24
+ encryptionSecret: Uint8Array;
25
25
  }
26
- export declare function mlsExporter(exporterSecret: Uint8Array, label: string, context: Uint8Array, length: number, cs: CiphersuiteImpl): Promise<Uint8Array<ArrayBufferLike>>;
27
- export declare function deriveKeySchedule(joinerSecret: Uint8Array, pskSecret: Uint8Array, groupContext: GroupContext, kdf: Kdf): Promise<KeySchedule>;
26
+ /** @public */
27
+ export declare function mlsExporter(exporterSecret: Uint8Array, label: string, context: Uint8Array, length: number, cs: CiphersuiteImpl): Promise<Uint8Array>;
28
+ export declare function deriveKeySchedule(joinerSecret: Uint8Array, pskSecret: Uint8Array, groupContext: GroupContext, kdf: Kdf): Promise<[KeySchedule, Uint8Array]>;
28
29
  export declare function initializeKeySchedule(epochSecret: Uint8Array, kdf: Kdf): Promise<KeySchedule>;
29
30
  export declare function initializeEpoch(initSecret: Uint8Array, commitSecret: Uint8Array, groupContext: GroupContext, pskSecret: Uint8Array, kdf: Kdf): Promise<EpochSecrets>;
@@ -4,6 +4,7 @@ import { decodeVarLenData, varLenDataEncoder } from "./codec/variableLength.js";
4
4
  import { deriveSecret, expandWithLabel } from "./crypto/kdf.js";
5
5
  import { extractEpochSecret, extractJoinerSecret } from "./groupContext.js";
6
6
  import { extractWelcomeSecret } from "./groupInfo.js";
7
+ //TODO remove 2 arrays here once we break compatability
7
8
  export const keyScheduleEncoder = contramapBufferEncoders([
8
9
  varLenDataEncoder,
9
10
  varLenDataEncoder,
@@ -16,9 +17,9 @@ export const keyScheduleEncoder = contramapBufferEncoders([
16
17
  varLenDataEncoder,
17
18
  varLenDataEncoder,
18
19
  ], (ks) => [
19
- ks.epochSecret,
20
+ new Uint8Array(),
20
21
  ks.senderDataSecret,
21
- ks.encryptionSecret,
22
+ new Uint8Array(),
22
23
  ks.exporterSecret,
23
24
  ks.externalSecret,
24
25
  ks.confirmationKey,
@@ -39,10 +40,8 @@ export const decodeKeySchedule = mapDecoders([
39
40
  decodeVarLenData,
40
41
  decodeVarLenData,
41
42
  decodeVarLenData,
42
- ], (epochSecret, senderDataSecret, encryptionSecret, exporterSecret, externalSecret, confirmationKey, membershipKey, resumptionPsk, epochAuthenticator, initSecret) => ({
43
- epochSecret,
43
+ ], (_epochSecret, senderDataSecret, _encryptionSecret, exporterSecret, externalSecret, confirmationKey, membershipKey, resumptionPsk, epochAuthenticator, initSecret) => ({
44
44
  senderDataSecret,
45
- encryptionSecret,
46
45
  exporterSecret,
47
46
  externalSecret,
48
47
  confirmationKey,
@@ -51,6 +50,7 @@ export const decodeKeySchedule = mapDecoders([
51
50
  epochAuthenticator,
52
51
  initSecret,
53
52
  }));
53
+ /** @public */
54
54
  export async function mlsExporter(exporterSecret, label, context, length, cs) {
55
55
  const secret = await deriveSecret(exporterSecret, label, cs.kdf);
56
56
  const hash = await cs.hash.digest(context);
@@ -58,12 +58,13 @@ export async function mlsExporter(exporterSecret, label, context, length, cs) {
58
58
  }
59
59
  export async function deriveKeySchedule(joinerSecret, pskSecret, groupContext, kdf) {
60
60
  const epochSecret = await extractEpochSecret(groupContext, joinerSecret, kdf, pskSecret);
61
- return await initializeKeySchedule(epochSecret, kdf);
61
+ const encryptionSecret = await deriveSecret(epochSecret, "encryption", kdf);
62
+ const keySchedule = await initializeKeySchedule(epochSecret, kdf);
63
+ return [keySchedule, encryptionSecret];
62
64
  }
63
65
  export async function initializeKeySchedule(epochSecret, kdf) {
64
66
  const newInitSecret = await deriveSecret(epochSecret, "init", kdf);
65
67
  const senderDataSecret = await deriveSecret(epochSecret, "sender data", kdf);
66
- const encryptionSecret = await deriveSecret(epochSecret, "encryption", kdf);
67
68
  const exporterSecret = await deriveSecret(epochSecret, "exporter", kdf);
68
69
  const externalSecret = await deriveSecret(epochSecret, "external", kdf);
69
70
  const confirmationKey = await deriveSecret(epochSecret, "confirm", kdf);
@@ -71,10 +72,8 @@ export async function initializeKeySchedule(epochSecret, kdf) {
71
72
  const resumptionPsk = await deriveSecret(epochSecret, "resumption", kdf);
72
73
  const epochAuthenticator = await deriveSecret(epochSecret, "authentication", kdf);
73
74
  const newKeySchedule = {
74
- epochSecret: epochSecret,
75
75
  initSecret: newInitSecret,
76
76
  senderDataSecret,
77
- encryptionSecret,
78
77
  exporterSecret,
79
78
  externalSecret,
80
79
  confirmationKey,
@@ -87,7 +86,7 @@ export async function initializeKeySchedule(epochSecret, kdf) {
87
86
  export async function initializeEpoch(initSecret, commitSecret, groupContext, pskSecret, kdf) {
88
87
  const joinerSecret = await extractJoinerSecret(groupContext, initSecret, commitSecret, kdf);
89
88
  const welcomeSecret = await extractWelcomeSecret(joinerSecret, pskSecret, kdf);
90
- const newKeySchedule = await deriveKeySchedule(joinerSecret, pskSecret, groupContext, kdf);
91
- return { welcomeSecret, joinerSecret, keySchedule: newKeySchedule };
89
+ const [newKeySchedule, encryptionSecret] = await deriveKeySchedule(joinerSecret, pskSecret, groupContext, kdf);
90
+ return { welcomeSecret, joinerSecret, encryptionSecret, keySchedule: newKeySchedule };
92
91
  }
93
92
  //# sourceMappingURL=keySchedule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keySchedule.js","sourceRoot":"","sources":["../../src/keySchedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keySchedule.js","sourceRoot":"","sources":["../../src/keySchedule.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { Credential } from "./credential.js";
5
5
  import { Signature } from "./crypto/signature.js";
6
6
  import { Extension } from "./extension.js";
7
7
  import { Lifetime } from "./lifetime.js";
8
+ /** @public */
8
9
  export interface LeafNodeData {
9
10
  hpkePublicKey: Uint8Array;
10
11
  signaturePublicKey: Uint8Array;
@@ -14,16 +15,20 @@ export interface LeafNodeData {
14
15
  export declare const leafNodeDataEncoder: BufferEncoder<LeafNodeData>;
15
16
  export declare const encodeLeafNodeData: Encoder<LeafNodeData>;
16
17
  export declare const decodeLeafNodeData: Decoder<LeafNodeData>;
18
+ /** @public */
17
19
  export type LeafNodeInfoOmitted = LeafNodeInfoKeyPackage | LeafNodeInfoUpdateOmitted | LeafNodeInfoCommitOmitted;
20
+ /** @public */
18
21
  export interface LeafNodeInfoUpdateOmitted {
19
22
  leafNodeSource: "update";
20
23
  extensions: Extension[];
21
24
  }
25
+ /** @public */
22
26
  export interface LeafNodeInfoCommitOmitted {
23
27
  leafNodeSource: "commit";
24
28
  parentHash: Uint8Array;
25
29
  extensions: Extension[];
26
30
  }
31
+ /** @public */
27
32
  export interface LeafNodeInfoKeyPackage {
28
33
  leafNodeSource: "key_package";
29
34
  lifetime: Lifetime;
@@ -42,11 +47,6 @@ export declare const decodeLeafNodeInfoUpdateOmitted: Decoder<LeafNodeInfoUpdate
42
47
  export declare const decodeLeafNodeInfoCommitOmitted: Decoder<LeafNodeInfoCommitOmitted>;
43
48
  export declare const decodeLeafNodeInfoOmitted: Decoder<LeafNodeInfoOmitted>;
44
49
  export type LeafNodeInfo = LeafNodeInfoKeyPackage | LeafNodeInfoUpdate | LeafNodeInfoCommit;
45
- export interface LeafNodeInfoKeyPackage {
46
- leafNodeSource: "key_package";
47
- lifetime: Lifetime;
48
- extensions: Extension[];
49
- }
50
50
  export type LeafNodeInfoUpdate = LeafNodeInfoUpdateOmitted & {
51
51
  groupId: Uint8Array;
52
52
  leafIndex: number;
@@ -69,20 +69,24 @@ export type LeafNodeTBSCommit = LeafNodeData & LeafNodeInfoCommit;
69
69
  export type LeafNodeTBSKeyPackage = LeafNodeData & LeafNodeInfoKeyPackage;
70
70
  export declare const leafNodeTBSEncoder: BufferEncoder<LeafNodeTBS>;
71
71
  export declare const encodeLeafNodeTBS: Encoder<LeafNodeTBS>;
72
+ /** @public */
72
73
  export type LeafNode = LeafNodeData & LeafNodeInfoOmitted & {
73
74
  signature: Uint8Array;
74
75
  };
75
76
  export declare const leafNodeEncoder: BufferEncoder<LeafNode>;
76
77
  export declare const encodeLeafNode: Encoder<LeafNode>;
77
78
  export declare const decodeLeafNode: Decoder<LeafNode>;
79
+ /** @public */
78
80
  export type LeafNodeKeyPackage = LeafNode & {
79
81
  leafNodeSource: "key_package";
80
82
  };
81
83
  export declare const decodeLeafNodeKeyPackage: Decoder<LeafNodeKeyPackage>;
84
+ /** @public */
82
85
  export type LeafNodeCommit = LeafNode & {
83
86
  leafNodeSource: "commit";
84
87
  };
85
88
  export declare const decodeLeafNodeCommit: Decoder<LeafNodeCommit>;
89
+ /** @public */
86
90
  export type LeafNodeUpdate = LeafNode & {
87
91
  leafNodeSource: "update";
88
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../../src/leafNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../../src/leafNode.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { BufferEncoder, Encoder } from "./codec/tlsEncoder.js";
2
2
  import { Decoder } from "./codec/tlsDecoder.js";
3
+ /** @public */
3
4
  export interface Lifetime {
4
5
  notBefore: bigint;
5
6
  notAfter: bigint;
@@ -7,4 +8,5 @@ export interface Lifetime {
7
8
  export declare const lifetimeEncoder: BufferEncoder<Lifetime>;
8
9
  export declare const encodeLifetime: Encoder<Lifetime>;
9
10
  export declare const decodeLifetime: Decoder<Lifetime>;
11
+ /** @public */
10
12
  export declare const defaultLifetime: Lifetime;
@@ -7,6 +7,7 @@ export const decodeLifetime = mapDecoders([decodeUint64, decodeUint64], (notBefo
7
7
  notBefore,
8
8
  notAfter,
9
9
  }));
10
+ /** @public */
10
11
  export const defaultLifetime = {
11
12
  notBefore: 0n,
12
13
  notAfter: 9223372036854775807n,
@@ -1 +1 @@
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"}
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;AAQ5D,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,cAAc;AACd,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,oBAAoB;CAC/B,CAAA"}
@@ -1,5 +1,7 @@
1
+ /** @public */
1
2
  export interface LifetimeConfig {
2
3
  maximumTotalLifetime: bigint;
3
4
  validateLifetimeOnReceive: boolean;
4
5
  }
6
+ /** @public */
5
7
  export declare const defaultLifetimeConfig: LifetimeConfig;
@@ -1,3 +1,4 @@
1
+ /** @public */
1
2
  export const defaultLifetimeConfig = {
2
3
  maximumTotalLifetime: 2628000n, // 1 month
3
4
  validateLifetimeOnReceive: false,
@@ -1 +1 @@
1
- {"version":3,"file":"lifetimeConfig.js","sourceRoot":"","sources":["../../src/lifetimeConfig.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,oBAAoB,EAAE,QAAQ,EAAE,UAAU;IAC1C,yBAAyB,EAAE,KAAK;CACjC,CAAA"}
1
+ {"version":3,"file":"lifetimeConfig.js","sourceRoot":"","sources":["../../src/lifetimeConfig.ts"],"names":[],"mappings":"AAMA,cAAc;AACd,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,oBAAoB,EAAE,QAAQ,EAAE,UAAU;IAC1C,yBAAyB,EAAE,KAAK;CACjC,CAAA"}
@@ -6,30 +6,38 @@ import { PrivateMessage } from "./privateMessage.js";
6
6
  import { ProtocolVersionName } from "./protocolVersion.js";
7
7
  import { PublicMessage } from "./publicMessage.js";
8
8
  import { Welcome } from "./welcome.js";
9
+ /** @public */
9
10
  export interface MlsMessageProtocol {
10
11
  version: ProtocolVersionName;
11
12
  }
13
+ /** @public */
12
14
  export interface MlsWelcome {
13
15
  wireformat: "mls_welcome";
14
16
  welcome: Welcome;
15
17
  }
18
+ /** @public */
16
19
  export interface MlsPrivateMessage {
17
20
  wireformat: "mls_private_message";
18
21
  privateMessage: PrivateMessage;
19
22
  }
23
+ /** @public */
20
24
  export interface MlsGroupInfo {
21
25
  wireformat: "mls_group_info";
22
26
  groupInfo: GroupInfo;
23
27
  }
28
+ /** @public */
24
29
  export interface MlsKeyPackage {
25
30
  wireformat: "mls_key_package";
26
31
  keyPackage: KeyPackage;
27
32
  }
33
+ /** @public */
28
34
  export interface MlsPublicMessage {
29
35
  wireformat: "mls_public_message";
30
36
  publicMessage: PublicMessage;
31
37
  }
38
+ /** @public */
32
39
  export type MlsMessageContent = MlsWelcome | MlsPrivateMessage | MlsGroupInfo | MlsKeyPackage | MlsPublicMessage;
40
+ /** @public */
33
41
  export type MLSMessage = MlsMessageProtocol & MlsMessageContent;
34
42
  export declare const mlsPublicMessageEncoder: BufferEncoder<MlsPublicMessage>;
35
43
  export declare const encodeMlsPublicMessage: Encoder<MlsPublicMessage>;
@@ -45,5 +53,7 @@ export declare const mlsMessageContentEncoder: BufferEncoder<MlsMessageContent>;
45
53
  export declare const encodeMlsMessageContent: Encoder<MlsMessageContent>;
46
54
  export declare const decodeMlsMessageContent: Decoder<MlsMessageContent>;
47
55
  export declare const mlsMessageEncoder: BufferEncoder<MLSMessage>;
56
+ /** @public */
48
57
  export declare const encodeMlsMessage: Encoder<MLSMessage>;
58
+ /** @public */
49
59
  export declare const decodeMlsMessage: Decoder<MLSMessage>;
@@ -47,6 +47,8 @@ export const decodeMlsMessageContent = flatMapDecoder(decodeWireformat, (wirefor
47
47
  }
48
48
  });
49
49
  export const mlsMessageEncoder = contramapBufferEncoders([protocolVersionEncoder, mlsMessageContentEncoder], (w) => [w.version, w]);
50
+ /** @public */
50
51
  export const encodeMlsMessage = encode(mlsMessageEncoder);
52
+ /** @public */
51
53
  export const decodeMlsMessage = mapDecoders([decodeProtocolVersion, decodeMlsMessageContent], (version, mc) => ({ ...mc, version }));
52
54
  //# 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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"}
@@ -12,25 +12,26 @@ import { PaddingConfig } from "./paddingConfig.js";
12
12
  export interface ProtectApplicationDataResult {
13
13
  privateMessage: PrivateMessage;
14
14
  newSecretTree: SecretTree;
15
+ consumed: Uint8Array[];
15
16
  }
16
17
  export declare function protectApplicationData(signKey: Uint8Array, senderDataSecret: Uint8Array, applicationData: Uint8Array, authenticatedData: Uint8Array, groupContext: GroupContext, secretTree: SecretTree, leafIndex: number, paddingConfig: PaddingConfig, cs: CiphersuiteImpl): Promise<ProtectApplicationDataResult>;
17
18
  export interface ProtectProposalResult {
18
19
  privateMessage: PrivateMessage;
19
20
  newSecretTree: SecretTree;
20
21
  proposalRef: Uint8Array;
22
+ consumed: Uint8Array[];
21
23
  }
22
24
  export declare function protectProposal(signKey: Uint8Array, senderDataSecret: Uint8Array, p: Proposal, authenticatedData: Uint8Array, groupContext: GroupContext, secretTree: SecretTree, leafIndex: number, paddingConfig: PaddingConfig, cs: CiphersuiteImpl): Promise<ProtectProposalResult>;
23
25
  export interface ProtectResult {
24
26
  privateMessage: PrivateMessage;
25
27
  tree: SecretTree;
28
+ consumed: Uint8Array[];
26
29
  }
27
- export declare function protect(senderDataSecret: Uint8Array, authenticatedData: Uint8Array, groupContext: GroupContext, secretTree: SecretTree, content: PrivateMessageContent, leafIndex: number, config: PaddingConfig, cs: CiphersuiteImpl): Promise<{
28
- privateMessage: PrivateMessage;
29
- tree: SecretTree;
30
- }>;
30
+ export declare function protect(senderDataSecret: Uint8Array, authenticatedData: Uint8Array, groupContext: GroupContext, secretTree: SecretTree, content: PrivateMessageContent, leafIndex: number, config: PaddingConfig, cs: CiphersuiteImpl): Promise<ProtectResult>;
31
31
  export interface UnprotectResult {
32
32
  content: AuthenticatedContent;
33
33
  tree: SecretTree;
34
+ consumed: Uint8Array[];
34
35
  }
35
36
  export declare function unprotectPrivateMessage(senderDataSecret: Uint8Array, msg: PrivateMessage, secretTree: SecretTree, ratchetTree: RatchetTree, groupContext: GroupContext, config: KeyRetentionConfig, cs: CiphersuiteImpl, overrideSignatureKey?: Uint8Array): Promise<UnprotectResult>;
36
37
  export declare function validateSenderData(senderData: SenderData, tree: RatchetTree): MlsError | undefined;
@@ -30,7 +30,7 @@ export async function protectApplicationData(signKey, senderDataSecret, applicat
30
30
  auth,
31
31
  };
32
32
  const result = await protect(senderDataSecret, authenticatedData, groupContext, secretTree, content, leafIndex, paddingConfig, cs);
33
- return { newSecretTree: result.tree, privateMessage: result.privateMessage };
33
+ return { newSecretTree: result.tree, privateMessage: result.privateMessage, consumed: result.consumed };
34
34
  }
35
35
  export async function protectProposal(signKey, senderDataSecret, p, authenticatedData, groupContext, secretTree, leafIndex, paddingConfig, cs) {
36
36
  const tbs = {
@@ -52,21 +52,21 @@ export async function protectProposal(signKey, senderDataSecret, p, authenticate
52
52
  };
53
53
  const auth = await signFramedContentApplicationOrProposal(signKey, tbs, cs);
54
54
  const content = { ...tbs.content, auth };
55
- const privateMessage = await protect(senderDataSecret, authenticatedData, groupContext, secretTree, content, leafIndex, paddingConfig, cs);
56
- const newSecretTree = privateMessage.tree;
55
+ const protectResult = await protect(senderDataSecret, authenticatedData, groupContext, secretTree, content, leafIndex, paddingConfig, cs);
56
+ const newSecretTree = protectResult.tree;
57
57
  const authenticatedContent = {
58
58
  wireformat: "mls_private_message",
59
59
  content,
60
60
  auth,
61
61
  };
62
62
  const proposalRef = await makeProposalRef(authenticatedContent, cs.hash);
63
- return { privateMessage: privateMessage.privateMessage, newSecretTree, proposalRef };
63
+ return { privateMessage: protectResult.privateMessage, newSecretTree, proposalRef, consumed: protectResult.consumed };
64
64
  }
65
65
  export async function protect(senderDataSecret, authenticatedData, groupContext, secretTree, content, leafIndex, config, cs) {
66
66
  const node = secretTree[leafToNodeIndex(toLeafIndex(leafIndex))];
67
67
  if (node === undefined)
68
68
  throw new InternalError("Bad node index for secret tree");
69
- const { newTree, generation, reuseGuard, nonce, key } = await consumeRatchet(secretTree, leafToNodeIndex(toLeafIndex(leafIndex)), content.contentType, cs);
69
+ const { newTree, generation, reuseGuard, nonce, key, consumed } = await consumeRatchet(secretTree, leafToNodeIndex(toLeafIndex(leafIndex)), content.contentType, cs);
70
70
  const aad = {
71
71
  groupId: groupContext.groupId,
72
72
  epoch: groupContext.epoch,
@@ -95,6 +95,7 @@ export async function protect(senderDataSecret, authenticatedData, groupContext,
95
95
  ciphertext,
96
96
  },
97
97
  tree: newTree,
98
+ consumed,
98
99
  };
99
100
  }
100
101
  export async function unprotectPrivateMessage(senderDataSecret, msg, secretTree, ratchetTree, groupContext, config, cs, overrideSignatureKey) {
@@ -102,7 +103,7 @@ export async function unprotectPrivateMessage(senderDataSecret, msg, secretTree,
102
103
  if (senderData === undefined)
103
104
  throw new CodecError("Could not decode senderdata");
104
105
  validateSenderData(senderData, ratchetTree);
105
- const { key, nonce, newTree } = await ratchetToGeneration(secretTree, senderData, msg.contentType, config, cs);
106
+ const { key, nonce, newTree, consumed } = await ratchetToGeneration(secretTree, senderData, msg.contentType, config, cs);
106
107
  const aad = {
107
108
  groupId: msg.groupId,
108
109
  epoch: msg.epoch,
@@ -120,7 +121,7 @@ export async function unprotectPrivateMessage(senderDataSecret, msg, secretTree,
120
121
  const signatureValid = await verifyFramedContentSignature(signaturePublicKey, "mls_private_message", content.content, content.auth, groupContext, cs.signature);
121
122
  if (!signatureValid)
122
123
  throw new CryptoVerificationError("Signature invalid");
123
- return { tree: newTree, content };
124
+ return { tree: newTree, content, consumed };
124
125
  }
125
126
  export function validateSenderData(senderData, tree) {
126
127
  if (tree[leafToNodeIndex(toLeafIndex(senderData.leafIndex))]?.nodeType !== "leaf")