@wireapp/core 38.10.3 → 38.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Account.js CHANGED
@@ -361,7 +361,7 @@ class Account extends TypedEventEmitter_1.TypedEventEmitter {
361
361
  break;
362
362
  }
363
363
  }
364
- onEvent(payload, source);
364
+ await onEvent(payload, source);
365
365
  };
366
366
  const handleNotification = async (notification, source) => {
367
367
  var _a, e_1, _b, _c;
@@ -123,7 +123,7 @@ class MLSService extends TypedEventEmitter_1.TypedEventEmitter {
123
123
  }
124
124
  configureMLSCallbacks(_a) {
125
125
  var { groupIdFromConversationId } = _a, coreCryptoCallbacks = __rest(_a, ["groupIdFromConversationId"]);
126
- this.coreCryptoClient.registerCallbacks(Object.assign(Object.assign({}, coreCryptoCallbacks), { clientIsExistingGroupUser: (client, otherClients) => {
126
+ this.coreCryptoClient.registerCallbacks(Object.assign(Object.assign({}, coreCryptoCallbacks), { clientIsExistingGroupUser: (_groupId, client, otherClients) => {
127
127
  const { user } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(this.textDecoder.decode(client));
128
128
  return otherClients.some(client => {
129
129
  const { user: otherUser } = (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(this.textDecoder.decode(client));
@@ -1 +1 @@
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,CAQ5B;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
+ {"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"}
@@ -24,8 +24,11 @@ const core_crypto_1 = require("@wireapp/core-crypto");
24
24
  const CryptoClient_types_1 = require("./CryptoClient.types");
25
25
  const PrekeysTracker_1 = require("./PrekeysTracker");
26
26
  async function buildClient(storeEngine, secretKey, coreCryptoWasmFilePath, db, { nbPrekeys, onNewPrekeys }) {
27
- const coreCrypto = await core_crypto_1.CoreCrypto.deferredInit(`corecrypto-${storeEngine.storeName}`, bazinga64_1.Encoder.toBase64(secretKey).asString, undefined, // We pass a placeholder entropy data. It will be set later on by calling `reseedRng`
28
- coreCryptoWasmFilePath);
27
+ const coreCrypto = await core_crypto_1.CoreCrypto.deferredInit({
28
+ databaseName: `corecrypto-${storeEngine.storeName}`,
29
+ key: bazinga64_1.Encoder.toBase64(secretKey).asString,
30
+ wasmFilePath: coreCryptoWasmFilePath,
31
+ });
29
32
  return new CoreCryptoWrapper(coreCrypto, db, { nbPrekeys, onNewPrekeys });
30
33
  }
31
34
  exports.buildClient = buildClient;
@@ -1 +1 @@
1
- {"version":3,"file":"DecryptionErrorGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AAEnE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAwCX,KAAK,UAAU,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,CAAC;AAC1D,eAAO,MAAM,uBAAuB,eAAgB,UAAU,SAAS,GAAG,KAAG,eAO5E,CAAC"}
1
+ {"version":3,"file":"DecryptionErrorGenerator.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AAEnE,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAWX,KAAK,UAAU,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,CAAC;AAC1D,eAAO,MAAM,uBAAuB,eAAgB,UAAU,SAAS,GAAG,KAAG,eAW5E,CAAC"}
@@ -27,38 +27,19 @@ exports.ProteusErrors = {
27
27
  DuplicateMessage: 209,
28
28
  Unknown: 999,
29
29
  };
30
- const CoreCryptoErrorMapping = {
31
- InvalidMessage: exports.ProteusErrors.InvalidMessage,
32
- RemoteIdentityChanged: exports.ProteusErrors.RemoteIdentityChanged,
33
- InvalidSignature: exports.ProteusErrors.InvalidSignature,
34
- DuplicateMessage: exports.ProteusErrors.DuplicateMessage,
35
- Unknown: exports.ProteusErrors.Unknown,
30
+ const isCoreCryptoError = (error) => {
31
+ return 'proteusErrorCode' in error;
36
32
  };
37
- const mapCoreCryptoError = (error) => {
38
- var _a;
39
- return (_a = CoreCryptoErrorMapping[error.message]) !== null && _a !== void 0 ? _a : exports.ProteusErrors.Unknown;
40
- };
41
- const getErrorMessage = (code, userId, clientId, error) => {
42
- const sender = `${userId.id} (${clientId})`;
43
- switch (code) {
44
- case exports.ProteusErrors.InvalidMessage:
45
- return `Invalid message from ${sender}`;
46
- case exports.ProteusErrors.InvalidSignature:
47
- return `Invalid signature from ${sender}`;
48
- case exports.ProteusErrors.RemoteIdentityChanged:
49
- return `Remote identity of ${sender} has changed`;
50
- case exports.ProteusErrors.DuplicateMessage:
51
- return `Message from ${sender} was decrypted twice`;
52
- case exports.ProteusErrors.Unknown:
53
- return `Unknown decryption error from ${sender} (${error.message})`;
54
- default:
55
- return `Unhandled error code "${code}" from ${sender} (${error.message})`;
56
- }
33
+ const isCryptoboxError = (error) => {
34
+ return 'code' in error;
57
35
  };
58
36
  const generateDecryptionError = (senderInfo, error) => {
59
- const { clientId: remoteClientId, userId } = senderInfo;
60
- const code = error.code || mapCoreCryptoError(error);
61
- const message = getErrorMessage(code, userId, remoteClientId, error);
37
+ const { clientId, userId } = senderInfo;
38
+ const sender = `${userId.id} (${clientId})`;
39
+ const coreCryptoCode = isCoreCryptoError(error) && error.proteusErrorCode;
40
+ const cryptoboxCode = isCryptoboxError(error) && error.code;
41
+ const code = coreCryptoCode || cryptoboxCode || exports.ProteusErrors.Unknown;
42
+ const message = `Decryption error from ${sender} (${error.message})`;
62
43
  return new DecryptionError_1.DecryptionError(message, code);
63
44
  };
64
45
  exports.generateDecryptionError = generateDecryptionError;
@@ -22,35 +22,18 @@ const DecryptionErrorGenerator_1 = require("./DecryptionErrorGenerator");
22
22
  const DecryptionError_1 = require("../../../../errors/DecryptionError");
23
23
  const basePayload = { userId: { id: 'user1', domain: 'domain' }, clientId: 'client1' };
24
24
  describe('generateDecryptionError', () => {
25
- it('handles unknown decryption error', () => {
26
- const message = 'decryption error';
27
- const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error(message));
25
+ it('handles coreCrypto error', () => {
26
+ const coreCryptoError = { proteusErrorCode: Math.floor(Math.random() * 100), message: 'decryption error' };
27
+ const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, coreCryptoError);
28
28
  expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
29
- expect(error.message).toBe(`Unknown decryption error from user1 (client1) (${message})`);
30
- expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.Unknown);
29
+ expect(error.message).toBe(`Decryption error from user1 (client1) (${coreCryptoError.message})`);
30
+ expect(error.code).toBe(coreCryptoError.proteusErrorCode);
31
31
  });
32
- it('handles remote identity changed', () => {
33
- const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('RemoteIdentityChanged'));
32
+ it('handles cryptobox error', () => {
33
+ const coreCryptoError = { code: Math.floor(Math.random() * 100), message: 'decryption error' };
34
+ const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, coreCryptoError);
34
35
  expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
35
- expect(error.message).toBe('Remote identity of user1 (client1) has changed');
36
- expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.RemoteIdentityChanged);
37
- });
38
- it('handles invalid message', () => {
39
- const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('InvalidMessage'));
40
- expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
41
- expect(error.message).toBe('Invalid message from user1 (client1)');
42
- expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.InvalidMessage);
43
- });
44
- it('handles duplicated message', () => {
45
- const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('DuplicateMessage'));
46
- expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
47
- expect(error.message).toBe('Message from user1 (client1) was decrypted twice');
48
- expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.DuplicateMessage);
49
- });
50
- it('handles invalid signature', () => {
51
- const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('InvalidSignature'));
52
- expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
53
- expect(error.message).toBe('Invalid signature from user1 (client1)');
54
- expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.InvalidSignature);
36
+ expect(error.message).toBe(`Decryption error from user1 (client1) (${coreCryptoError.message})`);
37
+ expect(error.code).toBe(coreCryptoError.code);
55
38
  });
56
39
  });
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@wireapp/api-client": "^22.15.4",
15
15
  "@wireapp/commons": "^5.0.4",
16
- "@wireapp/core-crypto": "0.6.0-rc.3",
16
+ "@wireapp/core-crypto": "0.6.0-rc.7",
17
17
  "@wireapp/cryptobox": "12.8.0",
18
18
  "@wireapp/promise-queue": "^2.1.1",
19
19
  "@wireapp/protocol-messaging": "1.44.0",
@@ -60,6 +60,6 @@
60
60
  "test:coverage": "jest --coverage",
61
61
  "watch": "tsc --watch"
62
62
  },
63
- "version": "38.10.3",
64
- "gitHead": "9cad83be434419e9c4633934e42379ce5fc30144"
63
+ "version": "38.11.1",
64
+ "gitHead": "7969fe115696f129aa8e31e27a579a69803ed9b5"
65
65
  }