@towns-labs/encryption 2.0.1
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 +3 -0
- package/dist/CryptoStoreInMemory.d.ts +42 -0
- package/dist/CryptoStoreInMemory.d.ts.map +1 -0
- package/dist/CryptoStoreInMemory.js +172 -0
- package/dist/CryptoStoreInMemory.js.map +1 -0
- package/dist/CryptoStoreIndexedDb.d.ts +55 -0
- package/dist/CryptoStoreIndexedDb.d.ts.map +1 -0
- package/dist/CryptoStoreIndexedDb.js +139 -0
- package/dist/CryptoStoreIndexedDb.js.map +1 -0
- package/dist/base.d.ts +69 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.js +44 -0
- package/dist/base.js.map +1 -0
- package/dist/cryptoAesGcm.d.ts +9 -0
- package/dist/cryptoAesGcm.d.ts.map +1 -0
- package/dist/cryptoAesGcm.js +30 -0
- package/dist/cryptoAesGcm.js.map +1 -0
- package/dist/cryptoStore.d.ts +34 -0
- package/dist/cryptoStore.d.ts.map +1 -0
- package/dist/cryptoStore.js +17 -0
- package/dist/cryptoStore.js.map +1 -0
- package/dist/derivedEncryption.d.ts +2 -0
- package/dist/derivedEncryption.d.ts.map +1 -0
- package/dist/derivedEncryption.js +2 -0
- package/dist/derivedEncryption.js.map +1 -0
- package/dist/encryptionDelegate.d.ts +16 -0
- package/dist/encryptionDelegate.d.ts.map +1 -0
- package/dist/encryptionDelegate.js +64 -0
- package/dist/encryptionDelegate.js.map +1 -0
- package/dist/encryptionDevice.d.ts +264 -0
- package/dist/encryptionDevice.d.ts.map +1 -0
- package/dist/encryptionDevice.js +745 -0
- package/dist/encryptionDevice.js.map +1 -0
- package/dist/encryptionTypes.d.ts +21 -0
- package/dist/encryptionTypes.d.ts.map +1 -0
- package/dist/encryptionTypes.js +2 -0
- package/dist/encryptionTypes.js.map +1 -0
- package/dist/groupDecryption.d.ts +34 -0
- package/dist/groupDecryption.d.ts.map +1 -0
- package/dist/groupDecryption.js +84 -0
- package/dist/groupDecryption.js.map +1 -0
- package/dist/groupEncryption.d.ts +35 -0
- package/dist/groupEncryption.d.ts.map +1 -0
- package/dist/groupEncryption.js +99 -0
- package/dist/groupEncryption.js.map +1 -0
- package/dist/groupEncryptionCrypto.d.ts +125 -0
- package/dist/groupEncryptionCrypto.d.ts.map +1 -0
- package/dist/groupEncryptionCrypto.js +268 -0
- package/dist/groupEncryptionCrypto.js.map +1 -0
- package/dist/hybridGroupDecryption.d.ts +33 -0
- package/dist/hybridGroupDecryption.d.ts.map +1 -0
- package/dist/hybridGroupDecryption.js +84 -0
- package/dist/hybridGroupDecryption.js.map +1 -0
- package/dist/hybridGroupEncryption.d.ts +27 -0
- package/dist/hybridGroupEncryption.d.ts.map +1 -0
- package/dist/hybridGroupEncryption.js +101 -0
- package/dist/hybridGroupEncryption.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/olmLib.d.ts +35 -0
- package/dist/olmLib.d.ts.map +1 -0
- package/dist/olmLib.js +37 -0
- package/dist/olmLib.js.map +1 -0
- package/dist/storeTypes.d.ts +27 -0
- package/dist/storeTypes.d.ts.map +1 -0
- package/dist/storeTypes.js +2 -0
- package/dist/storeTypes.js.map +1 -0
- package/dist/tests/cryptoAesGcm.test.d.ts +2 -0
- package/dist/tests/cryptoAesGcm.test.d.ts.map +1 -0
- package/dist/tests/cryptoAesGcm.test.js +71 -0
- package/dist/tests/cryptoAesGcm.test.js.map +1 -0
- package/dist/tests/cryptoStore.test.d.ts +5 -0
- package/dist/tests/cryptoStore.test.d.ts.map +1 -0
- package/dist/tests/cryptoStore.test.js +114 -0
- package/dist/tests/cryptoStore.test.js.map +1 -0
- package/dist/tests/encryption-protocol.test.d.ts +2 -0
- package/dist/tests/encryption-protocol.test.d.ts.map +1 -0
- package/dist/tests/encryption-protocol.test.js +150 -0
- package/dist/tests/encryption-protocol.test.js.map +1 -0
- package/dist/tests/encryptionDelegate.test.d.ts +2 -0
- package/dist/tests/encryptionDelegate.test.d.ts.map +1 -0
- package/dist/tests/encryptionDelegate.test.js +78 -0
- package/dist/tests/encryptionDelegate.test.js.map +1 -0
- package/dist/tests/group-encryption-protocol.test.d.ts +2 -0
- package/dist/tests/group-encryption-protocol.test.d.ts.map +1 -0
- package/dist/tests/group-encryption-protocol.test.js +103 -0
- package/dist/tests/group-encryption-protocol.test.js.map +1 -0
- package/dist/tests/group-encryptionDelegate.test.d.ts +2 -0
- package/dist/tests/group-encryptionDelegate.test.d.ts.map +1 -0
- package/dist/tests/group-encryptionDelegate.test.js +23 -0
- package/dist/tests/group-encryptionDelegate.test.js.map +1 -0
- package/dist/tests/pk.test.d.ts +2 -0
- package/dist/tests/pk.test.d.ts.map +1 -0
- package/dist/tests/pk.test.js +103 -0
- package/dist/tests/pk.test.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionDevice.js","sourceRoot":"","sources":["../src/encryptionDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Account as OlmAccount, InboundGroupSession as OlmInboundGroupSession, OutboundGroupSession as OlmOutboundGroupSession, PkDecryption as OlmPkDecryption, PkEncryption as OlmPkEncryption, PkSigning as OlmPkSigning, Session as OlmSession, Utility as OlmUtility } from '@towns-protocol/olm';
|
|
2
|
+
import { EncryptedData } from '@towns-labs/proto';
|
|
3
|
+
export type Account = OlmAccount;
|
|
4
|
+
export type PkDecryption = OlmPkDecryption;
|
|
5
|
+
export type PkEncryption = OlmPkEncryption;
|
|
6
|
+
export type PkSigning = OlmPkSigning;
|
|
7
|
+
export type Session = OlmSession;
|
|
8
|
+
export type Utility = OlmUtility;
|
|
9
|
+
export type OutboundGroupSession = OlmOutboundGroupSession;
|
|
10
|
+
export type InboundGroupSession = OlmInboundGroupSession;
|
|
11
|
+
export interface IOutboundGroupSessionKey {
|
|
12
|
+
sessionId: string;
|
|
13
|
+
chain_index: number;
|
|
14
|
+
key: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DecryptedContentError {
|
|
17
|
+
missingSession: boolean;
|
|
18
|
+
encryptedData: EncryptedData;
|
|
19
|
+
error?: unknown;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=encryptionTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionTypes.d.ts","sourceRoot":"","sources":["../src/encryptionTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,IAAI,UAAU,EACrB,mBAAmB,IAAI,sBAAsB,EAC7C,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,IAAI,eAAe,EAC/B,YAAY,IAAI,eAAe,EAC/B,SAAS,IAAI,YAAY,EACzB,OAAO,IAAI,UAAU,EACrB,OAAO,IAAI,UAAU,EACxB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,MAAM,OAAO,GAAG,UAAU,CAAA;AAChC,MAAM,MAAM,YAAY,GAAG,eAAe,CAAA;AAC1C,MAAM,MAAM,YAAY,GAAG,eAAe,CAAA;AAC1C,MAAM,MAAM,SAAS,GAAG,YAAY,CAAA;AACpC,MAAM,MAAM,OAAO,GAAG,UAAU,CAAA;AAChC,MAAM,MAAM,OAAO,GAAG,UAAU,CAAA;AAChC,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAA;AAC1D,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAA;AAExD,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IAClC,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionTypes.js","sourceRoot":"","sources":["../src/encryptionTypes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DecryptionAlgorithm, IDecryptionParams } from './base';
|
|
2
|
+
import { GroupEncryptionAlgorithmId, GroupEncryptionSession } from './olmLib';
|
|
3
|
+
import { EncryptedData } from '@towns-labs/proto';
|
|
4
|
+
/**
|
|
5
|
+
* Group decryption implementation
|
|
6
|
+
*
|
|
7
|
+
* @param params - parameters, as per {@link DecryptionAlgorithm}
|
|
8
|
+
*/
|
|
9
|
+
export declare class GroupDecryption extends DecryptionAlgorithm {
|
|
10
|
+
readonly algorithm = GroupEncryptionAlgorithmId.GroupEncryption;
|
|
11
|
+
private lruCache;
|
|
12
|
+
constructor(params: IDecryptionParams);
|
|
13
|
+
/**
|
|
14
|
+
* returns a promise which resolves to a
|
|
15
|
+
* {@link EventDecryptionResult} once we have finished
|
|
16
|
+
* decrypting, or rejects with an `algorithms.DecryptionError` if there is a
|
|
17
|
+
* problem decrypting the event.
|
|
18
|
+
*/
|
|
19
|
+
decrypt(streamId: string, content: EncryptedData): Promise<Uint8Array | string>;
|
|
20
|
+
/**
|
|
21
|
+
* @param streamId - the stream id of the session
|
|
22
|
+
* @param session- the group session object
|
|
23
|
+
*/
|
|
24
|
+
importStreamKey(streamId: string, session: GroupEncryptionSession): Promise<void>;
|
|
25
|
+
/** */
|
|
26
|
+
exportGroupSession(streamId: string, sessionId: string): Promise<GroupEncryptionSession | undefined>;
|
|
27
|
+
/** */
|
|
28
|
+
exportGroupSessions(): Promise<GroupEncryptionSession[]>;
|
|
29
|
+
/** */
|
|
30
|
+
exportGroupSessionIds(streamId: string): Promise<string[]>;
|
|
31
|
+
/** */
|
|
32
|
+
hasSessionKey(streamId: string, sessionId: string): Promise<boolean>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=groupDecryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupDecryption.d.ts","sourceRoot":"","sources":["../src/groupDecryption.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAmB,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAChF,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAwB,MAAM,mBAAmB,CAAA;AAOvE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;IACpD,SAAgB,SAAS,8CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAuC;gBACpC,MAAM,EAAE,iBAAiB;IAK5C;;;;;OAKG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC;IAmC5F;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9F,MAAM;IACO,kBAAkB,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAI9C,MAAM;IACC,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAI/D,MAAM;IACC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjE,MAAM;IACO,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGpF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { DecryptionAlgorithm, DecryptionError } from './base';
|
|
2
|
+
import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
3
|
+
import { EncryptedDataVersion } from '@towns-labs/proto';
|
|
4
|
+
import { bin_fromBase64, dlogError } from '@towns-labs/utils';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
const logError = dlogError('csb:encryption:groupDecryption');
|
|
7
|
+
/**
|
|
8
|
+
* Group decryption implementation
|
|
9
|
+
*
|
|
10
|
+
* @param params - parameters, as per {@link DecryptionAlgorithm}
|
|
11
|
+
*/
|
|
12
|
+
export class GroupDecryption extends DecryptionAlgorithm {
|
|
13
|
+
algorithm = GroupEncryptionAlgorithmId.GroupEncryption;
|
|
14
|
+
lruCache;
|
|
15
|
+
constructor(params) {
|
|
16
|
+
super(params);
|
|
17
|
+
this.lruCache = new LRUCache({ max: 1000 });
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* returns a promise which resolves to a
|
|
21
|
+
* {@link EventDecryptionResult} once we have finished
|
|
22
|
+
* decrypting, or rejects with an `algorithms.DecryptionError` if there is a
|
|
23
|
+
* problem decrypting the event.
|
|
24
|
+
*/
|
|
25
|
+
async decrypt(streamId, content) {
|
|
26
|
+
if (!content.senderKey || !content.sessionId || !content.ciphertext) {
|
|
27
|
+
throw new DecryptionError('GROUP_DECRYPTION_MISSING_FIELDS', 'Missing fields in input');
|
|
28
|
+
}
|
|
29
|
+
let session = this.lruCache.get(content.sessionId);
|
|
30
|
+
if (!session) {
|
|
31
|
+
const { session: loadedSession } = await this.device.getInboundGroupSession(streamId, content.sessionId);
|
|
32
|
+
if (loadedSession) {
|
|
33
|
+
this.lruCache.set(content.sessionId, loadedSession);
|
|
34
|
+
session = loadedSession;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!session) {
|
|
38
|
+
throw new Error('Session not found');
|
|
39
|
+
}
|
|
40
|
+
// for historical reasons, we return the plaintext as a string
|
|
41
|
+
const result = session.decrypt(content.ciphertext);
|
|
42
|
+
switch (content.version) {
|
|
43
|
+
case EncryptedDataVersion.ENCRYPTED_DATA_VERSION_0:
|
|
44
|
+
return result.plaintext;
|
|
45
|
+
case EncryptedDataVersion.ENCRYPTED_DATA_VERSION_1:
|
|
46
|
+
return bin_fromBase64(result.plaintext);
|
|
47
|
+
default:
|
|
48
|
+
throw new DecryptionError('GROUP_DECRYPTION_INVALID_VERSION', 'Unsupported version');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param streamId - the stream id of the session
|
|
53
|
+
* @param session- the group session object
|
|
54
|
+
*/
|
|
55
|
+
async importStreamKey(streamId, session) {
|
|
56
|
+
const extraSessionData = {};
|
|
57
|
+
try {
|
|
58
|
+
await this.device.addInboundGroupSession(streamId, session.sessionId, session.sessionKey,
|
|
59
|
+
// sender claimed keys not yet supported
|
|
60
|
+
{}, false, extraSessionData);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
logError(`Error handling room key import: ${e.message}`);
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** */
|
|
68
|
+
async exportGroupSession(streamId, sessionId) {
|
|
69
|
+
return this.device.exportInboundGroupSession(streamId, sessionId);
|
|
70
|
+
}
|
|
71
|
+
/** */
|
|
72
|
+
exportGroupSessions() {
|
|
73
|
+
return this.device.exportInboundGroupSessions();
|
|
74
|
+
}
|
|
75
|
+
/** */
|
|
76
|
+
exportGroupSessionIds(streamId) {
|
|
77
|
+
return this.device.getInboundGroupSessionIds(streamId);
|
|
78
|
+
}
|
|
79
|
+
/** */
|
|
80
|
+
async hasSessionKey(streamId, sessionId) {
|
|
81
|
+
return this.device.hasInboundSessionKeys(streamId, sessionId);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=groupDecryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupDecryption.js","sourceRoot":"","sources":["../src/groupDecryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EncryptedData } from '@towns-labs/proto';
|
|
2
|
+
import { EncryptionAlgorithm, EnsureOutboundSessionOpts, IEncryptionParams } from './base';
|
|
3
|
+
import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
4
|
+
/** Note Jterzis 07/26/23: Several features are intentionally left out of this module,
|
|
5
|
+
* that we may want to implement in the future:
|
|
6
|
+
* 1. Shared History - We don't have a concept of "shared history visibility settings" in River.
|
|
7
|
+
* 2. Backup Manager - We do not backup session keys to anything other than client-side storage.
|
|
8
|
+
* 3. Blocking Devices - We do not block devices and therefore do not account for blocked devices here.
|
|
9
|
+
* 4. Key Forwarding - River does not support key forwarding sessions created by another user's device.
|
|
10
|
+
* 5. Cross Signing - River does not support cross signing yet. Each device is verified individually at this time.
|
|
11
|
+
* 6. Sessions Rotation - River does not support active or periodic session rotation yet.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Group encryption implementation
|
|
15
|
+
*
|
|
16
|
+
* @param params - parameters, as per {@link EncryptionAlgorithm}
|
|
17
|
+
*/
|
|
18
|
+
export declare class GroupEncryption extends EncryptionAlgorithm {
|
|
19
|
+
readonly algorithm = GroupEncryptionAlgorithmId.GroupEncryption;
|
|
20
|
+
constructor(params: IEncryptionParams);
|
|
21
|
+
ensureOutboundSession(streamId: string, opts?: EnsureOutboundSessionOpts): Promise<string>;
|
|
22
|
+
hasOutboundSession(streamId: string): Promise<boolean>;
|
|
23
|
+
private shareSession;
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated
|
|
26
|
+
*/
|
|
27
|
+
encrypt_deprecated_v0(streamId: string, payload: string): Promise<EncryptedData>;
|
|
28
|
+
/**
|
|
29
|
+
* @param content - plaintext event content
|
|
30
|
+
*
|
|
31
|
+
* @returns Promise which resolves to the new event body
|
|
32
|
+
*/
|
|
33
|
+
encrypt(streamId: string, payload: Uint8Array): Promise<EncryptedData>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=groupEncryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupEncryption.d.ts","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6C,MAAM,mBAAmB,CAAA;AAC5F,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAMrD;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;IACpD,SAAgB,SAAS,8CAA6C;gBACnD,MAAM,EAAE,iBAAiB;IAI/B,qBAAqB,CAC9B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC;IA2BL,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YASrD,YAAY;IAiB1B;;OAEG;IACU,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAY7F;;;;OAIG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CAYtF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { EncryptedDataSchema, EncryptedDataVersion } from '@towns-labs/proto';
|
|
2
|
+
import { EncryptionAlgorithm } from './base';
|
|
3
|
+
import { GroupEncryptionAlgorithmId } from './olmLib';
|
|
4
|
+
import { bin_toBase64, dlog } from '@towns-labs/utils';
|
|
5
|
+
import { create } from '@bufbuild/protobuf';
|
|
6
|
+
const log = dlog('csb:encryption:groupEncryption');
|
|
7
|
+
/** Note Jterzis 07/26/23: Several features are intentionally left out of this module,
|
|
8
|
+
* that we may want to implement in the future:
|
|
9
|
+
* 1. Shared History - We don't have a concept of "shared history visibility settings" in River.
|
|
10
|
+
* 2. Backup Manager - We do not backup session keys to anything other than client-side storage.
|
|
11
|
+
* 3. Blocking Devices - We do not block devices and therefore do not account for blocked devices here.
|
|
12
|
+
* 4. Key Forwarding - River does not support key forwarding sessions created by another user's device.
|
|
13
|
+
* 5. Cross Signing - River does not support cross signing yet. Each device is verified individually at this time.
|
|
14
|
+
* 6. Sessions Rotation - River does not support active or periodic session rotation yet.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Group encryption implementation
|
|
18
|
+
*
|
|
19
|
+
* @param params - parameters, as per {@link EncryptionAlgorithm}
|
|
20
|
+
*/
|
|
21
|
+
export class GroupEncryption extends EncryptionAlgorithm {
|
|
22
|
+
algorithm = GroupEncryptionAlgorithmId.GroupEncryption;
|
|
23
|
+
constructor(params) {
|
|
24
|
+
super(params);
|
|
25
|
+
}
|
|
26
|
+
async ensureOutboundSession(streamId, opts) {
|
|
27
|
+
try {
|
|
28
|
+
const sessionKey = await this.device.getOutboundGroupSessionKey(streamId);
|
|
29
|
+
return sessionKey.sessionId;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
// if we don't have a cached session at this point, create a new one
|
|
33
|
+
const sessionId = await this.device.createOutboundGroupSession(streamId);
|
|
34
|
+
log(`Started new megolm session ${sessionId}`);
|
|
35
|
+
// don't wait for the session to be shared
|
|
36
|
+
const promise = this.shareSession(streamId, sessionId, opts?.priorityUserIds ?? []);
|
|
37
|
+
if (opts?.shareShareSessionTimeoutMs === 0) {
|
|
38
|
+
await promise;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// await the promise but timeout after N seconds
|
|
42
|
+
const waitTimeBeforeMovingOn = opts?.shareShareSessionTimeoutMs ?? 30000;
|
|
43
|
+
await Promise.race([
|
|
44
|
+
promise,
|
|
45
|
+
new Promise((resolve, _) => setTimeout(() => resolve(), waitTimeBeforeMovingOn)),
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
return sessionId;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async hasOutboundSession(streamId) {
|
|
52
|
+
try {
|
|
53
|
+
await this.device.getOutboundGroupSessionKey(streamId);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async shareSession(streamId, sessionId, priorityUserIds) {
|
|
61
|
+
const session = await this.device.exportInboundGroupSession(streamId, sessionId);
|
|
62
|
+
if (!session) {
|
|
63
|
+
throw new Error('Session key not found for session ' + sessionId);
|
|
64
|
+
}
|
|
65
|
+
await this.client.encryptAndShareGroupSessionsToStream(streamId, [session], this.algorithm, priorityUserIds);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated
|
|
69
|
+
*/
|
|
70
|
+
async encrypt_deprecated_v0(streamId, payload) {
|
|
71
|
+
await this.ensureOutboundSession(streamId);
|
|
72
|
+
const result = await this.device.encryptGroupMessage(payload, streamId);
|
|
73
|
+
return create(EncryptedDataSchema, {
|
|
74
|
+
algorithm: this.algorithm,
|
|
75
|
+
senderKey: this.device.deviceCurve25519Key,
|
|
76
|
+
ciphertext: result.ciphertext,
|
|
77
|
+
sessionId: result.sessionId,
|
|
78
|
+
version: EncryptedDataVersion.ENCRYPTED_DATA_VERSION_0,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @param content - plaintext event content
|
|
83
|
+
*
|
|
84
|
+
* @returns Promise which resolves to the new event body
|
|
85
|
+
*/
|
|
86
|
+
async encrypt(streamId, payload) {
|
|
87
|
+
log('Starting to encrypt event');
|
|
88
|
+
await this.ensureOutboundSession(streamId);
|
|
89
|
+
const result = await this.device.encryptGroupMessage(bin_toBase64(payload), streamId);
|
|
90
|
+
return create(EncryptedDataSchema, {
|
|
91
|
+
algorithm: this.algorithm,
|
|
92
|
+
senderKey: this.device.deviceCurve25519Key,
|
|
93
|
+
ciphertext: result.ciphertext,
|
|
94
|
+
sessionId: result.sessionId,
|
|
95
|
+
version: EncryptedDataVersion.ENCRYPTED_DATA_VERSION_1,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=groupEncryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupEncryption.js","sourceRoot":"","sources":["../src/groupEncryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { EncryptedData, ExportedDevice } from '@towns-labs/proto';
|
|
2
|
+
import { GroupEncryptionAlgorithmId, GroupEncryptionSession, UserDevice } from './olmLib';
|
|
3
|
+
import { DecryptionAlgorithm, EncryptionAlgorithm, EnsureOutboundSessionOpts, IGroupEncryptionClient } from './base';
|
|
4
|
+
import { type EncryptionDeviceInitOpts } from './encryptionDevice';
|
|
5
|
+
import type { CryptoStore } from './cryptoStore';
|
|
6
|
+
export interface ImportRoomKeysOpts {
|
|
7
|
+
/** Reports ongoing progress of the import process. Can be used for feedback. */
|
|
8
|
+
progressCallback?: (stage: ImportRoomKeyProgressData) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Room key import progress report.
|
|
12
|
+
* Used when calling {@link GroupEncryptionCrypto#importRoomKeys} or
|
|
13
|
+
* {@link GroupEncryptionCrypto#importRoomKeysAsJson} as the parameter of
|
|
14
|
+
* the progressCallback. Used to display feedback.
|
|
15
|
+
*/
|
|
16
|
+
export interface ImportRoomKeyProgressData {
|
|
17
|
+
stage: string;
|
|
18
|
+
successes?: number;
|
|
19
|
+
failures?: number;
|
|
20
|
+
total?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare class GroupEncryptionCrypto {
|
|
23
|
+
private delegate;
|
|
24
|
+
private readonly encryptionDevice;
|
|
25
|
+
readonly groupEncryption: Record<GroupEncryptionAlgorithmId, EncryptionAlgorithm>;
|
|
26
|
+
readonly groupDecryption: Record<GroupEncryptionAlgorithmId, DecryptionAlgorithm>;
|
|
27
|
+
readonly cryptoStore: CryptoStore;
|
|
28
|
+
globalBlacklistUnverifiedDevices: boolean;
|
|
29
|
+
globalErrorOnUnknownDevices: boolean;
|
|
30
|
+
constructor(client: IGroupEncryptionClient, cryptoStore: CryptoStore);
|
|
31
|
+
/** Iniitalize crypto module prior to usage
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
init(opts?: EncryptionDeviceInitOpts): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Encrypt an event using the device keys
|
|
37
|
+
*
|
|
38
|
+
* @param payload - string to be encrypted
|
|
39
|
+
* @param deviceKeys - recipients to encrypt message for
|
|
40
|
+
*
|
|
41
|
+
* @returns Promise which resolves when the event has been
|
|
42
|
+
* encrypted, or null if nothing was needed
|
|
43
|
+
*/
|
|
44
|
+
encryptWithDeviceKeys(payload: string, deviceKeys: UserDevice[]): Promise<Record<string, string>>;
|
|
45
|
+
/**
|
|
46
|
+
* Decrypt a received event using the device key
|
|
47
|
+
*
|
|
48
|
+
* @returns a promise which resolves once we have finished decrypting.
|
|
49
|
+
* Rejects with an error if there is a problem decrypting the event.
|
|
50
|
+
*/
|
|
51
|
+
decryptWithDeviceKey(ciphertext: string, senderDeviceKey: string): Promise<string>;
|
|
52
|
+
/**
|
|
53
|
+
* Ensure that we have an outbound group session key for the given stream
|
|
54
|
+
*
|
|
55
|
+
* @returns Promise which resolves when the event has been
|
|
56
|
+
* created, use options to await the initial share
|
|
57
|
+
*/
|
|
58
|
+
ensureOutboundSession(streamId: string, algorithm: GroupEncryptionAlgorithmId, opts?: EnsureOutboundSessionOpts): Promise<string>;
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
* @param streamId - the id of the stream to check
|
|
62
|
+
* @param algorithm - the algorithm to use
|
|
63
|
+
* @returns true if the stream has an outbound session, false otherwise
|
|
64
|
+
*/
|
|
65
|
+
hasOutboundSession(streamId: string, algorithm: GroupEncryptionAlgorithmId): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Encrypt an event using group encryption algorithm
|
|
68
|
+
*
|
|
69
|
+
* @returns Promise which resolves when the event has been
|
|
70
|
+
* encrypted, or null if nothing was needed
|
|
71
|
+
*/
|
|
72
|
+
encryptGroupEvent(streamId: string, payload: Uint8Array, algorithm: GroupEncryptionAlgorithmId): Promise<EncryptedData>;
|
|
73
|
+
/**
|
|
74
|
+
* Deprecated uses v0 encryption version
|
|
75
|
+
*
|
|
76
|
+
* @returns Promise which resolves when the event has been
|
|
77
|
+
* encrypted, or null if nothing was needed
|
|
78
|
+
*/
|
|
79
|
+
encryptGroupEvent_deprecated_v0(streamId: string, payload: string, algorithm: GroupEncryptionAlgorithmId): Promise<EncryptedData>;
|
|
80
|
+
/**
|
|
81
|
+
* Decrypt a received event using group encryption algorithm
|
|
82
|
+
*
|
|
83
|
+
* @returns a promise which resolves once we have finished decrypting.
|
|
84
|
+
* Rejects with an error if there is a problem decrypting the event.
|
|
85
|
+
*/
|
|
86
|
+
decryptGroupEvent(streamId: string, content: EncryptedData): Promise<string | Uint8Array<ArrayBufferLike>>;
|
|
87
|
+
exportGroupSession(streamId: string, sessionId: string): Promise<GroupEncryptionSession | undefined>;
|
|
88
|
+
/** */
|
|
89
|
+
exportRoomKeys(): Promise<GroupEncryptionSession[]>;
|
|
90
|
+
/** */
|
|
91
|
+
getGroupSessionIds(streamId: string): Promise<string[]>;
|
|
92
|
+
/** */
|
|
93
|
+
hasSessionKey(streamId: string, sessionId: string, algorithm: GroupEncryptionAlgorithmId): Promise<boolean>;
|
|
94
|
+
/** */
|
|
95
|
+
getUserDevice(): UserDevice;
|
|
96
|
+
/** */
|
|
97
|
+
exportDevice(): Promise<ExportedDevice>;
|
|
98
|
+
/**
|
|
99
|
+
* Import a list of group session keys previously exported by exportRoomKeys
|
|
100
|
+
*
|
|
101
|
+
* @param streamId - the id of the stream the keys are for
|
|
102
|
+
* @param keys - a list of session export objects
|
|
103
|
+
* @returns a promise which resolves once the keys have been imported
|
|
104
|
+
*/
|
|
105
|
+
importSessionKeys(streamId: string, keys: GroupEncryptionSession[]): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Import a list of room keys previously exported by exportRoomKeys
|
|
108
|
+
*
|
|
109
|
+
* @param keys - a list of session export objects
|
|
110
|
+
* @returns a promise which resolves once the keys have been imported
|
|
111
|
+
*/
|
|
112
|
+
importRoomKeys(keys: GroupEncryptionSession[], opts?: ImportRoomKeysOpts): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Import a JSON string encoding a list of room keys previously
|
|
115
|
+
* exported by exportRoomKeysAsJson
|
|
116
|
+
*
|
|
117
|
+
* @param keys - a JSON string encoding a list of session export
|
|
118
|
+
* objects, each of which is an GroupEncryptionSession
|
|
119
|
+
* @param opts - options object
|
|
120
|
+
* @returns a promise which resolves once the keys have been imported
|
|
121
|
+
*/
|
|
122
|
+
importRoomKeysAsJson(keys: string): Promise<void>;
|
|
123
|
+
hasHybridSession(streamId: string): Promise<boolean>;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=groupEncryptionCrypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupEncryptionCrypto.d.ts","sourceRoot":"","sources":["../src/groupEncryptionCrypto.ts"],"names":[],"mappings":"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"}
|