@wireapp/core 38.12.1 → 38.13.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.
Files changed (52) hide show
  1. package/lib/Account.d.ts +4 -6
  2. package/lib/Account.d.ts.map +1 -1
  3. package/lib/Account.js +3 -25
  4. package/lib/messagingProtocols/mls/types.d.ts +10 -6
  5. package/lib/messagingProtocols/mls/types.d.ts.map +1 -1
  6. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{CoreCryptoWrapper.d.ts → CoreCryptoWrapper/CoreCryptoWrapper.d.ts} +10 -4
  7. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.d.ts.map +1 -0
  8. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{CoreCryptoWrapper.js → CoreCryptoWrapper/CoreCryptoWrapper.js} +35 -6
  9. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.d.ts +2 -2
  10. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.d.ts.map +1 -0
  11. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.js +0 -0
  12. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.store.d.ts +1 -1
  13. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.store.d.ts.map +1 -0
  14. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.store.js +0 -0
  15. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.test.d.ts +0 -0
  16. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.test.d.ts.map +1 -0
  17. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/PrekeysTracker.test.js +1 -1
  18. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/index.d.ts +0 -0
  19. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/index.d.ts.map +1 -0
  20. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper/PrekeysTracker}/index.js +0 -0
  21. package/lib/{util → messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper}/encryptedStore.d.ts +0 -0
  22. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/encryptedStore.d.ts.map +1 -0
  23. package/lib/{util → messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper}/encryptedStore.js +0 -0
  24. package/lib/{util → messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper}/encryptedStore.test.node.d.ts +0 -0
  25. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/encryptedStore.test.node.d.ts.map +1 -0
  26. package/lib/{util → messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper}/encryptedStore.test.node.js +0 -0
  27. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/index.d.ts +2 -0
  28. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/{PrekeysTracker → CoreCryptoWrapper}/index.d.ts.map +1 -1
  29. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/index.js +35 -0
  30. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.d.ts +13 -0
  31. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.d.ts.map +1 -0
  32. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.js +83 -0
  33. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.test.d.ts +2 -0
  34. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.test.d.ts.map +1 -0
  35. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.test.js +118 -0
  36. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.d.ts +4 -3
  37. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.d.ts.map +1 -1
  38. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.js +3 -2
  39. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts +0 -1
  40. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts.map +1 -1
  41. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.js +0 -2
  42. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoboxWrapper.d.ts.map +1 -1
  43. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoboxWrapper.js +2 -2
  44. package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.js +1 -1
  45. package/lib/messagingProtocols/proteus/ProteusService/ProteusService.test.js +1 -1
  46. package/package.json +2 -2
  47. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper.d.ts.map +0 -1
  48. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.d.ts.map +0 -1
  49. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.store.d.ts.map +0 -1
  50. package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.test.d.ts.map +0 -1
  51. package/lib/util/encryptedStore.d.ts.map +0 -1
  52. package/lib/util/encryptedStore.test.node.d.ts.map +0 -1
package/lib/Account.d.ts CHANGED
@@ -37,7 +37,7 @@ export declare enum ConnectionState {
37
37
  LIVE = "live"
38
38
  }
39
39
  export type CreateStoreFn = (storeName: string, context: Context) => undefined | Promise<CRUDEngine | undefined>;
