@wireapp/core 17.20.3 → 17.21.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/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.21.0](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.20.3...@wireapp/core@17.21.0) (2021-10-28)
7
+
8
+
9
+ ### Features
10
+
11
+ * **core:** Allow the consumer to give a list of clients when sending a message ([#4163](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/issues/4163)) ([b437acc](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/commit/b437accfc7151518a780734efeecd0dcbbde8c7e))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [17.20.3](https://github.com/wireapp/wire-web-packages/tree/main/packages/core/compare/@wireapp/core@17.20.2...@wireapp/core@17.20.3) (2021-10-21)
7
18
 
8
19
  **Note:** Version bump only for package @wireapp/core
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "dependencies": {
6
6
  "@types/long": "4.0.1",
7
7
  "@types/node": "~14",
8
- "@wireapp/api-client": "15.2.1",
8
+ "@wireapp/api-client": "15.3.0",
9
9
  "@wireapp/cryptobox": "12.7.1",
10
10
  "bazinga64": "5.9.7",
11
11
  "hash.js": "1.1.7",
@@ -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.20.3",
73
- "gitHead": "4a6f93d6fccbeb40d8b4abf8d74f4330f7894f02"
72
+ "version": "17.21.0",
73
+ "gitHead": "f4c18025a50cd71587620069cf7a8be47470175f"
74
74
  }
@@ -26,6 +26,18 @@ export declare class ConversationService {
26
26
  getPreKeyBundleMap(conversationId: string, userIds?: string[] | UserClients): Promise<UserPreKeyBundleMap>;
27
27
  private getSelfConversation;
28
28
  private sendExternalGenericMessage;
29
+ /**
30
+ * Sends a message to a federated environment.
31
+ *
32
+ * @param sendingClientId - The clientId from which the message is sent
33
+ * @param conversationId - The conversation in which to send the message
34
+ * @param conversationDomain - The domain where the conversation lives
35
+ * @param genericMessage - The payload of the message to send
36
+ * @param userIds? - can be either a QualifiedId[] or QualfiedUserClients. The type has some effect on the behavior of the method.
37
+ * When given a QualifiedId[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
38
+ * When given a QualifiedUserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
39
+ * @return Resolves with the message sending status from backend
40
+ */
29
41
  private sendFederatedGenericMessage;
30
42
  private sendGenericMessage;
31
43
  private generateButtonActionGenericMessage;
@@ -57,10 +69,18 @@ export declare class ConversationService {
57
69
  addUser<T extends string | string[] | QualifiedId | QualifiedId[]>(conversationId: string, userIds: T): Promise<T>;
58
70
  removeUser(conversationId: string, userId: string): Promise<string>;
59
71
  /**
60
- * @param payloadBundle Outgoing message
61
- * @param userIds Only send message to specified user IDs or to certain clients of specified user IDs
62
- * @param [callbacks] Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent. Currently only used for `sendText`.
63
- * @returns Sent message
72
+ * Sends a message to a conversation
73
+ *
74
+ * @param params.payloadBundle The message to send to the conversation
75
+ * @param params.userIds? Can be either a QualifiedId[], string[], UserClients or QualfiedUserClients. The type has some effect on the behavior of the method.
76
+ * When given a QualifiedId[] or string[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
77
+ * When given a QualifiedUserClients or UserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
78
+ * When given a QualifiedId[] or QualifiedUserClients the method will send the message through the federated API endpoint
79
+ * When given a string[] or UserClients the method will send the message through the old API endpoint
80
+ * @param params.sendAsProtobuf?
81
+ * @param params.conversationDomain? The domain the conversation lives on (if given with QualifiedId[] or QualfiedUserClients in the userIds params, will send the message to the federated endpoint)
82
+ * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
83
+ * @return resolves with the sent message
64
84
  */
65
85
  send<T extends OtrMessage = OtrMessage>({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }: {
66
86
  payloadBundle: T;
@@ -164,11 +164,25 @@ class ConversationService {
164
164
  }
165
165
  return undefined;
166
166
  }
167
+ /**
168
+ * Sends a message to a federated environment.
169
+ *
170
+ * @param sendingClientId - The clientId from which the message is sent
171
+ * @param conversationId - The conversation in which to send the message
172
+ * @param conversationDomain - The domain where the conversation lives
173
+ * @param genericMessage - The payload of the message to send
174
+ * @param userIds? - can be either a QualifiedId[] or QualfiedUserClients. The type has some effect on the behavior of the method.
175
+ * When given a QualifiedId[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
176
+ * When given a QualifiedUserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
177
+ * @return Resolves with the message sending status from backend
178
+ */
167
179
  async sendFederatedGenericMessage(sendingClientId, conversationId, conversationDomain, genericMessage, userIds) {
168
180
  const plainTextArray = protocol_messaging_1.GenericMessage.encode(genericMessage).finish();
169
- const preKeyBundles = await this.getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds);
181
+ const preKeyBundles = (0, TypePredicateUtil_1.isQualifiedUserClients)(userIds)
182
+ ? userIds
183
+ : await this.getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds);
170
184
  const recipients = await this.cryptographyService.encryptQualified(plainTextArray, preKeyBundles);
171
- return this.messageService.sendFederatedOTRMessage(sendingClientId, conversationId, conversationDomain, recipients, plainTextArray);
185
+ return this.messageService.sendFederatedOTRMessage(sendingClientId, conversationId, conversationDomain, recipients, plainTextArray, undefined, (0, TypePredicateUtil_1.isQualifiedUserClients)(userIds));
172
186
  }
173
187
  async sendGenericMessage(sendingClientId, conversationId, genericMessage, userIds, sendAsProtobuf, conversationDomain) {
174
188
  if (conversationDomain) {
@@ -536,10 +550,18 @@ class ConversationService {
536
550
  return userId;
537
551
  }
538
552
  /**
539
- * @param payloadBundle Outgoing message
540
- * @param userIds Only send message to specified user IDs or to certain clients of specified user IDs
541
- * @param [callbacks] Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent. Currently only used for `sendText`.
542
- * @returns Sent message
553
+ * Sends a message to a conversation
554
+ *
555
+ * @param params.payloadBundle The message to send to the conversation
556
+ * @param params.userIds? Can be either a QualifiedId[], string[], UserClients or QualfiedUserClients. The type has some effect on the behavior of the method.
557
+ * When given a QualifiedId[] or string[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
558
+ * When given a QualifiedUserClients or UserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
559
+ * When given a QualifiedId[] or QualifiedUserClients the method will send the message through the federated API endpoint
560
+ * When given a string[] or UserClients the method will send the message through the old API endpoint
561
+ * @param params.sendAsProtobuf?
562
+ * @param params.conversationDomain? The domain the conversation lives on (if given with QualifiedId[] or QualfiedUserClients in the userIds params, will send the message to the federated endpoint)
563
+ * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
564
+ * @return resolves with the sent message
543
565
  */
544
566
  async send({ payloadBundle, userIds, sendAsProtobuf, conversationDomain, callbacks, }) {
545
567
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationService.js","sourceRoot":"","sources":["ConversationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationService.js","sourceRoot":"","sources":["ConversationService.ts"],"names":[],"mappings":"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"}
@@ -263,6 +263,18 @@ export class ConversationService {
263
263
  return undefined;
264
264
  }
265
265
 
266
+ /**
267
+ * Sends a message to a federated environment.
268
+ *
269
+ * @param sendingClientId - The clientId from which the message is sent
270
+ * @param conversationId - The conversation in which to send the message
271
+ * @param conversationDomain - The domain where the conversation lives
272
+ * @param genericMessage - The payload of the message to send
273
+ * @param userIds? - can be either a QualifiedId[] or QualfiedUserClients. The type has some effect on the behavior of the method.
274
+ * When given a QualifiedId[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
275
+ * When given a QualifiedUserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
276
+ * @return Resolves with the message sending status from backend
277
+ */
266
278
  private async sendFederatedGenericMessage(
267
279
  sendingClientId: string,
268
280
  conversationId: string,
@@ -271,7 +283,9 @@ export class ConversationService {
271
283
  userIds?: QualifiedId[] | QualifiedUserClients,
272
284
  ): Promise<MessageSendingStatus> {
273
285
  const plainTextArray = GenericMessage.encode(genericMessage).finish();
274
- const preKeyBundles = await this.getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds);
286
+ const preKeyBundles = isQualifiedUserClients(userIds)
287
+ ? userIds
288
+ : await this.getQualifiedPreKeyBundle(conversationId, conversationDomain, userIds);
275
289
 
276
290
  const recipients = await this.cryptographyService.encryptQualified(plainTextArray, preKeyBundles);
277
291
 
@@ -281,6 +295,8 @@ export class ConversationService {
281
295
  conversationDomain,
282
296
  recipients,
283
297
  plainTextArray,
298
+ undefined,
299
+ isQualifiedUserClients(userIds), // we want to check mismatch in case the consumer gave an exact list of users/devices
284
300
  );
285
301
  }
286
302
 
@@ -808,10 +824,18 @@ export class ConversationService {
808
824
  }
809
825
 
810
826
  /**
811
- * @param payloadBundle Outgoing message
812
- * @param userIds Only send message to specified user IDs or to certain clients of specified user IDs
813
- * @param [callbacks] Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent. Currently only used for `sendText`.
814
- * @returns Sent message
827
+ * Sends a message to a conversation
828
+ *
829
+ * @param params.payloadBundle The message to send to the conversation
830
+ * @param params.userIds? Can be either a QualifiedId[], string[], UserClients or QualfiedUserClients. The type has some effect on the behavior of the method.
831
+ * When given a QualifiedId[] or string[] the method will fetch the freshest list of devices for those users (since they are not given by the consumer). As a consequence no ClientMismatch error will trigger and we will ignore missing clients when sending
832
+ * When given a QualifiedUserClients or UserClients the method will only send to the clients listed in the userIds. This could lead to ClientMismatch (since the given list of devices might not be the freshest one and new clients could have been created)
833
+ * When given a QualifiedId[] or QualifiedUserClients the method will send the message through the federated API endpoint
834
+ * When given a string[] or UserClients the method will send the message through the old API endpoint
835
+ * @param params.sendAsProtobuf?
836
+ * @param params.conversationDomain? The domain the conversation lives on (if given with QualifiedId[] or QualfiedUserClients in the userIds params, will send the message to the federated endpoint)
837
+ * @param params.callbacks? Optional callbacks that will be called when the message starts being sent and when it has been succesfully sent.
838
+ * @return resolves with the sent message
815
839
  */
816
840
  public async send<T extends OtrMessage = OtrMessage>({
817
841
  payloadBundle,
@@ -6,10 +6,19 @@ export declare class MessageService {
6
6
  private readonly cryptographyService;
7
7
  constructor(apiClient: APIClient, cryptographyService: CryptographyService);
8
8
  sendOTRMessage(sendingClientId: string, recipients: OTRRecipients<Uint8Array>, conversationId: string | null, plainTextArray: Uint8Array, base64CipherText?: string): Promise<ClientMismatch>;
9
+ private isClientMismatchError;
9
10
  private checkFederatedClientsMismatch;
10
- sendFederatedOTRMessage(sendingClientId: string, conversationId: string, conversationDomain: string, recipients: QualifiedOTRRecipients, plainTextArray: Uint8Array, assetData?: Uint8Array): Promise<MessageSendingStatus>;
11
+ sendFederatedOTRMessage(sendingClientId: string, conversationId: string, conversationDomain: string, recipients: QualifiedOTRRecipients, plainTextArray: Uint8Array, assetData?: Uint8Array, reportMissing?: boolean): Promise<MessageSendingStatus>;
11
12
  sendOTRProtobufMessage(sendingClientId: string, recipients: OTRRecipients<Uint8Array>, conversationId: string | null, plainTextArray: Uint8Array, assetData?: Uint8Array): Promise<ClientMismatch>;
12
13
  private onClientMismatch;
13
14
  private onClientProtobufMismatch;
14
- private onFederatedClientMismatch;
15
+ /**
16
+ * Will re-encrypt a message when there were some missing clients in the initial send (typically when the server replies with a client mismatch error)
17
+ *
18
+ * @param {ProtobufOTR.QualifiedNewOtrMessage} messageData The initial message that was sent
19
+ * @param {MessageSendingStatus} messageSendingStatus Info about the missing/deleted clients
20
+ * @param {Uint8Array} plainTextArray The text that should be encrypted for the missing clients
21
+ * @return resolves with a new message payload that can be sent
22
+ */
23
+ private encryptForMissingClients;
15
24
  }
@@ -60,6 +60,10 @@ class MessageService {
60
60
  });
61
61
  }
62
62
  }
63
+ isClientMismatchError(error) {
64
+ var _a;
65
+ return ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http_status_codes_1.StatusCodes.PRECONDITION_FAILED;
66
+ }
63
67
  checkFederatedClientsMismatch(messageData, messageSendingStatus) {
64
68
  var _a, _b, _c, _d;
65
69
  const updatedMessageSendingStatus = Object.assign({}, messageSendingStatus);
@@ -103,7 +107,7 @@ class MessageService {
103
107
  }
104
108
  return updatedMessageSendingStatus;
105
109
  }
106
- async sendFederatedOTRMessage(sendingClientId, conversationId, conversationDomain, recipients, plainTextArray, assetData) {
110
+ async sendFederatedOTRMessage(sendingClientId, conversationId, conversationDomain, recipients, plainTextArray, assetData, reportMissing) {
107
111
  const qualifiedUserEntries = Object.entries(recipients).map(([domain, otrRecipients]) => {
108
112
  const userEntries = Object.entries(otrRecipients).map(([userId, otrClientMap]) => {
109
113
  const clientEntries = Object.entries(otrClientMap).map(([clientId, payload]) => {
@@ -137,14 +141,28 @@ class MessageService {
137
141
  * missing clients. We have to ignore missing clients because there can be the case that there are clients that
138
142
  * don't provide PreKeys (clients from the Pre-E2EE era).
139
143
  */
140
- protoMessage.ignoreAll = {};
141
- const messageSendingStatus = await this.apiClient.conversation.api.postOTRMessageV2(conversationId, conversationDomain, protoMessage);
142
- const federatedClientsMismatch = this.checkFederatedClientsMismatch(protoMessage, messageSendingStatus);
143
- if (federatedClientsMismatch) {
144
- const reEncryptedMessage = await this.onFederatedClientMismatch(protoMessage, federatedClientsMismatch, plainTextArray);
144
+ if (reportMissing) {
145
+ protoMessage.reportAll = {};
146
+ }
147
+ else {
148
+ protoMessage.ignoreAll = {};
149
+ }
150
+ let sendingStatus;
151
+ try {
152
+ sendingStatus = await this.apiClient.conversation.api.postOTRMessageV2(conversationId, conversationDomain, protoMessage);
153
+ }
154
+ catch (error) {
155
+ if (!this.isClientMismatchError(error)) {
156
+ throw error;
157
+ }
158
+ sendingStatus = error.response.data;
159
+ }
160
+ const mismatch = this.checkFederatedClientsMismatch(protoMessage, sendingStatus);
161
+ if (mismatch) {
162
+ const reEncryptedMessage = await this.encryptForMissingClients(protoMessage, mismatch, plainTextArray);
145
163
  await this.apiClient.conversation.api.postOTRMessageV2(conversationId, conversationDomain, reEncryptedMessage);
146
164
  }
147
- return messageSendingStatus;
165
+ return sendingStatus;
148
166
  }
149
167
  async sendOTRProtobufMessage(sendingClientId, recipients, conversationId, plainTextArray, assetData) {
150
168
  const userEntries = Object.entries(recipients).map(([userId, otrClientMap]) => {
@@ -274,7 +292,15 @@ class MessageService {
274
292
  }
275
293
  throw error;
276
294
  }
277
- async onFederatedClientMismatch(messageData, messageSendingStatus, plainTextArray) {
295
+ /**
296
+ * Will re-encrypt a message when there were some missing clients in the initial send (typically when the server replies with a client mismatch error)
297
+ *
298
+ * @param {ProtobufOTR.QualifiedNewOtrMessage} messageData The initial message that was sent
299
+ * @param {MessageSendingStatus} messageSendingStatus Info about the missing/deleted clients
300
+ * @param {Uint8Array} plainTextArray The text that should be encrypted for the missing clients
301
+ * @return resolves with a new message payload that can be sent
302
+ */
303
+ async encryptForMissingClients(messageData, messageSendingStatus, plainTextArray) {
278
304
  var _a, _b, _c;
279
305
  var _d;
280
306
  // walk through deleted domain/user map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageService.js","sourceRoot":"","sources":["MessageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageService.js","sourceRoot":"","sources":["MessageService.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,10 @@ export class MessageService {
88
88
  }
89
89
  }
90
90
 
91
+ private isClientMismatchError(error: any): error is ClientMismatchError {
92
+ return error.response?.status === HTTP_STATUS.PRECONDITION_FAILED;
93
+ }
94
+
91
95
  private checkFederatedClientsMismatch(
92
96
  messageData: ProtobufOTR.QualifiedNewOtrMessage,
93
97
  messageSendingStatus: MessageSendingStatus,
@@ -149,6 +153,7 @@ export class MessageService {
149
153
  recipients: QualifiedOTRRecipients,
150
154
  plainTextArray: Uint8Array,
151
155
  assetData?: Uint8Array,
156
+ reportMissing?: boolean,
152
157
  ): Promise<MessageSendingStatus> {
153
158
  const qualifiedUserEntries = Object.entries(recipients).map<ProtobufOTR.IQualifiedUserEntry>(
154
159
  ([domain, otrRecipients]) => {
@@ -190,25 +195,33 @@ export class MessageService {
190
195
  * missing clients. We have to ignore missing clients because there can be the case that there are clients that
191
196
  * don't provide PreKeys (clients from the Pre-E2EE era).
192
197
  */
193
- protoMessage.ignoreAll = {};
194
-
195
- const messageSendingStatus = await this.apiClient.conversation.api.postOTRMessageV2(
196
- conversationId,
197
- conversationDomain,
198
- protoMessage,
199
- );
200
-
201
- const federatedClientsMismatch = this.checkFederatedClientsMismatch(protoMessage, messageSendingStatus);
198
+ if (reportMissing) {
199
+ protoMessage.reportAll = {};
200
+ } else {
201
+ protoMessage.ignoreAll = {};
202
+ }
202
203
 
203
- if (federatedClientsMismatch) {
204
- const reEncryptedMessage = await this.onFederatedClientMismatch(
204
+ let sendingStatus: MessageSendingStatus;
205
+ try {
206
+ sendingStatus = await this.apiClient.conversation.api.postOTRMessageV2(
207
+ conversationId,
208
+ conversationDomain,
205
209
  protoMessage,
206
- federatedClientsMismatch,
207
- plainTextArray,
208
210
  );
211
+ } catch (error) {
212
+ if (!this.isClientMismatchError(error)) {
213
+ throw error;
214
+ }
215
+ sendingStatus = error.response!.data! as unknown as MessageSendingStatus;
216
+ }
217
+
218
+ const mismatch = this.checkFederatedClientsMismatch(protoMessage, sendingStatus);
219
+
220
+ if (mismatch) {
221
+ const reEncryptedMessage = await this.encryptForMissingClients(protoMessage, mismatch, plainTextArray);
209
222
  await this.apiClient.conversation.api.postOTRMessageV2(conversationId, conversationDomain, reEncryptedMessage);
210
223
  }
211
- return messageSendingStatus;
224
+ return sendingStatus;
212
225
  }
213
226
 
214
227
  public async sendOTRProtobufMessage(
@@ -383,7 +396,15 @@ export class MessageService {
383
396
  throw error;
384
397
  }
385
398
 
386
- private async onFederatedClientMismatch(
399
+ /**
400
+ * Will re-encrypt a message when there were some missing clients in the initial send (typically when the server replies with a client mismatch error)
401
+ *
402
+ * @param {ProtobufOTR.QualifiedNewOtrMessage} messageData The initial message that was sent
403
+ * @param {MessageSendingStatus} messageSendingStatus Info about the missing/deleted clients
404
+ * @param {Uint8Array} plainTextArray The text that should be encrypted for the missing clients
405
+ * @return resolves with a new message payload that can be sent
406
+ */
407
+ private async encryptForMissingClients(
387
408
  messageData: ProtobufOTR.QualifiedNewOtrMessage,
388
409
  messageSendingStatus: MessageSendingStatus,
389
410
  plainTextArray: Uint8Array,
@@ -1,7 +1,7 @@
1
1
  import type { APIClient } from '@wireapp/api-client';
2
2
  import type { PreKey as SerializedPreKey } from '@wireapp/api-client/src/auth/';
3
3
  import type { RegisteredClient } from '@wireapp/api-client/src/client/';
4
- import type { OTRRecipients, QualifiedOTRRecipients } from '@wireapp/api-client/src/conversation/';
4
+ import type { OTRRecipients, QualifiedOTRRecipients, QualifiedUserClients, UserClients } from '@wireapp/api-client/src/conversation/';
5
5
  import type { ConversationOtrMessageAddEvent } from '@wireapp/api-client/src/event';
6
6
  import type { QualifiedUserPreKeyBundleMap, UserPreKeyBundleMap } from '@wireapp/api-client/src/user/';
7
7
  import { Cryptobox } from '@wireapp/cryptobox';
@@ -26,8 +26,8 @@ export declare class CryptographyService {
26
26
  createCryptobox(): Promise<SerializedPreKey[]>;
27
27
  decrypt(sessionId: string, encodedCiphertext: string): Promise<Uint8Array>;
28
28
  private static dismantleSessionId;
29
- encryptQualified(plainText: Uint8Array, preKeyBundles: QualifiedUserPreKeyBundleMap): Promise<QualifiedOTRRecipients>;
30
- encrypt(plainText: Uint8Array, preKeyBundles: UserPreKeyBundleMap, domain?: string): Promise<OTRRecipients<Uint8Array>>;
29
+ encryptQualified(plainText: Uint8Array, preKeyBundles: QualifiedUserPreKeyBundleMap | QualifiedUserClients): Promise<QualifiedOTRRecipients>;
30
+ encrypt(plainText: Uint8Array, users: UserPreKeyBundleMap | UserClients, domain?: string): Promise<OTRRecipients<Uint8Array>>;
31
31
  private encryptPayloadForSession;
32
32
  initCryptobox(): Promise<void>;
33
33
  deleteCryptographyStores(): Promise<boolean[]>;
@@ -28,6 +28,7 @@ const protocol_messaging_1 = require("@wireapp/protocol-messaging");
28
28
  const bazinga64_1 = require("bazinga64");
29
29
  const logdown_1 = __importDefault(require("logdown"));
30
30
  const conversation_1 = require("../conversation");
31
+ const util_1 = require("../util");
31
32
  const CryptographyDatabaseRepository_1 = require("./CryptographyDatabaseRepository");
32
33
  const GenericMessageMapper_1 = require("./GenericMessageMapper");
33
34
  class CryptographyService {
@@ -92,31 +93,33 @@ class CryptographyService {
92
93
  }
93
94
  return qualifiedOTRRecipients;
94
95
  }
95
- async encrypt(plainText, preKeyBundles, domain) {
96
- const recipients = {};
96
+ async encrypt(plainText, users, domain) {
97
97
  const bundles = [];
98
- for (const userId in preKeyBundles) {
99
- recipients[userId] = {};
100
- for (const clientId in preKeyBundles[userId]) {
101
- const { key: base64PreKey } = preKeyBundles[userId][clientId];
98
+ for (const userId in users) {
99
+ const clientIds = (0, util_1.isUserClients)(users) ? users[userId] : Object.keys(users[userId]);
100
+ for (const clientId of clientIds) {
101
+ const base64PreKey = (0, util_1.isUserClients)(users) ? undefined : users[userId][clientId].key;
102
102
  const sessionId = CryptographyService.constructSessionId(userId, clientId, domain || null);
103
103
  bundles.push(this.encryptPayloadForSession(sessionId, plainText, base64PreKey));
104
104
  }
105
105
  }
106
106
  const payloads = await Promise.all(bundles);
107
- payloads.forEach(payload => {
107
+ return payloads.reduce((recipients, payload) => {
108
108
  const { encryptedPayload, sessionId } = payload;
109
109
  const { userId, clientId } = CryptographyService.dismantleSessionId(sessionId);
110
+ recipients[userId] || (recipients[userId] = {});
110
111
  recipients[userId][clientId] = encryptedPayload;
111
- });
112
- return recipients;
112
+ return recipients;
113
+ }, {});
113
114
  }
114
115
  async encryptPayloadForSession(sessionId, plainText, base64EncodedPreKey) {
115
116
  this.logger.log(`Encrypting payload for session ID "${sessionId}"`);
116
117
  let encryptedPayload;
117
118
  try {
118
- const decodedPreKeyBundle = bazinga64_1.Decoder.fromBase64(base64EncodedPreKey).asBytes;
119
- const payloadAsArrayBuffer = await this.cryptobox.encrypt(sessionId, plainText, decodedPreKeyBundle.buffer);
119
+ const decodedPreKeyBundle = base64EncodedPreKey
120
+ ? bazinga64_1.Decoder.fromBase64(base64EncodedPreKey).asBytes.buffer
121
+ : undefined;
122
+ const payloadAsArrayBuffer = await this.cryptobox.encrypt(sessionId, plainText, decodedPreKeyBundle);
120
123
  encryptedPayload = new Uint8Array(payloadAsArrayBuffer);
121
124
  }
122
125
  catch (error) {
@@ -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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"}
@@ -20,7 +20,13 @@
20
20
  import type {APIClient} from '@wireapp/api-client';
21
21
  import type {PreKey as SerializedPreKey} from '@wireapp/api-client/src/auth/';
22
22
  import type {RegisteredClient} from '@wireapp/api-client/src/client/';
23
- import type {OTRClientMap, OTRRecipients, QualifiedOTRRecipients} from '@wireapp/api-client/src/conversation/';
23
+ import type {
24
+ OTRClientMap,
25
+ OTRRecipients,
26
+ QualifiedOTRRecipients,
27
+ QualifiedUserClients,
28
+ UserClients,
29
+ } from '@wireapp/api-client/src/conversation/';
24
30
  import type {ConversationOtrMessageAddEvent} from '@wireapp/api-client/src/event';
25
31
  import type {QualifiedUserPreKeyBundleMap, UserPreKeyBundleMap} from '@wireapp/api-client/src/user/';
26
32
  import {Cryptobox} from '@wireapp/cryptobox';
@@ -32,6 +38,7 @@ import logdown from 'logdown';
32
38
 
33
39
  import {GenericMessageType, PayloadBundle, PayloadBundleSource} from '../conversation';
34
40
  import type {SessionPayloadBundle} from '../cryptography/';
41
+ import {isUserClients} from '../util';
35
42
  import {CryptographyDatabaseRepository} from './CryptographyDatabaseRepository';
36
43
  import {GenericMessageMapper} from './GenericMessageMapper';
37
44
 
@@ -118,7 +125,7 @@ export class CryptographyService {
118
125
 
119
126
  public async encryptQualified(
120
127
  plainText: Uint8Array,
121
- preKeyBundles: QualifiedUserPreKeyBundleMap,
128
+ preKeyBundles: QualifiedUserPreKeyBundleMap | QualifiedUserClients,
122
129
  ): Promise<QualifiedOTRRecipients> {
123
130
  const qualifiedOTRRecipients: QualifiedOTRRecipients = {};
124
131
 
@@ -131,17 +138,15 @@ export class CryptographyService {
131
138
 
132
139
  public async encrypt(
133
140
  plainText: Uint8Array,
134
- preKeyBundles: UserPreKeyBundleMap,
141
+ users: UserPreKeyBundleMap | UserClients,
135
142
  domain?: string,
136
143
  ): Promise<OTRRecipients<Uint8Array>> {
137
- const recipients: OTRRecipients<Uint8Array> = {};
138
144
  const bundles: Promise<SessionPayloadBundle>[] = [];
139
145
 
140
- for (const userId in preKeyBundles) {
141
- recipients[userId] = {};
142
-
143
- for (const clientId in preKeyBundles[userId]) {
144
- const {key: base64PreKey} = preKeyBundles[userId][clientId];
146
+ for (const userId in users) {
147
+ const clientIds = isUserClients(users) ? users[userId] : Object.keys(users[userId]);
148
+ for (const clientId of clientIds) {
149
+ const base64PreKey = isUserClients(users) ? undefined : users[userId][clientId].key;
145
150
  const sessionId = CryptographyService.constructSessionId(userId, clientId, domain || null);
146
151
  bundles.push(this.encryptPayloadForSession(sessionId, plainText, base64PreKey));
147
152
  }
@@ -149,27 +154,29 @@ export class CryptographyService {
149
154
 
150
155
  const payloads = await Promise.all(bundles);
151
156
 
152
- payloads.forEach(payload => {
157
+ return payloads.reduce((recipients, payload) => {
153
158
  const {encryptedPayload, sessionId} = payload;
154
159
  const {userId, clientId} = CryptographyService.dismantleSessionId(sessionId);
160
+ recipients[userId] ||= {};
155
161
  recipients[userId][clientId] = encryptedPayload;
156
- });
157
-
158
- return recipients;
162
+ return recipients;
163
+ }, {} as OTRRecipients<Uint8Array>);
159
164
  }
160
165
 
161
166
  private async encryptPayloadForSession(
162
167
  sessionId: string,
163
168
  plainText: Uint8Array,
164
- base64EncodedPreKey: string,
169
+ base64EncodedPreKey?: string,
165
170
  ): Promise<SessionPayloadBundle> {
166
171
  this.logger.log(`Encrypting payload for session ID "${sessionId}"`);
167
172
 
168
173
  let encryptedPayload: Uint8Array;
169
174
 
170
175
  try {
171
- const decodedPreKeyBundle = Decoder.fromBase64(base64EncodedPreKey).asBytes;
172
- const payloadAsArrayBuffer = await this.cryptobox.encrypt(sessionId, plainText, decodedPreKeyBundle.buffer);
176
+ const decodedPreKeyBundle = base64EncodedPreKey
177
+ ? Decoder.fromBase64(base64EncodedPreKey).asBytes.buffer
178
+ : undefined;
179
+ const payloadAsArrayBuffer = await this.cryptobox.encrypt(sessionId, plainText, decodedPreKeyBundle);
173
180
  encryptedPayload = new Uint8Array(payloadAsArrayBuffer);
174
181
  } catch (error) {
175
182
  this.logger.error(`Could not encrypt payload: ${(error as Error).message}`);