@towns-protocol/encryption 0.0.191
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/LICENSE.txt +21 -0
- package/README.md +3 -0
- package/dist/base.d.ts +64 -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 +52 -0
- package/dist/cryptoStore.d.ts.map +1 -0
- package/dist/cryptoStore.js +131 -0
- package/dist/cryptoStore.js.map +1 -0
- package/dist/decryptionExtensions.d.ts +200 -0
- package/dist/decryptionExtensions.d.ts.map +1 -0
- package/dist/decryptionExtensions.js +687 -0
- package/dist/decryptionExtensions.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 +20 -0
- package/dist/encryptionDelegate.d.ts.map +1 -0
- package/dist/encryptionDelegate.js +86 -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 +742 -0
- package/dist/encryptionDevice.js.map +1 -0
- package/dist/encryptionTypes.d.ts +20 -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 +36 -0
- package/dist/groupEncryption.d.ts.map +1 -0
- package/dist/groupEncryption.js +90 -0
- package/dist/groupEncryption.js.map +1 -0
- package/dist/groupEncryptionCrypto.d.ts +119 -0
- package/dist/groupEncryptionCrypto.d.ts.map +1 -0
- package/dist/groupEncryptionCrypto.js +256 -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 +30 -0
- package/dist/hybridGroupEncryption.d.ts.map +1 -0
- package/dist/hybridGroupEncryption.js +92 -0
- package/dist/hybridGroupEncryption.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -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/decryptionExtensions.test.d.ts +2 -0
- package/dist/tests/decryptionExtensions.test.d.ts.map +1 -0
- package/dist/tests/decryptionExtensions.test.js +355 -0
- package/dist/tests/decryptionExtensions.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 +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decryptionExtensions.js","sourceRoot":"","sources":["../src/decryptionExtensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivedEncryption.d.ts","sourceRoot":"","sources":["../src/derivedEncryption.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,0BAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivedEncryption.js","sourceRoot":"","sources":["../src/derivedEncryption.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import Olm from '@matrix-org/olm';
|
|
2
|
+
import { Account, InboundGroupSession, OutboundGroupSession, PkDecryption, PkEncryption, PkSigning, Session, Utility } from './encryptionTypes';
|
|
3
|
+
type OlmLib = typeof Olm;
|
|
4
|
+
export declare class EncryptionDelegate {
|
|
5
|
+
private readonly delegate;
|
|
6
|
+
private _initialized;
|
|
7
|
+
get initialized(): boolean;
|
|
8
|
+
constructor(olmLib?: OlmLib);
|
|
9
|
+
init(): Promise<void>;
|
|
10
|
+
createAccount(): Account;
|
|
11
|
+
createSession(): Session;
|
|
12
|
+
createInboundGroupSession(): InboundGroupSession;
|
|
13
|
+
createOutboundGroupSession(): OutboundGroupSession;
|
|
14
|
+
createPkEncryption(): PkEncryption;
|
|
15
|
+
createPkDecryption(): PkDecryption;
|
|
16
|
+
createPkSigning(): PkSigning;
|
|
17
|
+
createUtility(): Utility;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=encryptionDelegate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionDelegate.d.ts","sourceRoot":"","sources":["../src/encryptionDelegate.ts"],"names":[],"mappings":"AAOA,OAAO,GAAG,MAAM,iBAAiB,CAAA;AACjC,OAAO,EACH,OAAO,EACP,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,EACV,MAAM,mBAAmB,CAAA;AAG1B,KAAK,MAAM,GAAG,OAAO,GAAG,CAAA;AAExB,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,YAAY,CAAQ;IAE5B,IAAW,WAAW,IAAI,OAAO,CAEhC;gBAEW,MAAM,CAAC,EAAE,MAAM;IAQd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,aAAa,IAAI,OAAO;IAOxB,aAAa,IAAI,OAAO;IAOxB,yBAAyB,IAAI,mBAAmB;IAOhD,0BAA0B,IAAI,oBAAoB;IAOlD,kBAAkB,IAAI,YAAY;IAOlC,kBAAkB,IAAI,YAAY;IAOlC,eAAe,IAAI,SAAS;IAO5B,aAAa,IAAI,OAAO;CAMlC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* eslint-disable import/no-unresolved */
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
// need to include the olmWasm file for the app/browser. BUT this is probably not what we want to do in the long run
|
|
4
|
+
// Since we are not bundling the csb SDK, just transpiling TS to JS (like in lib), the SDK is not handling this import at all.
|
|
5
|
+
// Actually `?url` is vite specific - which means that the vite bundler in app is handling this import and doing its thing, and our app runs.
|
|
6
|
+
// But, if another app were to import this that didn't bundle via Vite, or if Vite changes something, this may break.
|
|
7
|
+
import olmWasm from '@matrix-org/olm/olm.wasm?url';
|
|
8
|
+
import Olm from '@matrix-org/olm';
|
|
9
|
+
import { isNodeEnv } from '@towns-protocol/dlog';
|
|
10
|
+
export class EncryptionDelegate {
|
|
11
|
+
delegate;
|
|
12
|
+
_initialized = false;
|
|
13
|
+
get initialized() {
|
|
14
|
+
return this._initialized;
|
|
15
|
+
}
|
|
16
|
+
constructor(olmLib) {
|
|
17
|
+
if (olmLib == undefined) {
|
|
18
|
+
this.delegate = Olm;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.delegate = olmLib;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async init() {
|
|
25
|
+
// initializes Olm library. This should run before using any Olm classes.
|
|
26
|
+
if (this._initialized) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (isNodeEnv()) {
|
|
30
|
+
await this.delegate.init();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await this.delegate.init({ locateFile: () => olmWasm });
|
|
34
|
+
}
|
|
35
|
+
this._initialized = typeof this.delegate.get_library_version === 'function';
|
|
36
|
+
}
|
|
37
|
+
createAccount() {
|
|
38
|
+
if (!this._initialized) {
|
|
39
|
+
throw new Error('olm not initialized');
|
|
40
|
+
}
|
|
41
|
+
return new this.delegate.Account();
|
|
42
|
+
}
|
|
43
|
+
createSession() {
|
|
44
|
+
if (!this._initialized) {
|
|
45
|
+
throw new Error('olm not initialized');
|
|
46
|
+
}
|
|
47
|
+
return new this.delegate.Session();
|
|
48
|
+
}
|
|
49
|
+
createInboundGroupSession() {
|
|
50
|
+
if (!this._initialized) {
|
|
51
|
+
throw new Error('olm not initialized');
|
|
52
|
+
}
|
|
53
|
+
return new this.delegate.InboundGroupSession();
|
|
54
|
+
}
|
|
55
|
+
createOutboundGroupSession() {
|
|
56
|
+
if (!this._initialized) {
|
|
57
|
+
throw new Error('olm not initialized');
|
|
58
|
+
}
|
|
59
|
+
return new this.delegate.OutboundGroupSession();
|
|
60
|
+
}
|
|
61
|
+
createPkEncryption() {
|
|
62
|
+
if (!this._initialized) {
|
|
63
|
+
throw new Error('olm not initialized');
|
|
64
|
+
}
|
|
65
|
+
return new this.delegate.PkEncryption();
|
|
66
|
+
}
|
|
67
|
+
createPkDecryption() {
|
|
68
|
+
if (!this._initialized) {
|
|
69
|
+
throw new Error('olm not initialized');
|
|
70
|
+
}
|
|
71
|
+
return new this.delegate.PkDecryption();
|
|
72
|
+
}
|
|
73
|
+
createPkSigning() {
|
|
74
|
+
if (!this._initialized) {
|
|
75
|
+
throw new Error('olm not initialized');
|
|
76
|
+
}
|
|
77
|
+
return new this.delegate.PkSigning();
|
|
78
|
+
}
|
|
79
|
+
createUtility() {
|
|
80
|
+
if (!this._initialized) {
|
|
81
|
+
throw new Error('olm not initialized');
|
|
82
|
+
}
|
|
83
|
+
return new this.delegate.Utility();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=encryptionDelegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionDelegate.js","sourceRoot":"","sources":["../src/encryptionDelegate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { CryptoStore } from './cryptoStore';
|
|
2
|
+
import { InboundGroupSession, IOutboundGroupSessionKey } from './encryptionTypes';
|
|
3
|
+
import { EncryptionDelegate } from './encryptionDelegate';
|
|
4
|
+
import { GroupEncryptionSession } from './olmLib';
|
|
5
|
+
import type { HybridGroupSessionRecord } from './storeTypes';
|
|
6
|
+
import { ExportedDevice, HybridGroupSessionKey } from '@towns-protocol/proto';
|
|
7
|
+
/** data stored in the session store about an inbound group session */
|
|
8
|
+
export interface InboundGroupSessionData {
|
|
9
|
+
stream_id: string;
|
|
10
|
+
/** pickled InboundGroupSession */
|
|
11
|
+
session: string;
|
|
12
|
+
keysClaimed: Record<string, string>;
|
|
13
|
+
/** whether this session is untrusted. */
|
|
14
|
+
untrusted?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type EncryptionDeviceInitOpts = {
|
|
17
|
+
fromExportedDevice?: ExportedDevice;
|
|
18
|
+
pickleKey?: string;
|
|
19
|
+
};
|
|
20
|
+
export interface IDecryptedGroupMessage {
|
|
21
|
+
result: string;
|
|
22
|
+
keysClaimed: Record<string, string>;
|
|
23
|
+
streamId: string;
|
|
24
|
+
untrusted: boolean;
|
|
25
|
+
}
|
|
26
|
+
export type GroupSessionExtraData = {
|
|
27
|
+
untrusted?: boolean;
|
|
28
|
+
};
|
|
29
|
+
export declare class EncryptionDevice {
|
|
30
|
+
private delegate;
|
|
31
|
+
private readonly cryptoStore;
|
|
32
|
+
pickleKey: string;
|
|
33
|
+
/** Curve25519 key for the account, unknown until we load the account from storage in init() */
|
|
34
|
+
deviceCurve25519Key: string | null;
|
|
35
|
+
/** Ed25519 key for the account, unknown until we load the account from storage in init() */
|
|
36
|
+
deviceDoNotUseKey: string | null;
|
|
37
|
+
fallbackKey: {
|
|
38
|
+
keyId: string;
|
|
39
|
+
key: string;
|
|
40
|
+
};
|
|
41
|
+
sessionsInProgress: Record<string, Promise<void>>;
|
|
42
|
+
olmPrekeyPromise: Promise<any>;
|
|
43
|
+
private inboundGroupSessionMessageIndexes;
|
|
44
|
+
constructor(delegate: EncryptionDelegate, cryptoStore: CryptoStore);
|
|
45
|
+
/**
|
|
46
|
+
* Iniitialize the Account. Must be called prior to any other operation
|
|
47
|
+
* on the device.
|
|
48
|
+
*
|
|
49
|
+
* Data from an exported device can be provided in order to recreate this device.
|
|
50
|
+
*
|
|
51
|
+
* Attempts to load the Account from the crypto store, or create one otherwise
|
|
52
|
+
* storing the account in storage.
|
|
53
|
+
*
|
|
54
|
+
* Reads the device keys from the Account object.
|
|
55
|
+
*
|
|
56
|
+
* @param fromExportedDevice - data from exported device
|
|
57
|
+
* that must be re-created.
|
|
58
|
+
* If present, opts.pickleKey is ignored
|
|
59
|
+
* (exported data already provides a pickle key)
|
|
60
|
+
* @param pickleKey - pickle key to set instead of default one
|
|
61
|
+
*
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
init(opts?: EncryptionDeviceInitOpts): Promise<void>;
|
|
65
|
+
private initializeFromExportedDevice;
|
|
66
|
+
private initializeAccount;
|
|
67
|
+
/**
|
|
68
|
+
* Export the current device state
|
|
69
|
+
* @returns ExportedDevice object containing the device state
|
|
70
|
+
*/
|
|
71
|
+
exportDevice(): Promise<ExportedDevice>;
|
|
72
|
+
/**
|
|
73
|
+
* Extract our Account from the crypto store and call the given function
|
|
74
|
+
* with the account object
|
|
75
|
+
* The `account` object is usable only within the callback passed to this
|
|
76
|
+
* function and will be freed as soon the callback returns. It is *not*
|
|
77
|
+
* usable for the rest of the lifetime of the transaction.
|
|
78
|
+
* This function requires a live transaction object from cryptoStore.doTxn()
|
|
79
|
+
* and therefore may only be called in a doTxn() callback.
|
|
80
|
+
*
|
|
81
|
+
* @param txn - Opaque transaction object from cryptoStore.doTxn()
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
private getAccount;
|
|
85
|
+
/**
|
|
86
|
+
* Saves an account to the crypto store.
|
|
87
|
+
* This function requires a live transaction object from cryptoStore.doTxn()
|
|
88
|
+
* and therefore may only be called in a doTxn() callback.
|
|
89
|
+
*
|
|
90
|
+
* @param txn - Opaque transaction object from cryptoStore.doTxn()
|
|
91
|
+
* @param Account object
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
private storeAccount;
|
|
95
|
+
/**
|
|
96
|
+
* get an OlmUtility and call the given function
|
|
97
|
+
*
|
|
98
|
+
* @returns result of func
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
private getUtility;
|
|
102
|
+
/**
|
|
103
|
+
* Signs a message with the ed25519 key for this account.
|
|
104
|
+
*
|
|
105
|
+
* @param message - message to be signed
|
|
106
|
+
* @returns base64-encoded signature
|
|
107
|
+
*/
|
|
108
|
+
sign(message: string): Promise<string>;
|
|
109
|
+
/**
|
|
110
|
+
* Marks all of the fallback keys as published.
|
|
111
|
+
*/
|
|
112
|
+
markKeysAsPublished(): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Generate a new fallback keys
|
|
115
|
+
*
|
|
116
|
+
* @returns Resolved once the account is saved back having generated the key
|
|
117
|
+
*/
|
|
118
|
+
generateFallbackKeyIfNeeded(): Promise<void>;
|
|
119
|
+
getFallbackKey(): Promise<{
|
|
120
|
+
keyId: string;
|
|
121
|
+
key: string;
|
|
122
|
+
}>;
|
|
123
|
+
forgetOldFallbackKey(): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Store an OutboundGroupSession in outboundSessionStore
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
private saveOutboundGroupSession;
|
|
129
|
+
/**
|
|
130
|
+
* Extract OutboundGroupSession from the session store and call given fn.
|
|
131
|
+
*/
|
|
132
|
+
private getOutboundGroupSession;
|
|
133
|
+
/**
|
|
134
|
+
* Get the session keys for an outbound group session
|
|
135
|
+
*
|
|
136
|
+
* @param sessionId - the id of the outbound group session
|
|
137
|
+
*
|
|
138
|
+
* @returns current chain index, and
|
|
139
|
+
* base64-encoded secret key.
|
|
140
|
+
*/
|
|
141
|
+
getOutboundGroupSessionKey(streamId: string): Promise<IOutboundGroupSessionKey>;
|
|
142
|
+
/** */
|
|
143
|
+
getHybridGroupSessionKeyForStream(streamId: string): Promise<HybridGroupSessionKey>;
|
|
144
|
+
/** */
|
|
145
|
+
getHybridGroupSessionKey(streamId: string, sessionId: string): Promise<HybridGroupSessionKey>;
|
|
146
|
+
/**
|
|
147
|
+
* Generate a new outbound group session
|
|
148
|
+
*
|
|
149
|
+
*/
|
|
150
|
+
createOutboundGroupSession(streamId: string): Promise<string>;
|
|
151
|
+
/** */
|
|
152
|
+
createHybridGroupSession(streamId: string, miniblockNum: bigint, miniblockHash: Uint8Array): Promise<{
|
|
153
|
+
sessionId: string;
|
|
154
|
+
sessionRecord: HybridGroupSessionRecord;
|
|
155
|
+
sessionKey: HybridGroupSessionKey;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Unpickle a session from a sessionData object and invoke the given function.
|
|
159
|
+
* The session is valid only until func returns.
|
|
160
|
+
*
|
|
161
|
+
* @param sessionData - Object describing the session.
|
|
162
|
+
* @param func - Invoked with the unpickled session
|
|
163
|
+
* @returns result of func
|
|
164
|
+
*/
|
|
165
|
+
private unpickleInboundGroupSession;
|
|
166
|
+
/**
|
|
167
|
+
* Extract an InboundGroupSession from the crypto store and call the given function
|
|
168
|
+
*
|
|
169
|
+
* @param streamId - The stream ID to extract the session for, or null to fetch
|
|
170
|
+
* sessions for any room.
|
|
171
|
+
* @param txn - Opaque transaction object from cryptoStore.doTxn()
|
|
172
|
+
* @param func - function to call.
|
|
173
|
+
*
|
|
174
|
+
* @internal
|
|
175
|
+
*/
|
|
176
|
+
getInboundGroupSession(streamId: string, sessionId: string): Promise<{
|
|
177
|
+
session: InboundGroupSession | undefined;
|
|
178
|
+
data: InboundGroupSessionData | undefined;
|
|
179
|
+
}>;
|
|
180
|
+
/**
|
|
181
|
+
* Add an inbound group session to the session store
|
|
182
|
+
*
|
|
183
|
+
* @param streamId - room in which this session will be used
|
|
184
|
+
* @param senderKey - base64-encoded curve25519 key of the sender
|
|
185
|
+
* @param sessionId - session identifier
|
|
186
|
+
* @param sessionKey - base64-encoded secret key
|
|
187
|
+
* @param keysClaimed - Other keys the sender claims.
|
|
188
|
+
* @param exportFormat - true if the group keys are in export format
|
|
189
|
+
* (ie, they lack an ed25519 signature)
|
|
190
|
+
* @param extraSessionData - any other data to be include with the session
|
|
191
|
+
*/
|
|
192
|
+
addInboundGroupSession(streamId: string, sessionId: string, sessionKey: string, keysClaimed: Record<string, string>, _exportFormat: boolean, extraSessionData?: GroupSessionExtraData): Promise<void>;
|
|
193
|
+
/** */
|
|
194
|
+
addHybridGroupSession(streamId: string, sessionId: string, sessionKey: string): Promise<void>;
|
|
195
|
+
/**
|
|
196
|
+
* Encrypt an outgoing message with an outbound group session
|
|
197
|
+
*
|
|
198
|
+
* @param sessionId - this id of the session
|
|
199
|
+
* @param payloadString - payload to be encrypted
|
|
200
|
+
*
|
|
201
|
+
* @returns ciphertext
|
|
202
|
+
*/
|
|
203
|
+
encryptGroupMessage(payloadString: string, streamId: string): Promise<{
|
|
204
|
+
ciphertext: string;
|
|
205
|
+
sessionId: string;
|
|
206
|
+
}>;
|
|
207
|
+
encryptUsingFallbackKey(theirIdentityKey: string, fallbackKey: string, payload: string): Promise<{
|
|
208
|
+
type: 0 | 1;
|
|
209
|
+
body: string;
|
|
210
|
+
}>;
|
|
211
|
+
/**
|
|
212
|
+
* Decrypt an incoming message using an existing session
|
|
213
|
+
*
|
|
214
|
+
* @param theirDeviceIdentityKey - Curve25519 identity key for the
|
|
215
|
+
* remote device
|
|
216
|
+
* @param messageType - messageType field from the received message
|
|
217
|
+
* @param ciphertext - base64-encoded body from the received message
|
|
218
|
+
*
|
|
219
|
+
* @returns decrypted payload.
|
|
220
|
+
*/
|
|
221
|
+
decryptMessage(ciphertext: string, theirDeviceIdentityKey: string, messageType?: number): Promise<string>;
|
|
222
|
+
/**
|
|
223
|
+
* Verify an ed25519 signature.
|
|
224
|
+
*
|
|
225
|
+
* @param key - ed25519 key
|
|
226
|
+
* @param message - message which was signed
|
|
227
|
+
* @param signature - base64-encoded signature to be checked
|
|
228
|
+
*
|
|
229
|
+
* @throws Error if there is a problem with the verification. If the key was
|
|
230
|
+
* too small then the message will be "OLM.INVALID_BASE64". If the signature
|
|
231
|
+
* was invalid then the message will be "OLM.BAD_MESSAGE_MAC".
|
|
232
|
+
*/
|
|
233
|
+
verifySignature(key: string, message: string, signature: string): void;
|
|
234
|
+
getInboundGroupSessionIds(streamId: string): Promise<string[]>;
|
|
235
|
+
getHybridGroupSessionIds(streamId: string): Promise<string[]>;
|
|
236
|
+
/**
|
|
237
|
+
* Determine if we have the keys for a given group session
|
|
238
|
+
*
|
|
239
|
+
* @param streamId - stream in which the message was received
|
|
240
|
+
* @param senderKey - base64-encoded curve25519 key of the sender
|
|
241
|
+
* @param sessionId - session identifier
|
|
242
|
+
*/
|
|
243
|
+
hasInboundSessionKeys(streamId: string, sessionId: string): Promise<boolean>;
|
|
244
|
+
/** */
|
|
245
|
+
hasHybridGroupSessionKey(streamId: string, sessionId: string): Promise<boolean>;
|
|
246
|
+
/**
|
|
247
|
+
* Export an inbound group session
|
|
248
|
+
*
|
|
249
|
+
* @param streamId - streamId of session
|
|
250
|
+
* @param sessionId - session identifier
|
|
251
|
+
*/
|
|
252
|
+
exportInboundGroupSession(streamId: string, sessionId: string): Promise<GroupEncryptionSession | undefined>;
|
|
253
|
+
/** */
|
|
254
|
+
exportHybridGroupSession(streamId: string, sessionId: string): Promise<GroupEncryptionSession | undefined>;
|
|
255
|
+
/**
|
|
256
|
+
* Get a list containing all of the room keys
|
|
257
|
+
*
|
|
258
|
+
* @returns a list of session export objects
|
|
259
|
+
*/
|
|
260
|
+
exportInboundGroupSessions(): Promise<GroupEncryptionSession[]>;
|
|
261
|
+
exportHybridGroupSessions(): Promise<GroupEncryptionSession[]>;
|
|
262
|
+
}
|
|
263
|
+
export declare function hybridSessionKeyHash(streamId: Uint8Array, key: Uint8Array, miniblockNum: bigint, miniblockHash: Uint8Array): Promise<Uint8Array>;
|
|
264
|
+
//# sourceMappingURL=encryptionDevice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptionDevice.d.ts","sourceRoot":"","sources":["../src/encryptionDevice.ts"],"names":[],"mappings":"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"}
|