40
- interface AccountOptions<T> {
40
+ interface AccountOptions {
41
41
  /** Used to store info in the database (will create a inMemory engine if returns undefined) */
42
42
  createStore?: CreateStoreFn;
43
43
  /** Number of prekeys to generate when creating a new device (defaults to 2)
@@ -53,7 +53,7 @@ interface AccountOptions<T> {
53
53
  /**
54
54
  * Config for MLS and proteus devices. Will fallback to the old proteus logic if not provided
55
55
  */
56
- cryptoProtocolConfig?: CryptoProtocolConfig<T>;
56
+ cryptoProtocolConfig?: CryptoProtocolConfig;
57
57
  }
58
58
  type InitOptions = {
59
59
  /** cookie used to identify the current user. Will use the browser cookie if not defined */
@@ -62,13 +62,12 @@ type InitOptions = {
62
62
  type Events = {
63
63
  [EVENTS.NEW_SESSION]: NewClient;
64
64
  };
65
- export declare class Account<T = any> extends TypedEventEmitter<Events> {
65
+ export declare class Account extends TypedEventEmitter<Events> {
66
66
  private readonly apiClient;
67
67
  private readonly logger;
68
68
  private readonly createStore;
69
69
  private storeEngine?;
70
70
  private db?;
71
- private secretsDb?;
72
71
  private readonly nbPrekeys;
73
72
  private readonly cryptoProtocolConfig?;
74
73
  service?: {
@@ -92,7 +91,7 @@ export declare class Account<T = any> extends TypedEventEmitter<Events> {
92
91
  * @param apiClient The apiClient instance to use in the core (will create a new new one if undefined)
93
92
  * @param accountOptions
94
93
  */
95
- constructor(apiClient?: APIClient, { createStore, nbPrekeys, cryptoProtocolConfig }?: AccountOptions<T>);
94
+ constructor(apiClient?: APIClient, { createStore, nbPrekeys, cryptoProtocolConfig }?: AccountOptions);
96
95
  /**
97
96
  * Will set the APIClient to use a specific version of the API (by default uses version 0)
98
97
  * It will fetch the API Config and use the highest possible version
@@ -138,7 +137,6 @@ export declare class Account<T = any> extends TypedEventEmitter<Events> {
138
137
  * @returns The local existing client or undefined if the client does not exist or is not valid (non existing on backend)
139
138
  */
140
139
  initClient(client?: RegisteredClient): Promise<RegisteredClient | undefined>;
141
- private generateSecretKey;
142
140
  private buildCryptoClient;
143
141
  /**
144
142
  * In order to be able to send MLS messages, the core needs a few information from the consumer.
@@ -1 +1 @@
1
- {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../src/Account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../src/Account.ts"],"names":[],"mappings":"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"}
package/lib/Account.js CHANGED
@@ -54,7 +54,6 @@ const self_1 = require("./self/");
54
54
  const CoreDB_1 = require("./storage/CoreDB");
55
55
  const team_1 = require("./team/");
56
56
  const user_1 = require("./user/");
57
- const encryptedStore_1 = require("./util/encryptedStore");
58
57
  const TypedEventEmitter_1 = require("./util/TypedEventEmitter");
59
58
  var EVENTS;
60
59
  (function (EVENTS) {
@@ -219,36 +218,16 @@ class Account extends TypedEventEmitter_1.TypedEventEmitter {
219
218
  }
220
219
  return validClient;
221
220
  }
222
- async generateSecretKey(baseDbName) {
223
- var _a, _b;
224
- const coreCryptoKeyId = 'corecrypto-key';
225
- const dbName = `secrets-${baseDbName}`;
226
- const systemCrypto = (_a = this.cryptoProtocolConfig) === null || _a === void 0 ? void 0 : _a.systemCrypto;
227
- this.secretsDb = systemCrypto
228
- ? await (0, encryptedStore_1.createCustomEncryptedStore)(dbName, systemCrypto)
229
- : await (0, encryptedStore_1.createEncryptedStore)(dbName);
230
- let key = await this.secretsDb.getsecretValue(coreCryptoKeyId);
231
- if (!key) {
232
- key = crypto.getRandomValues(new Uint8Array(16));
233
- await this.secretsDb.saveSecretValue(coreCryptoKeyId, key);
234
- }
235
- await ((_b = this.secretsDb) === null || _b === void 0 ? void 0 : _b.close());
236
- return key;
237
- }
238
221
  async buildCryptoClient(context, storeEngine, db, enableMLS) {
239
- var _a, _b;
222
+ var _a, _b, _c;
240
223
  const clientType = enableMLS || !!((_a = this.cryptoProtocolConfig) === null || _a === void 0 ? void 0 : _a.useCoreCrypto)
241
224
  ? CryptoClient_1.CryptoClientType.CORE_CRYPTO
242
225
  : CryptoClient_1.CryptoClientType.CRYPTOBOX;
243
- let key = Uint8Array.from([]);
244
- if (clientType === CryptoClient_1.CryptoClientType.CORE_CRYPTO) {
245
- key = await this.generateSecretKey(storeEngine.storeName);
246
- }
247
226
  return (0, CryptoClient_1.buildCryptoClient)(clientType, db, {
248
227
  storeEngine,
249
- secretKey: key,
250
228
  nbPrekeys: this.nbPrekeys,
251
229
  coreCryptoWasmFilePath: (_b = this.cryptoProtocolConfig) === null || _b === void 0 ? void 0 : _b.coreCrypoWasmFilePath,
230
+ systemCrypto: (_c = this.cryptoProtocolConfig) === null || _c === void 0 ? void 0 : _c.systemCrypto,
252
231
  onNewPrekeys: async (prekeys) => {
253
232
  this.logger.debug(`Received '${prekeys.length}' new PreKeys.`);
254
233
  await this.apiClient.api.client.putClient(context.clientId, { prekeys });
@@ -333,9 +312,8 @@ class Account extends TypedEventEmitter_1.TypedEventEmitter {
333
312
  * Will delete the identity of the current user
334
313
  */
335
314
  async wipe() {
336
- var _a, _b;
315
+ var _a;
337
316
  await ((_a = this.service) === null || _a === void 0 ? void 0 : _a.proteus.wipe(this.storeEngine));
338
- await ((_b = this.secretsDb) === null || _b === void 0 ? void 0 : _b.wipe());
339
317
  if (this.db) {
340
318
  await (0, CoreDB_1.deleteDB)(this.db);
341
319
  }
@@ -1,9 +1,14 @@
1
1
  import { Conversation, ConversationProtocol } from '@wireapp/api-client/lib/conversation';
2
2
  import { QualifiedId } from '@wireapp/api-client/lib/user';
3
3
  import { CoreCryptoCallbacks } from '@wireapp/core-crypto';
4
- type SecretCrypto<T> = {
5
- encrypt: (value: Uint8Array) => Promise<T>;
6
- decrypt: (payload: T) => Promise<Uint8Array>;
4
+ export type SecretCrypto = {
5
+ encrypt: (value: Uint8Array) => Promise<Uint8Array>;
6
+ decrypt: (payload: Uint8Array) => Promise<Uint8Array>;
7
+ version: undefined;
8
+ } | {
9
+ encrypt: (value: string) => Promise<Uint8Array>;
10
+ decrypt: (payload: Uint8Array) => Promise<string>;
11
+ version: 1;
7
12
  };
8
13
  export interface MLSCallbacks extends Pick<CoreCryptoCallbacks, 'authorize' | 'userAuthorize'> {
9
14
  /**
@@ -24,12 +29,12 @@ export type HandlePendingProposalsParams = {
24
29
  export type CommitPendingProposalsParams = {
25
30
  skipDelete?: boolean;
26
31
  } & CommonMLS;
27
- export interface CryptoProtocolConfig<T = any> {
32
+ export interface CryptoProtocolConfig {
28
33
  /**
29
34
  * encrypt/decrypt function pair that will be called before storing/fetching secrets in the secrets database.
30
35
  * If not provided will use the built in encryption mechanism
31
36
  */
32
- systemCrypto?: SecretCrypto<T>;
37
+ systemCrypto?: SecretCrypto;
33
38
  useCoreCrypto?: boolean;
34
39
  /**
35
40
  * path on the public server to the core crypto wasm file.
@@ -52,5 +57,4 @@ export type MLSConversation = Conversation & {
52
57
  epoch: number;
53
58
  group_id: string;
54
59
  };
55
- export {};
56
60
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/messagingProtocols/mls/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAEzD,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,CAAC;IAC5F;;;;;OAKG;IACH,yBAAyB,EAAE,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACzF;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,SAAS,CAAC;AAEd,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B,uEAAuE;IACvE,GAAG,CAAC,EAAE;QACJ;;WAEG;QACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IAEF,oKAAoK;IACpK,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/messagingProtocols/mls/types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,YAAY,GACpB;IACE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,SAAS,CAAC;CACpB,GACD;IACE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEN,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,eAAe,CAAC;IAC5F;;;;;OAKG;IACH,yBAAyB,EAAE,CAAC,cAAc,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACzF;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,SAAS,CAAC;AAEd,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B,uEAAuE;IACvE,GAAG,CAAC,EAAE;QACJ;;WAEG;QACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IAEF,oKAAoK;IACpK,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -1,17 +1,23 @@
1
1
  import { PreKey } from '@wireapp/api-client/lib/auth';
2
2
  import { CoreCrypto } from '@wireapp/core-crypto';
3
3
  import type { CRUDEngine } from '@wireapp/store-engine';
4
- import { CryptoClient } from './CryptoClient.types';
5
- import { CoreDatabase } from '../../../../storage/CoreDB';
4
+ import { CoreDatabase } from '../../../../../storage/CoreDB';
5
+ import { SecretCrypto } from '../../../../mls/types';
6
+ import { CryptoClient } from '../CryptoClient.types';
6
7
  type Config = {
8
+ systemCrypto?: SecretCrypto;
7
9
  nbPrekeys: number;
8
10
  onNewPrekeys: (prekeys: PreKey[]) => void;
9
11
  };
10
- export declare function buildClient(storeEngine: CRUDEngine, secretKey: Uint8Array, coreCryptoWasmFilePath: string, db: CoreDatabase, { nbPrekeys, onNewPrekeys }: Config): Promise<CoreCryptoWrapper>;
12
+ type ClientConfig = Config & {
13
+ onWipe: () => Promise<void>;
14
+ };
15
+ export declare function buildClient(storeEngine: CRUDEngine, coreCryptoWasmFilePath: string, db: CoreDatabase, { systemCrypto, nbPrekeys, onNewPrekeys }: Config): Promise<CoreCryptoWrapper>;
11
16
  export declare class CoreCryptoWrapper implements CryptoClient {
12
17
  private readonly coreCrypto;
18
+ private readonly config;
13
19
  private readonly prekeyTracker;
14
- constructor(coreCrypto: CoreCrypto, db: CoreDatabase, config: Config);
20
+ constructor(coreCrypto: CoreCrypto, db: CoreDatabase, config: ClientConfig);
15
21
  getNativeClient(): CoreCrypto;
16
22
  encrypt(sessions: string[], plainText: Uint8Array): Promise<Map<string, Uint8Array>>;
17
23
  decrypt(sessionId: string, message: Uint8Array): Promise<Uint8Array>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreCryptoWrapper.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAIpD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAEnD,KAAK,MAAM,GAAG;IACZ,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,KAAK,YAAY,GAAG,MAAM,GAAG;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,WAAW,EAAE,UAAU,EACvB,sBAAsB,EAAE,MAAM,EAC9B,EAAE,EAAE,YAAY,EAChB,EAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAC,EAAE,MAAM,GAC9C,OAAO,CAAC,iBAAiB,CAAC,CA4B5B;AAED,qBAAa,iBAAkB,YAAW,YAAY;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAgC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAF9F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAEjB,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAmB,MAAM,EAAE,YAAY;IAI5G,eAAe;IAIf,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU;IAIjD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAI9C,IAAI;IAIE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU;;;;;;;IAsBpD,cAAc;IAId,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAIhC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAK/D,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAIvD,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,WAAW,CAAC,SAAS,EAAE,MAAM;IAI7B,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,aAAa;IAIP,SAAS,CAAC,EAAE,EAAE,MAAM;;;;IAKpB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAUnC,kBAAkB;IAIlB,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,IAAI;CAIX"}
@@ -20,21 +20,46 @@
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.CoreCryptoWrapper = exports.buildClient = void 0;
22
22
  const bazinga64_1 = require("bazinga64");
23
+ const idb_1 = require("idb");
23
24
  const core_crypto_1 = require("@wireapp/core-crypto");
24
- const CryptoClient_types_1 = require("./CryptoClient.types");
25
25
  const PrekeysTracker_1 = require("./PrekeysTracker");
26
- async function buildClient(storeEngine, secretKey, coreCryptoWasmFilePath, db, { nbPrekeys, onNewPrekeys }) {
26
+ const secretKeyGenerator_1 = require("./secretKeyGenerator");
27
+ async function buildClient(storeEngine, coreCryptoWasmFilePath, db, { systemCrypto, nbPrekeys, onNewPrekeys }) {
28
+ let key;
29
+ const coreCryptoDbName = `corecrypto-${storeEngine.storeName}`;
30
+ const secretKeysDbName = `secrets-${storeEngine.storeName}`;
31
+ try {
32
+ key = await (0, secretKeyGenerator_1.generateSecretKey)({
33
+ dbName: secretKeysDbName,
34
+ systemCrypto,
35
+ });
36
+ }
37
+ catch (error) {
38
+ if (error instanceof secretKeyGenerator_1.CorruptedKeyError) {
39
+ // If we are dealing with a corrupted key, we wipe the key and the coreCrypto DB to start fresh
40
+ await (0, idb_1.deleteDB)(secretKeysDbName);
41
+ await (0, idb_1.deleteDB)(coreCryptoDbName);
42
+ key = await (0, secretKeyGenerator_1.generateSecretKey)({
43
+ dbName: secretKeysDbName,
44
+ systemCrypto,
45
+ });
46
+ }
47
+ else {
48
+ throw error;
49
+ }
50
+ }
27
51
  const coreCrypto = await core_crypto_1.CoreCrypto.deferredInit({
28
- databaseName: `corecrypto-${storeEngine.storeName}`,
29
- key: bazinga64_1.Encoder.toBase64(secretKey).asString,
52
+ databaseName: coreCryptoDbName,
53
+ key: bazinga64_1.Encoder.toBase64(key.key).asString,
30
54
  wasmFilePath: coreCryptoWasmFilePath,
31
55
  });
32
- return new CoreCryptoWrapper(coreCrypto, db, { nbPrekeys, onNewPrekeys });
56
+ return new CoreCryptoWrapper(coreCrypto, db, { nbPrekeys, onNewPrekeys, onWipe: key.deleteKey });
33
57
  }
34
58
  exports.buildClient = buildClient;
35
59
  class CoreCryptoWrapper {
36
60
  constructor(coreCrypto, db, config) {
37
61
  this.coreCrypto = coreCrypto;
62
+ this.config = config;
38
63
  this.prekeyTracker = new PrekeysTracker_1.PrekeyTracker(this, db, config);
39
64
  }
40
65
  getNativeClient() {
@@ -59,9 +84,12 @@ class CoreCryptoWrapper {
59
84
  prekeys.push(await this.newPrekey(id));
60
85
  }
61
86
  await this.prekeyTracker.setInitialState(prekeys.length);
87
+ const lastPrekeyBytes = await this.coreCrypto.proteusLastResortPrekey();
88
+ const lastPrekey = bazinga64_1.Encoder.toBase64(lastPrekeyBytes).asString;
89
+ const lastPrekeyId = core_crypto_1.CoreCrypto.proteusLastResortPrekeyId();
62
90
  return {
63
91
  prekeys,
64
- lastPrekey: await this.newPrekey(CryptoClient_types_1.LAST_PREKEY_ID),
92
+ lastPrekey: { id: lastPrekeyId, key: lastPrekey },
65
93
  };
66
94
  }
67
95
  getFingerprint() {
@@ -109,6 +137,7 @@ class CoreCryptoWrapper {
109
137
  return this.coreCrypto.proteusCryptoboxMigrate(dbName);
110
138
  }
111
139
  async wipe() {
140
+ await this.config.onWipe();
112
141
  return this.coreCrypto.wipe();
113
142
  }
114
143
  }
@@ -1,6 +1,6 @@
1
1
  import { PreKey } from '@wireapp/api-client/lib/auth';
2
- import { CryptoClient } from '..';
3
- import type { CoreDatabase } from '../../../../../storage/CoreDB';
2
+ import { CryptoClient } from '../..';
3
+ import type { CoreDatabase } from '../../../../../../storage/CoreDB';
4
4
  type CoreCryptoPrekeyGenerator = Pick<CryptoClient, 'newPrekey'>;
5
5
  interface PrekeysGeneratorConfig {
6
6
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrekeysTracker.d.ts","sourceRoot":"","sources":["../../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAIpD,OAAO,EAAC,YAAY,EAAC,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAEnE,KAAK,yBAAyB,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAEjE,UAAU,sBAAsB;IAC9B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,WAAW,CAAsB;gBAGtB,SAAS,EAAE,yBAAyB,EACrD,EAAE,EAAE,YAAY,EACR,MAAM,EAAE,sBAAsB;YAK1B,eAAe;IASvB,aAAa;IAUb,eAAe,CAAC,gBAAgB,EAAE,MAAM;IAI9C,OAAO,CAAC,sBAAsB;CAK/B"}
@@ -1,4 +1,4 @@
1
- import { CoreDatabase } from '../../../../../storage/CoreDB';
1
+ import { CoreDatabase } from '../../../../../../storage/CoreDB';
2
2
  export declare class PrekeysTrackerStore {
3
3
  private readonly db;
4
4
  constructor(db: CoreDatabase);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrekeysTracker.store.d.ts","sourceRoot":"","sources":["../../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.store.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAQ9D,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;YAE/B,QAAQ;YAIR,SAAS;IAIvB;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOhC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAMlD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrekeysTracker.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/PrekeysTracker.test.ts"],"names":[],"mappings":""}
@@ -19,7 +19,7 @@
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  const PrekeysTracker_1 = require("./PrekeysTracker");
22
- const CoreDB_1 = require("../../../../../storage/CoreDB");
22
+ const CoreDB_1 = require("../../../../../../storage/CoreDB");
23
23
  describe('PrekeysGenerator', () => {
24
24
  let db;
25
25
  const baseConfig = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/PrekeysTracker/index.ts"],"names":[],"mappings":"AAmBA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/encryptedStore.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAmB,MAAM,KAAK,CAAC;AAE7D,UAAU,uBAAuB;IAC/B,EAAE,EAAE,UAAU,GAAG,WAAW,CAAC;IAC7B,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;CACjC;AACD,UAAU,WAAW,CAAC,gBAAgB,CAAE,SAAQ,QAAQ;IACtD,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,SAAS,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,gBAAgB,CAAC;KACzB,CAAC;CACH;AAED,KAAK,SAAS,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AACtF,KAAK,SAAS,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEpF,KAAK,oBAAoB,CAAC,gBAAgB,IAAI;IAC5C,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACtC,CAAC;AAEF,qBAAa,cAAc,CAAC,gBAAgB;;IAIxC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAChE,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAMtD,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAKrD,cAAc,CAAC,UAAU,EAAE,MAAM;IAQjC,KAAK;IAIL,IAAI;CAIX;AAuBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAkB3G;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,gBAAgB,EAC/D,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC7C,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAQ3C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryptedStore.test.node.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/encryptedStore.test.node.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './CoreCryptoWrapper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/index.ts"],"names":[],"mappings":"AAmBA,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/index.ts"],"names":[],"mappings":"AAmBA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2023 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
32
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ __exportStar(require("./CoreCryptoWrapper"), exports);
@@ -0,0 +1,13 @@
1
+ import { SecretCrypto } from '../../../../mls/types';
2
+ export declare class CorruptedKeyError extends Error {
3
+ }
4
+ type GeneratedKey = {
5
+ key: Uint8Array;
6
+ deleteKey: () => Promise<void>;
7
+ };
8
+ export declare function generateSecretKey({ dbName, systemCrypto: baseCrypto, }: {
9
+ dbName: string;
10
+ systemCrypto?: SecretCrypto;
11
+ }): Promise<GeneratedKey>;
12
+ export {};
13
+ //# sourceMappingURL=secretKeyGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretKeyGenerator.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAKnD,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,EACtC,MAAM,EACN,YAAY,EAAE,UAAU,GACzB,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,OAAO,CAAC,YAAY,CAAC,CAwDxB"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2023 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.generateSecretKey = exports.CorruptedKeyError = void 0;
22
+ const bazinga64_1 = require("bazinga64");
23
+ const encryptedStore_1 = require("./encryptedStore");
24
+ const isBase64 = /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$/;
25
+ const KEY_SIZE = 16;
26
+ class CorruptedKeyError extends Error {
27
+ }
28
+ exports.CorruptedKeyError = CorruptedKeyError;
29
+ async function generateSecretKey({ dbName, systemCrypto: baseCrypto, }) {
30
+ const coreCryptoKeyId = 'corecrypto-key';
31
+ const systemCrypto = baseCrypto
32
+ ? {
33
+ encrypt: (value) => {
34
+ if (baseCrypto.version === 1) {
35
+ const strValue = bazinga64_1.Encoder.toBase64(value).asString;
36
+ return baseCrypto.encrypt(strValue);
37
+ }
38
+ // In previous versions of the systemCrypto (prior to February 2023), encrypt took a uint8Array
39
+ return baseCrypto.encrypt(value);
40
+ },
41
+ decrypt: async (value) => {
42
+ if (typeof baseCrypto.version === 'undefined') {
43
+ // In previous versions of the systemCrypto (prior to February 2023), the decrypt function returned a Uint8Array
44
+ return baseCrypto.decrypt(value);
45
+ }
46
+ const decrypted = await baseCrypto.decrypt(value);
47
+ if (isBase64.test(decrypted)) {
48
+ return bazinga64_1.Decoder.fromBase64(decrypted).asBytes;
49
+ }
50
+ // Between June 2022 and October 2022, the systemCrypto returned a string encoded in UTF-8
51
+ const encoder = new TextEncoder();
52
+ return encoder.encode(decrypted);
53
+ },
54
+ }
55
+ : undefined;
56
+ const secretsDb = systemCrypto
57
+ ? await (0, encryptedStore_1.createCustomEncryptedStore)(dbName, systemCrypto)
58
+ : await (0, encryptedStore_1.createEncryptedStore)(dbName);
59
+ try {
60
+ let key;
61
+ try {
62
+ key = await secretsDb.getsecretValue(coreCryptoKeyId);
63
+ }
64
+ catch (error) {
65
+ throw new CorruptedKeyError('Could not decrypt key');
66
+ }
67
+ if (key && key.length !== KEY_SIZE) {
68
+ // If the key size is not correct, we have a corrupted key in the DB. This is unrecoverable.
69
+ throw new CorruptedKeyError('Invalid key');
70
+ }
71
+ if (!key) {
72
+ key = crypto.getRandomValues(new Uint8Array(KEY_SIZE));
73
+ await secretsDb.saveSecretValue(coreCryptoKeyId, key);
74
+ }
75
+ await (secretsDb === null || secretsDb === void 0 ? void 0 : secretsDb.close());
76
+ return { key, deleteKey: () => secretsDb.wipe() };
77
+ }
78
+ catch (error) {
79
+ await (secretsDb === null || secretsDb === void 0 ? void 0 : secretsDb.close());
80
+ throw error;
81
+ }
82
+ }
83
+ exports.generateSecretKey = generateSecretKey;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=secretKeyGenerator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretKeyGenerator.test.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/secretKeyGenerator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2023 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ const bazinga64_1 = require("bazinga64");
22
+ const secretKeyGenerator_1 = require("./secretKeyGenerator");
23
+ const systemCryptos = {
24
+ v0: {
25
+ encrypt: async (value) => {
26
+ return value;
27
+ },
28
+ decrypt: async (value) => {
29
+ return value;
30
+ },
31
+ version: undefined,
32
+ },
33
+ v01: {
34
+ encrypt: async (value) => {
35
+ return bazinga64_1.Encoder.toBase64(value).asBytes;
36
+ },
37
+ decrypt: async (value) => {
38
+ const str = new TextDecoder().decode(value);
39
+ return bazinga64_1.Decoder.fromBase64(str).asBytes;
40
+ },
41
+ version: undefined,
42
+ },
43
+ v1: {
44
+ encrypt: async (value) => {
45
+ const encoder = new TextEncoder();
46
+ return encoder.encode(value);
47
+ },
48
+ decrypt: async (value) => {
49
+ const decoder = new TextDecoder();
50
+ return decoder.decode(value);
51
+ },
52
+ version: 1,
53
+ },
54
+ };
55
+ const dbName = 'test';
56
+ describe('SecretKeyGenerator', () => {
57
+ beforeEach(async () => {
58
+ return new Promise(resolve => {
59
+ Object.values(systemCryptos).forEach(version => {
60
+ jest.spyOn(version, 'encrypt');
61
+ jest.spyOn(version, 'decrypt');
62
+ });
63
+ const deleteReq = indexedDB.deleteDatabase(dbName);
64
+ deleteReq.onsuccess = resolve;
65
+ });
66
+ });
67
+ it('generates and store a secret key stored in indexeddb', async () => {
68
+ const { key: secretKey } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName });
69
+ expect(secretKey).toBeDefined();
70
+ const { key: secretKey2 } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName });
71
+ expect(secretKey).toEqual(secretKey2);
72
+ });
73
+ it.each(Object.entries(systemCryptos))('generates and store a secret key encrypted using system crypto (%s)', async (_name, systemCrypto) => {
74
+ const { key } = await (0, secretKeyGenerator_1.generateSecretKey)({
75
+ dbName,
76
+ systemCrypto,
77
+ });
78
+ expect(key).toBeDefined();
79
+ expect(systemCrypto.encrypt).toHaveBeenCalled();
80
+ expect(systemCrypto.decrypt).not.toHaveBeenCalled();
81
+ // fetch stored key
82
+ const { key: key2 } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName, systemCrypto: systemCrypto });
83
+ expect(key2).toEqual(key);
84
+ expect(systemCrypto.encrypt).toHaveBeenCalledTimes(1);
85
+ expect(systemCrypto.decrypt).toHaveBeenCalledTimes(1);
86
+ });
87
+ it.each([
88
+ ['v0 > v01', systemCryptos.v0, systemCryptos.v01],
89
+ ['v0 > v1', systemCryptos.v0, systemCryptos.v1],
90
+ ])('throws an error if previous systemCrypto is not compatible with the current one (%s)', async (_name, crypto1, crypto2) => {
91
+ const { key } = await (0, secretKeyGenerator_1.generateSecretKey)({
92
+ dbName,
93
+ systemCrypto: crypto1,
94
+ });
95
+ expect(key).toBeDefined();
96
+ try {
97
+ await (0, secretKeyGenerator_1.generateSecretKey)({ dbName, systemCrypto: crypto2 });
98
+ }
99
+ catch (e) {
100
+ expect(e).toBeInstanceOf(secretKeyGenerator_1.CorruptedKeyError);
101
+ }
102
+ });
103
+ it('deletes the key from DB', async () => {
104
+ const { key, deleteKey } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName });
105
+ await deleteKey();
106
+ const { key: secondKey } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName: 'test' });
107
+ expect(key).not.toEqual(secondKey);
108
+ });
109
+ it.each([['v01 > v1', systemCryptos.v01, systemCryptos.v1]])('is able to read a key that was generated with a previous system crypto (%s)', async (_name, crypto1, crypto2) => {
110
+ const { key } = await (0, secretKeyGenerator_1.generateSecretKey)({
111
+ dbName: 'test',
112
+ systemCrypto: crypto1,
113
+ });
114
+ expect(key).toBeDefined();
115
+ const { key: key2 } = await (0, secretKeyGenerator_1.generateSecretKey)({ dbName: 'test', systemCrypto: crypto2 });
116
+ expect(key2).toEqual(key);
117
+ });
118
+ });
@@ -1,8 +1,9 @@
1
1
  import { PreKey } from '@wireapp/api-client/lib/auth';
2
2
  import type { CRUDEngine } from '@wireapp/store-engine';
3
- import type { CoreCryptoWrapper } from './CoreCryptoWrapper';
3
+ import type { CoreCryptoWrapper } from './CoreCryptoWrapper/CoreCryptoWrapper';
4
4
  import type { CryptoboxWrapper } from './CryptoboxWrapper';
5
5
  import { CoreDatabase } from '../../../../storage/CoreDB';
6
+ import { SecretCrypto } from '../../../mls/types';
6
7
  export declare enum CryptoClientType {
7
8
  CORE_CRYPTO = 0,
8
9
  CRYPTOBOX = 1
@@ -14,9 +15,9 @@ type WrapConfig = {
14
15
  };
15
16
  type InitConfig = WrapConfig & {
16
17
  storeEngine: CRUDEngine;
17
- secretKey: Uint8Array;
18
+ systemCrypto?: SecretCrypto;
18
19
  coreCryptoWasmFilePath?: string;
19
20
  };
20
- export declare function buildCryptoClient(clientType: CryptoClientType, db: CoreDatabase, { storeEngine, nbPrekeys, secretKey, coreCryptoWasmFilePath, onNewPrekeys }: InitConfig): Promise<CryptoClientDef>;
21
+ export declare function buildCryptoClient(clientType: CryptoClientType, db: CoreDatabase, { storeEngine, nbPrekeys, systemCrypto, coreCryptoWasmFilePath, onNewPrekeys }: InitConfig): Promise<CryptoClientDef>;
21
22
  export {};
22
23
  //# sourceMappingURL=CryptoClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoClient.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,oBAAY,gBAAgB;IAC1B,WAAW,IAAA;IACX,SAAS,IAAA;CACV;AAED,MAAM,MAAM,eAAe,GACvB,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAC9C,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAEtD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,KAAK,UAAU,GAAG,UAAU,GAAG;IAC7B,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,gBAAgB,EAC5B,EAAE,EAAE,YAAY,EAChB,EAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAC,EAAE,UAAU,GACpF,OAAO,CAAC,eAAe,CAAC,CAa1B"}
1
+ {"version":3,"file":"CryptoClient.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,oBAAY,gBAAgB;IAC1B,WAAW,IAAA;IACX,SAAS,IAAA;CACV;AAED,MAAM,MAAM,eAAe,GACvB,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAC9C,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAEtD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,KAAK,UAAU,GAAG,UAAU,GAAG;IAC7B,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,gBAAgB,EAC5B,EAAE,EAAE,YAAY,EAChB,EAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAC,EAAE,UAAU,GACvF,OAAO,CAAC,eAAe,CAAC,CAc1B"}
@@ -47,10 +47,11 @@ var CryptoClientType;
47
47
  CryptoClientType[CryptoClientType["CORE_CRYPTO"] = 0] = "CORE_CRYPTO";
48
48
  CryptoClientType[CryptoClientType["CRYPTOBOX"] = 1] = "CRYPTOBOX";
49
49
  })(CryptoClientType = exports.CryptoClientType || (exports.CryptoClientType = {}));
50
- async function buildCryptoClient(clientType, db, { storeEngine, nbPrekeys, secretKey, coreCryptoWasmFilePath, onNewPrekeys }) {
50
+ async function buildCryptoClient(clientType, db, { storeEngine, nbPrekeys, systemCrypto, coreCryptoWasmFilePath, onNewPrekeys }) {
51
51
  if (clientType === CryptoClientType.CORE_CRYPTO) {
52
52
  const { buildClient } = await Promise.resolve().then(() => __importStar(require('./CoreCryptoWrapper')));
53
- const client = await buildClient(storeEngine, secretKey, coreCryptoWasmFilePath !== null && coreCryptoWasmFilePath !== void 0 ? coreCryptoWasmFilePath : '', db, {
53
+ const client = await buildClient(storeEngine, coreCryptoWasmFilePath !== null && coreCryptoWasmFilePath !== void 0 ? coreCryptoWasmFilePath : '', db, {
54
+ systemCrypto,
54
55
  nbPrekeys,
55
56
  onNewPrekeys,
56
57
  });
@@ -1,5 +1,4 @@
1
1
  import { PreKey } from '@wireapp/api-client/lib/auth';
2
- export declare const LAST_PREKEY_ID = 65535;
3
2
  export type InitialPrekeys = {
4
3
  prekeys: PreKey[];
5
4
  lastPrekey: PreKey;
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoClient.types.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,MAAM,MAAM,cAAc,GAAG;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC;AAErE,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,eAAe,IAAI,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAErE;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC;;OAEG;IACH,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
1
+ {"version":3,"file":"CryptoClient.types.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC;AAErE,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,eAAe,IAAI,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAErE;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACzE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChF,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC;;OAEG;IACH,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
@@ -18,5 +18,3 @@
18
18
  *
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.LAST_PREKEY_ID = void 0;
22
- exports.LAST_PREKEY_ID = 65535;
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoboxWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoboxWrapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAC,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAElE,KAAK,MAAM,GAAG;IACZ,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,wBAAgB,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,oBAGxF;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAOjE,eAAe;IAIT,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU;IASvD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAIxC,IAAI;IAIJ,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU;;;;;;;;;;IAkB/C,cAAc;IAId,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAK5C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAInD,aAAa;IAIb,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAIvD,aAAa,CAAC,SAAS,EAAE,MAAM;IAQ/B,WAAW;IAIX,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,SAAS,CAAC,EAAE,EAAE,MAAM;;;;IAKpB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAOnC,kBAAkB;IAIlB,IAAI;CACX"}
1
+ {"version":3,"file":"CryptoboxWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoboxWrapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAEpD,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAElD,KAAK,MAAM,GAAG;IACZ,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,wBAAgB,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,oBAGxF;AAED,qBAAa,gBAAiB,YAAW,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAOjE,eAAe;IAIT,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU;IASvD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAIxC,IAAI;IAIJ,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU;;;;;;;;;;IAkB/C,cAAc;IAId,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAK5C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAInD,aAAa;IAIb,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAIvD,aAAa,CAAC,SAAS,EAAE,MAAM;IAQ/B,WAAW;IAIX,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,SAAS,CAAC,EAAE,EAAE,MAAM;;;;IAKpB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAOnC,kBAAkB;IAIlB,IAAI;CACX"}
@@ -20,7 +20,7 @@
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.CryptoboxWrapper = exports.buildClient = void 0;
22
22
  const cryptobox_1 = require("@wireapp/cryptobox");
23
- const CryptoClient_types_1 = require("./CryptoClient.types");
23
+ const proteus_1 = require("@wireapp/proteus");
24
24
  function buildClient(storeEngine, config) {
25
25
  const cryptobox = new cryptobox_1.Cryptobox(storeEngine, config.nbPrekeys);
26
26
  return new CryptoboxWrapper(cryptobox, config);
@@ -56,7 +56,7 @@ class CryptoboxWrapper {
56
56
  const prekeys = initialPrekeys
57
57
  .map(preKey => {
58
58
  const preKeyJson = this.cryptobox.serialize_prekey(preKey);
59
- if (preKeyJson.id !== CryptoClient_types_1.LAST_PREKEY_ID) {
59
+ if (preKeyJson.id !== proteus_1.keys.PreKey.MAX_PREKEY_ID) {
60
60
  return preKeyJson;
61
61
  }
62
62
  return { id: -1, key: '' };
@@ -21,7 +21,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.buildProteusService = void 0;
22
22
  const client_1 = require("@wireapp/api-client/lib/client");
23
23
  const api_client_1 = require("@wireapp/api-client");
24
- const CoreCryptoWrapper_1 = require("./CryptoClient/CoreCryptoWrapper");
24
+ const CoreCryptoWrapper_1 = require("./CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper");
25
25
  const ProteusService_1 = require("./ProteusService");
26
26
  const PayloadHelper_1 = require("../../../test/PayloadHelper");
27
27
  const buildProteusService = async (federated = false) => {
@@ -51,7 +51,7 @@ const SessionHandler_1 = require("../Utility/SessionHandler");
51
51
  const notification_1 = require("../../../notification");
52
52
  const event_1 = require("@wireapp/api-client/lib/event");
53
53
  const protocol_messaging_1 = require("@wireapp/protocol-messaging");
54
- jest.mock('./CryptoClient/PrekeysTracker', () => {
54
+ jest.mock('./CryptoClient/CoreCryptoWrapper/PrekeysTracker', () => {
55
55
  return {
56
56
  PrekeyTracker: jest.fn().mockImplementation(() => {
57
57
  return {
package/package.json CHANGED
@@ -60,6 +60,6 @@
60
60
  "test:coverage": "jest --coverage",
61
61
  "watch": "tsc --watch"
62
62
  },
63
- "version": "38.12.1",
64
- "gitHead": "cfb7186e3c4b84459cc29e169340eede77f90461"
63
+ "version": "38.13.1",
64
+ "gitHead": "cac498d34223dbbc0b2bd107ab042172a10d07c3"
65
65
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"CoreCryptoWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAGpD,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAC,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,wBAAsB,WAAW,CAC/B,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,UAAU,EACrB,sBAAsB,EAAE,MAAM,EAC9B,EAAE,EAAE,YAAY,EAChB,EAAC,SAAS,EAAE,YAAY,EAAC,EAAE,MAAM,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAO5B;AAED,qBAAa,iBAAkB,YAAW,YAAY;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAEjB,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAIrF,eAAe;IAIf,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU;IAIjD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAI9C,IAAI;IAIE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU;;;;;;;IAiBpD,cAAc;IAId,oBAAoB,CAAC,SAAS,EAAE,MAAM;IAIhC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAK/D,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAIvD,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,WAAW,CAAC,SAAS,EAAE,MAAM;IAI7B,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,aAAa;IAIP,SAAS,CAAC,EAAE,EAAE,MAAM;;;;IAKpB,iBAAiB,CAAC,SAAS,EAAE,MAAM;IAUnC,kBAAkB;IAIlB,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,IAAI;CAGX"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrekeysTracker.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAIpD,OAAO,EAAC,YAAY,EAAC,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAEhE,KAAK,yBAAyB,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAEjE,UAAU,sBAAsB;IAC9B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,aAAa;IAItB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,WAAW,CAAsB;gBAGtB,SAAS,EAAE,yBAAyB,EACrD,EAAE,EAAE,YAAY,EACR,MAAM,EAAE,sBAAsB;YAK1B,eAAe;IASvB,aAAa;IAUb,eAAe,CAAC,gBAAgB,EAAE,MAAM;IAI9C,OAAO,CAAC,sBAAsB;CAK/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrekeysTracker.store.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.store.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAQ3D,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;YAE/B,QAAQ;YAIR,SAAS;IAIvB;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOhC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAK3C;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAMlD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrekeysTracker.test.d.ts","sourceRoot":"","sources":["../../../../../../src/messagingProtocols/proteus/ProteusService/CryptoClient/PrekeysTracker/PrekeysTracker.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryptedStore.d.ts","sourceRoot":"","sources":["../../src/util/encryptedStore.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAmB,MAAM,KAAK,CAAC;AAE7D,UAAU,uBAAuB;IAC/B,EAAE,EAAE,UAAU,GAAG,WAAW,CAAC;IAC7B,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;CACjC;AACD,UAAU,WAAW,CAAC,gBAAgB,CAAE,SAAQ,QAAQ;IACtD,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,SAAS,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,gBAAgB,CAAC;KACzB,CAAC;CACH;AAED,KAAK,SAAS,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AACtF,KAAK,SAAS,CAAC,gBAAgB,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEpF,KAAK,oBAAoB,CAAC,gBAAgB,IAAI;IAC5C,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACrC,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;CACtC,CAAC;AAEF,qBAAa,cAAc,CAAC,gBAAgB;;IAIxC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAChE,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAMtD,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAKrD,cAAc,CAAC,UAAU,EAAE,MAAM;IAQjC,KAAK;IAIL,IAAI;CAIX;AAuBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAkB3G;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,gBAAgB,EAC/D,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,GAC7C,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAQ3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryptedStore.test.node.d.ts","sourceRoot":"","sources":["../../src/util/encryptedStore.test.node.ts"],"names":[],"mappings":""}