@wireapp/core 38.0.0-beta.6 → 38.0.0-beta.7
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/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts +1 -0
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.js +8 -4
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.test.js +6 -0
- package/package.json +1 -1
|
@@ -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
|
|
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"}
|
|
@@ -24,19 +24,21 @@ exports.ProteusErrors = {
|
|
|
24
24
|
InvalidMessage: 201,
|
|
25
25
|
RemoteIdentityChanged: 204,
|
|
26
26
|
InvalidSignature: 207,
|
|
27
|
+
DuplicateMessage: 209,
|
|
27
28
|
Unknown: 999,
|
|
28
29
|
};
|
|
29
30
|
const CoreCryptoErrorMapping = {
|
|
30
31
|
InvalidMessage: exports.ProteusErrors.InvalidMessage,
|
|
31
32
|
RemoteIdentityChanged: exports.ProteusErrors.RemoteIdentityChanged,
|
|
32
33
|
InvalidSignature: exports.ProteusErrors.InvalidSignature,
|
|
34
|
+
DuplicateMessage: exports.ProteusErrors.DuplicateMessage,
|
|
33
35
|
Unknown: exports.ProteusErrors.Unknown,
|
|
34
36
|
};
|
|
35
37
|
const mapCoreCryptoError = (error) => {
|
|
36
38
|
var _a;
|
|
37
39
|
return (_a = CoreCryptoErrorMapping[error.message]) !== null && _a !== void 0 ? _a : exports.ProteusErrors.Unknown;
|
|
38
40
|
};
|
|
39
|
-
const getErrorMessage = (code, userId, clientId) => {
|
|
41
|
+
const getErrorMessage = (code, userId, clientId, error) => {
|
|
40
42
|
const sender = `${userId.id} (${clientId})`;
|
|
41
43
|
switch (code) {
|
|
42
44
|
case exports.ProteusErrors.InvalidMessage:
|
|
@@ -45,16 +47,18 @@ const getErrorMessage = (code, userId, clientId) => {
|
|
|
45
47
|
return `Invalid signature from ${sender}`;
|
|
46
48
|
case exports.ProteusErrors.RemoteIdentityChanged:
|
|
47
49
|
return `Remote identity of ${sender} has changed`;
|
|
50
|
+
case exports.ProteusErrors.DuplicateMessage:
|
|
51
|
+
return `Message from ${sender} was decrypted twice`;
|
|
48
52
|
case exports.ProteusErrors.Unknown:
|
|
49
|
-
return `Unknown decryption error from ${sender}`;
|
|
53
|
+
return `Unknown decryption error from ${sender} (${error.message})`;
|
|
50
54
|
default:
|
|
51
|
-
return `Unhandled error code "${code}" from ${sender}`;
|
|
55
|
+
return `Unhandled error code "${code}" from ${sender} (${error.message})`;
|
|
52
56
|
}
|
|
53
57
|
};
|
|
54
58
|
const generateDecryptionError = (senderInfo, error) => {
|
|
55
59
|
const { clientId: remoteClientId, userId } = senderInfo;
|
|
56
60
|
const code = mapCoreCryptoError(error);
|
|
57
|
-
const message = getErrorMessage(code, userId, remoteClientId);
|
|
61
|
+
const message = getErrorMessage(code, userId, remoteClientId, error);
|
|
58
62
|
return new DecryptionError_1.DecryptionError(message, code);
|
|
59
63
|
};
|
|
60
64
|
exports.generateDecryptionError = generateDecryptionError;
|
|
@@ -40,6 +40,12 @@ describe('generateDecryptionError', () => {
|
|
|
40
40
|
expect(error.message).toBe('Invalid message from user1 (client1)');
|
|
41
41
|
expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.InvalidMessage);
|
|
42
42
|
});
|
|
43
|
+
it('handles duplicated message', () => {
|
|
44
|
+
const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('DuplicateMessage'));
|
|
45
|
+
expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
|
|
46
|
+
expect(error.message).toBe('Invalid message from user1 (client1)');
|
|
47
|
+
expect(error.code).toBe(DecryptionErrorGenerator_1.ProteusErrors.DuplicateMessage);
|
|
48
|
+
});
|
|
43
49
|
it('handles invalid signature', () => {
|
|
44
50
|
const error = (0, DecryptionErrorGenerator_1.generateDecryptionError)(basePayload, new Error('InvalidSignature'));
|
|
45
51
|
expect(error).toBeInstanceOf(DecryptionError_1.DecryptionError);
|