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.
- package/README.md +24 -14
- package/dist/src/authenticationService.d.ts +2 -0
- package/dist/src/authenticationService.js +1 -0
- package/dist/src/authenticationService.js.map +1 -1
- package/dist/src/capabilities.d.ts +1 -0
- package/dist/src/capabilities.js.map +1 -1
- package/dist/src/clientConfig.d.ts +1 -0
- package/dist/src/clientConfig.js.map +1 -1
- package/dist/src/clientState.d.ts +15 -1
- package/dist/src/clientState.js +95 -7
- package/dist/src/clientState.js.map +1 -1
- package/dist/src/codec/tlsDecoder.d.ts +1 -0
- package/dist/src/codec/tlsDecoder.js.map +1 -1
- package/dist/src/codec/tlsEncoder.d.ts +1 -0
- package/dist/src/codec/tlsEncoder.js.map +1 -1
- package/dist/src/commit.d.ts +1 -0
- package/dist/src/commit.js.map +1 -1
- package/dist/src/contentType.d.ts +3 -2
- package/dist/src/contentType.js +2 -1
- package/dist/src/contentType.js.map +1 -1
- package/dist/src/createCommit.d.ts +10 -1
- package/dist/src/createCommit.js +25 -8
- package/dist/src/createCommit.js.map +1 -1
- package/dist/src/createMessage.d.ts +4 -0
- package/dist/src/createMessage.js +9 -1
- package/dist/src/createMessage.js.map +1 -1
- package/dist/src/credential.d.ts +4 -0
- package/dist/src/credential.js.map +1 -1
- package/dist/src/credentialType.d.ts +3 -2
- package/dist/src/credentialType.js +2 -1
- package/dist/src/credentialType.js.map +1 -1
- package/dist/src/crypto/aead.d.ts +1 -0
- package/dist/src/crypto/ciphersuite.d.ts +5 -0
- package/dist/src/crypto/ciphersuite.js +2 -0
- package/dist/src/crypto/ciphersuite.js.map +1 -1
- package/dist/src/crypto/getCiphersuiteImpl.d.ts +1 -0
- package/dist/src/crypto/getCiphersuiteImpl.js +1 -0
- package/dist/src/crypto/getCiphersuiteImpl.js.map +1 -1
- package/dist/src/crypto/hash.d.ts +2 -0
- package/dist/src/crypto/hash.js.map +1 -1
- package/dist/src/crypto/hpke.d.ts +4 -0
- package/dist/src/crypto/hpke.js.map +1 -1
- package/dist/src/crypto/implementation/default/makeNobleSignatureImpl.js +35 -1
- package/dist/src/crypto/implementation/default/makeNobleSignatureImpl.js.map +1 -1
- package/dist/src/crypto/implementation/default/provider.d.ts +1 -0
- package/dist/src/crypto/implementation/default/provider.js +1 -0
- package/dist/src/crypto/implementation/default/provider.js.map +1 -1
- package/dist/src/crypto/implementation/noble/provider.d.ts +1 -0
- package/dist/src/crypto/implementation/noble/provider.js +1 -0
- package/dist/src/crypto/implementation/noble/provider.js.map +1 -1
- package/dist/src/crypto/kdf.d.ts +2 -0
- package/dist/src/crypto/kdf.js.map +1 -1
- package/dist/src/crypto/kem.d.ts +1 -0
- package/dist/src/crypto/provider.d.ts +1 -0
- package/dist/src/crypto/rng.d.ts +1 -0
- package/dist/src/crypto/signature.d.ts +2 -0
- package/dist/src/crypto/signature.js.map +1 -1
- package/dist/src/defaultCapabilities.d.ts +1 -0
- package/dist/src/defaultCapabilities.js +1 -0
- package/dist/src/defaultCapabilities.js.map +1 -1
- package/dist/src/defaultExtensionType.d.ts +2 -0
- package/dist/src/defaultExtensionType.js +1 -0
- package/dist/src/defaultExtensionType.js.map +1 -1
- package/dist/src/defaultProposalType.d.ts +2 -0
- package/dist/src/defaultProposalType.js +1 -0
- package/dist/src/defaultProposalType.js.map +1 -1
- package/dist/src/epochReceiverData.d.ts +2 -0
- package/dist/src/epochReceiverData.js.map +1 -1
- package/dist/src/extension.d.ts +2 -0
- package/dist/src/extension.js.map +1 -1
- package/dist/src/externalProposal.d.ts +2 -0
- package/dist/src/externalProposal.js +2 -0
- package/dist/src/externalProposal.js.map +1 -1
- package/dist/src/externalSender.d.ts +3 -0
- package/dist/src/externalSender.js +2 -0
- package/dist/src/externalSender.js.map +1 -1
- package/dist/src/framedContent.d.ts +13 -2
- package/dist/src/framedContent.js.map +1 -1
- package/dist/src/groupActiveState.d.ts +1 -0
- package/dist/src/groupActiveState.js.map +1 -1
- package/dist/src/groupContext.d.ts +1 -0
- package/dist/src/groupContext.js.map +1 -1
- package/dist/src/groupInfo.d.ts +2 -0
- package/dist/src/groupInfo.js.map +1 -1
- package/dist/src/hpkeCiphertext.d.ts +1 -0
- package/dist/src/hpkeCiphertext.js.map +1 -1
- package/dist/src/incomingMessageAction.d.ts +5 -0
- package/dist/src/incomingMessageAction.js +1 -0
- package/dist/src/incomingMessageAction.js.map +1 -1
- package/dist/src/index.d.ts +61 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/keyPackage.d.ts +6 -2
- package/dist/src/keyPackage.js +2 -0
- package/dist/src/keyPackage.js.map +1 -1
- package/dist/src/keyPackageEqualityConfig.d.ts +2 -0
- package/dist/src/keyPackageEqualityConfig.js +1 -0
- package/dist/src/keyPackageEqualityConfig.js.map +1 -1
- package/dist/src/keyRetentionConfig.d.ts +2 -0
- package/dist/src/keyRetentionConfig.js +1 -0
- package/dist/src/keyRetentionConfig.js.map +1 -1
- package/dist/src/keySchedule.d.ts +5 -4
- package/dist/src/keySchedule.js +10 -11
- package/dist/src/keySchedule.js.map +1 -1
- package/dist/src/leafNode.d.ts +9 -5
- package/dist/src/leafNode.js.map +1 -1
- package/dist/src/lifetime.d.ts +2 -0
- package/dist/src/lifetime.js +1 -0
- package/dist/src/lifetime.js.map +1 -1
- package/dist/src/lifetimeConfig.d.ts +2 -0
- package/dist/src/lifetimeConfig.js +1 -0
- package/dist/src/lifetimeConfig.js.map +1 -1
- package/dist/src/message.d.ts +10 -0
- package/dist/src/message.js +2 -0
- package/dist/src/message.js.map +1 -1
- package/dist/src/messageProtection.d.ts +5 -4
- package/dist/src/messageProtection.js +8 -7
- package/dist/src/messageProtection.js.map +1 -1
- package/dist/src/paddingConfig.d.ts +2 -0
- package/dist/src/paddingConfig.js +1 -0
- package/dist/src/paddingConfig.js.map +1 -1
- package/dist/src/parentNode.d.ts +1 -0
- package/dist/src/parentNode.js.map +1 -1
- package/dist/src/presharedkey.d.ts +9 -2
- package/dist/src/presharedkey.js +2 -1
- package/dist/src/presharedkey.js.map +1 -1
- package/dist/src/privateKeyPath.d.ts +1 -0
- package/dist/src/privateKeyPath.js.map +1 -1
- package/dist/src/privateMessage.d.ts +1 -0
- package/dist/src/privateMessage.js.map +1 -1
- package/dist/src/processMessages.d.ts +9 -0
- package/dist/src/processMessages.js +33 -7
- package/dist/src/processMessages.js.map +1 -1
- package/dist/src/proposal.d.ts +16 -0
- package/dist/src/proposal.js.map +1 -1
- package/dist/src/proposalOrRefType.d.ts +3 -0
- package/dist/src/proposalOrRefType.js.map +1 -1
- package/dist/src/protocolVersion.d.ts +2 -0
- package/dist/src/protocolVersion.js +1 -0
- package/dist/src/protocolVersion.js.map +1 -1
- package/dist/src/pskIndex.d.ts +2 -0
- package/dist/src/pskIndex.js +1 -0
- package/dist/src/pskIndex.js.map +1 -1
- package/dist/src/publicMessage.d.ts +7 -4
- package/dist/src/publicMessage.js.map +1 -1
- package/dist/src/ratchetTree.d.ts +6 -3
- package/dist/src/ratchetTree.js.map +1 -1
- package/dist/src/requiredCapabilities.d.ts +3 -0
- package/dist/src/requiredCapabilities.js +2 -0
- package/dist/src/requiredCapabilities.js.map +1 -1
- package/dist/src/resumption.d.ts +5 -0
- package/dist/src/resumption.js +5 -0
- package/dist/src/resumption.js.map +1 -1
- package/dist/src/secretTree.d.ts +6 -1
- package/dist/src/secretTree.js +50 -19
- package/dist/src/secretTree.js.map +1 -1
- package/dist/src/sender.d.ts +9 -2
- package/dist/src/sender.js +2 -1
- package/dist/src/sender.js.map +1 -1
- package/dist/src/treemath.d.ts +4 -0
- package/dist/src/treemath.js +2 -0
- package/dist/src/treemath.js.map +1 -1
- package/dist/src/unappliedProposals.d.ts +2 -0
- package/dist/src/unappliedProposals.js.map +1 -1
- package/dist/src/updatePath.d.ts +2 -0
- package/dist/src/updatePath.js.map +1 -1
- package/dist/src/util/brand.d.ts +1 -0
- package/dist/src/util/byteArray.d.ts +3 -0
- package/dist/src/util/byteArray.js +8 -0
- package/dist/src/util/byteArray.js.map +1 -1
- package/dist/src/welcome.d.ts +2 -0
- package/dist/src/welcome.js.map +1 -1
- package/package.json +9 -5
- package/dist/src/util/repeat.d.ts +0 -1
- package/dist/src/util/repeat.js +0 -8
- 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
|
package/dist/src/index.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/src/keyPackage.d.ts
CHANGED
|
@@ -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
|
-
|
|
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 {};
|
package/dist/src/keyPackage.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACpH,OAAO,EAAoC,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACjH,OAAO,EAAQ,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAA;AACzG,OAAO,EACL,wBAAwB,EACxB,eAAe,EAGf,sBAAsB,GACvB,MAAM,eAAe,CAAA;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPackageEqualityConfig.js","sourceRoot":"","sources":["../../src/keyPackageEqualityConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyRetentionConfig.js","sourceRoot":"","sources":["../../src/keyRetentionConfig.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
27
|
-
export declare function
|
|
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>;
|
package/dist/src/keySchedule.js
CHANGED
|
@@ -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
|
-
|
|
20
|
+
new Uint8Array(),
|
|
20
21
|
ks.senderDataSecret,
|
|
21
|
-
|
|
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
|
-
], (
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAiB,uBAAuB,EAAE,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE/E,OAAO,EAAE,YAAY,EAAE,eAAe,EAAO,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAgB,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"keySchedule.js","sourceRoot":"","sources":["../../src/keySchedule.ts"],"names":[],"mappings":"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"}
|
package/dist/src/leafNode.d.ts
CHANGED
|
@@ -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
|
};
|
package/dist/src/leafNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../../src/leafNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAW,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC1G,OAAO,EAAiB,uBAAuB,EAAE,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACpH,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAc,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAa,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACjF,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"leafNode.js","sourceRoot":"","sources":["../../src/leafNode.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lifetime.d.ts
CHANGED
|
@@ -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;
|
package/dist/src/lifetime.js
CHANGED
package/dist/src/lifetime.js.map
CHANGED
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifetimeConfig.js","sourceRoot":"","sources":["../../src/lifetimeConfig.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/src/message.d.ts
CHANGED
|
@@ -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>;
|
package/dist/src/message.js
CHANGED
|
@@ -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
|
package/dist/src/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAiB,MAAM,EAAW,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAc,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAkB,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAA;AACzG,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAiB,MAAM,oBAAoB,CAAA;AAC7F,OAAO,EAAE,aAAa,EAAW,cAAc,EAAE,MAAM,cAAc,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;
|
|
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
|
|
56
|
-
const newSecretTree =
|
|
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:
|
|
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")
|