@wireapp/core 17.24.1 → 17.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/package.json +2 -2
- package/src/main/cryptography/CryptographyService.js +8 -0
- package/src/main/cryptography/CryptographyService.js.map +1 -1
- package/src/main/cryptography/CryptographyService.test.node.js +2 -2
- package/src/main/cryptography/CryptographyService.test.node.js.map +1 -1
- package/src/main/cryptography/CryptographyService.test.node.ts +5 -4
- package/src/main/cryptography/CryptographyService.ts +10 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [17.24.2](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.24.1...@wireapp/core@17.24.2) (2021-11-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **core:** Gracefully handle missing sessions when encrypting ([#4176](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4176)) ([7de01a2](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/7de01a2608b29499d9a89c1c2b7e783f1e7e4dcf))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [17.24.1](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.24.0...@wireapp/core@17.24.1) (2021-11-09)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @wireapp/core
|
package/package.json
CHANGED
|
@@ -69,6 +69,6 @@
|
|
|
69
69
|
"test:project": "yarn dist && yarn test",
|
|
70
70
|
"test:node": "nyc jasmine --config=jasmine.json"
|
|
71
71
|
},
|
|
72
|
-
"version": "17.24.
|
|
73
|
-
"gitHead": "
|
|
72
|
+
"version": "17.24.2",
|
|
73
|
+
"gitHead": "04b1d16a4bc629fd70280f7d2fd56012ce56ce9d"
|
|
74
74
|
}
|
|
@@ -107,6 +107,9 @@ class CryptographyService {
|
|
|
107
107
|
}
|
|
108
108
|
const payloads = await Promise.all(bundles);
|
|
109
109
|
return payloads.reduce((recipients, payload) => {
|
|
110
|
+
if (!payload) {
|
|
111
|
+
return recipients;
|
|
112
|
+
}
|
|
110
113
|
const { encryptedPayload, sessionId } = payload;
|
|
111
114
|
const { userId, clientId } = CryptographyService.dismantleSessionId(sessionId);
|
|
112
115
|
recipients[userId] || (recipients[userId] = {});
|
|
@@ -125,6 +128,11 @@ class CryptographyService {
|
|
|
125
128
|
encryptedPayload = new Uint8Array(payloadAsArrayBuffer);
|
|
126
129
|
}
|
|
127
130
|
catch (error) {
|
|
131
|
+
const notFoundErrorCode = 2;
|
|
132
|
+
if (error.code === notFoundErrorCode) {
|
|
133
|
+
// If the session is not in the database, we just return undefined. Later on there will be a mismatch and the session will be created
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
128
136
|
this.logger.error(`Could not encrypt payload: ${error.message}`);
|
|
129
137
|
encryptedPayload = new Uint8Array(Buffer.from('💣', 'utf-8'));
|
|
130
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptographyService.js","sourceRoot":"","sources":["CryptographyService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CryptographyService.js","sourceRoot":"","sources":["CryptographyService.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,14 +212,14 @@ describe('CryptographyService', () => {
|
|
|
212
212
|
const sessionWithBobId = 'bob-user-id@bob-client-id';
|
|
213
213
|
const text = new Uint8Array([72, 101, 108, 108, 111, 32, 66, 111, 98, 33]); // "Hello Bob!"
|
|
214
214
|
const encodedPreKey = 'pQABAQACoQBYIHOFFWPnWlr4sulxUWYoP0A6rsJiBO/Ec3Y914t67CIAA6EAoQBYIPFH5CK/a0YwKEx4n/+U/IPRN+mJXVv++MCs5Z4dLmz4BPY=';
|
|
215
|
-
const { sessionId, encryptedPayload } = await cryptographyService['encryptPayloadForSession'](sessionWithBobId, text, encodedPreKey);
|
|
215
|
+
const { sessionId, encryptedPayload } = (await cryptographyService['encryptPayloadForSession'](sessionWithBobId, text, encodedPreKey));
|
|
216
216
|
expect(Buffer.from(encryptedPayload).toString('utf8')).not.toBe('💣');
|
|
217
217
|
expect(sessionId).toBe(sessionWithBobId);
|
|
218
218
|
});
|
|
219
219
|
it('encodes invalid text as Bomb Emoji.', async () => {
|
|
220
220
|
const sessionWithBobId = 'bob-user-id@bob-client-id';
|
|
221
221
|
const encodedPreKey = 'pQABAQACoQBYIHOFFWPnWlr4sulxUWYoP0A6rsJiBO/Ec3Y914t67CIAA6EAoQBYIPFH5CK/a0YwKEx4n/+U/IPRN+mJXVv++MCs5Z4dLmz4BPY=';
|
|
222
|
-
const { sessionId, encryptedPayload } = await cryptographyService['encryptPayloadForSession'](sessionWithBobId, undefined, encodedPreKey);
|
|
222
|
+
const { sessionId, encryptedPayload } = (await cryptographyService['encryptPayloadForSession'](sessionWithBobId, undefined, encodedPreKey));
|
|
223
223
|
expect(Buffer.from(encryptedPayload).toString()).toBe('💣');
|
|
224
224
|
expect(sessionId).toBe(sessionWithBobId);
|
|
225
225
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CryptographyService.test.node.js","sourceRoot":"","sources":["CryptographyService.test.node.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;AAEH,oDAA8C;AAC9C,kDAA6C;AAC7C,0DAA4C;AAC5C,wDAA+D;AAC/D,qDAAuC;AACvC,+CAAiC;AACjC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"CryptographyService.test.node.js","sourceRoot":"","sources":["CryptographyService.test.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ import {CRUDEngine, MemoryEngine} from '@wireapp/store-engine';
|
|
|
24
24
|
import * as bazinga64 from 'bazinga64';
|
|
25
25
|
import * as crypto from 'crypto';
|
|
26
26
|
import {promisify} from 'util';
|
|
27
|
+
import {SessionPayloadBundle} from '.';
|
|
27
28
|
|
|
28
29
|
import * as CryptographyHelper from '../test/CryptographyHelper';
|
|
29
30
|
import {decryptAsset, encryptAsset} from './AssetCryptography.node';
|
|
@@ -220,11 +221,11 @@ describe('CryptographyService', () => {
|
|
|
220
221
|
const text = new Uint8Array([72, 101, 108, 108, 111, 32, 66, 111, 98, 33]); // "Hello Bob!"
|
|
221
222
|
const encodedPreKey =
|
|
222
223
|
'pQABAQACoQBYIHOFFWPnWlr4sulxUWYoP0A6rsJiBO/Ec3Y914t67CIAA6EAoQBYIPFH5CK/a0YwKEx4n/+U/IPRN+mJXVv++MCs5Z4dLmz4BPY=';
|
|
223
|
-
const {sessionId, encryptedPayload} = await cryptographyService['encryptPayloadForSession'](
|
|
224
|
+
const {sessionId, encryptedPayload} = (await cryptographyService['encryptPayloadForSession'](
|
|
224
225
|
sessionWithBobId,
|
|
225
226
|
text,
|
|
226
227
|
encodedPreKey,
|
|
227
|
-
);
|
|
228
|
+
)) as SessionPayloadBundle;
|
|
228
229
|
expect(Buffer.from(encryptedPayload).toString('utf8')).not.toBe('💣');
|
|
229
230
|
expect(sessionId).toBe(sessionWithBobId);
|
|
230
231
|
});
|
|
@@ -233,11 +234,11 @@ describe('CryptographyService', () => {
|
|
|
233
234
|
const sessionWithBobId = 'bob-user-id@bob-client-id';
|
|
234
235
|
const encodedPreKey =
|
|
235
236
|
'pQABAQACoQBYIHOFFWPnWlr4sulxUWYoP0A6rsJiBO/Ec3Y914t67CIAA6EAoQBYIPFH5CK/a0YwKEx4n/+U/IPRN+mJXVv++MCs5Z4dLmz4BPY=';
|
|
236
|
-
const {sessionId, encryptedPayload} = await cryptographyService['encryptPayloadForSession'](
|
|
237
|
+
const {sessionId, encryptedPayload} = (await cryptographyService['encryptPayloadForSession'](
|
|
237
238
|
sessionWithBobId,
|
|
238
239
|
undefined as any,
|
|
239
240
|
encodedPreKey,
|
|
240
|
-
);
|
|
241
|
+
)) as SessionPayloadBundle;
|
|
241
242
|
expect(Buffer.from(encryptedPayload).toString()).toBe('💣');
|
|
242
243
|
expect(sessionId).toBe(sessionWithBobId);
|
|
243
244
|
});
|
|
@@ -150,7 +150,7 @@ export class CryptographyService {
|
|
|
150
150
|
users: UserPreKeyBundleMap | UserClients,
|
|
151
151
|
domain?: string,
|
|
152
152
|
): Promise<OTRRecipients<Uint8Array>> {
|
|
153
|
-
const bundles: Promise<SessionPayloadBundle>[] = [];
|
|
153
|
+
const bundles: Promise<SessionPayloadBundle | undefined>[] = [];
|
|
154
154
|
|
|
155
155
|
for (const userId in users) {
|
|
156
156
|
const clientIds = isUserClients(users) ? users[userId] : Object.keys(users[userId]);
|
|
@@ -164,6 +164,9 @@ export class CryptographyService {
|
|
|
164
164
|
const payloads = await Promise.all(bundles);
|
|
165
165
|
|
|
166
166
|
return payloads.reduce((recipients, payload) => {
|
|
167
|
+
if (!payload) {
|
|
168
|
+
return recipients;
|
|
169
|
+
}
|
|
167
170
|
const {encryptedPayload, sessionId} = payload;
|
|
168
171
|
const {userId, clientId} = CryptographyService.dismantleSessionId(sessionId);
|
|
169
172
|
recipients[userId] ||= {};
|
|
@@ -176,7 +179,7 @@ export class CryptographyService {
|
|
|
176
179
|
sessionId: string,
|
|
177
180
|
plainText: Uint8Array,
|
|
178
181
|
base64EncodedPreKey?: string,
|
|
179
|
-
): Promise<SessionPayloadBundle> {
|
|
182
|
+
): Promise<SessionPayloadBundle | undefined> {
|
|
180
183
|
this.logger.log(`Encrypting payload for session ID "${sessionId}"`);
|
|
181
184
|
|
|
182
185
|
let encryptedPayload: Uint8Array;
|
|
@@ -188,6 +191,11 @@ export class CryptographyService {
|
|
|
188
191
|
const payloadAsArrayBuffer = await this.cryptobox.encrypt(sessionId, plainText, decodedPreKeyBundle);
|
|
189
192
|
encryptedPayload = new Uint8Array(payloadAsArrayBuffer);
|
|
190
193
|
} catch (error) {
|
|
194
|
+
const notFoundErrorCode = 2;
|
|
195
|
+
if ((error as any).code === notFoundErrorCode) {
|
|
196
|
+
// If the session is not in the database, we just return undefined. Later on there will be a mismatch and the session will be created
|
|
197
|
+
return undefined;
|
|
198
|
+
}
|
|
191
199
|
this.logger.error(`Could not encrypt payload: ${(error as Error).message}`);
|
|
192
200
|
encryptedPayload = new Uint8Array(Buffer.from('💣', 'utf-8'));
|
|
193
201
|
}
|