@wireapp/core 46.46.6-beta.14.f6fd03fe6 → 46.46.6
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.d.ts +156 -51
- package/lib/Account.d.ts.map +1 -1
- package/lib/Account.js +503 -127
- package/lib/Account.test.js +158 -147
- package/lib/broadcast/AvailabilityType.d.ts +1 -1
- package/lib/broadcast/AvailabilityType.d.ts.map +1 -1
- package/lib/broadcast/BroadcastService.d.ts +1 -1
- package/lib/broadcast/BroadcastService.d.ts.map +1 -1
- package/lib/broadcast/BroadcastService.js +1 -1
- package/lib/client/ClientService.d.ts +4 -3
- package/lib/client/ClientService.d.ts.map +1 -1
- package/lib/client/ClientService.js +19 -5
- package/lib/conversation/AbortReason.d.ts +1 -1
- package/lib/conversation/AbortReason.d.ts.map +1 -1
- package/lib/conversation/AssetService/AssetService.d.ts +12 -30
- package/lib/conversation/AssetService/AssetService.d.ts.map +1 -1
- package/lib/conversation/AssetService/AssetService.js +1 -10
- package/lib/conversation/AssetService/AssetService.test.js +8 -3
- package/lib/conversation/ClientActionType.d.ts +1 -1
- package/lib/conversation/ClientActionType.d.ts.map +1 -1
- package/lib/conversation/ClientActionType.js +1 -1
- package/lib/conversation/ConversationService/ConversationService.d.ts +98 -14
- package/lib/conversation/ConversationService/ConversationService.d.ts.map +1 -1
- package/lib/conversation/ConversationService/ConversationService.js +314 -101
- package/lib/conversation/ConversationService/ConversationService.test.js +441 -47
- package/lib/conversation/ConversationService/ConversationService.types.d.ts +5 -4
- package/lib/conversation/ConversationService/ConversationService.types.d.ts.map +1 -1
- package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.d.ts.map +1 -1
- package/lib/conversation/ConversationService/Utility/getConversationQualifiedMembers.js +6 -3
- package/lib/conversation/SubconversationService/SubconversationService.d.ts.map +1 -1
- package/lib/conversation/SubconversationService/SubconversationService.js +158 -11
- package/lib/conversation/SubconversationService/SubconversationService.test.js +8 -2
- package/lib/conversation/content/AssetContent.d.ts +1 -1
- package/lib/conversation/content/AssetContent.d.ts.map +1 -1
- package/lib/conversation/content/ButtonActionConfirmationContent.d.ts +1 -1
- package/lib/conversation/content/ButtonActionConfirmationContent.d.ts.map +1 -1
- package/lib/conversation/content/ButtonActionContent.d.ts +1 -1
- package/lib/conversation/content/ButtonActionContent.d.ts.map +1 -1
- package/lib/conversation/content/ClearedContent.d.ts +1 -1
- package/lib/conversation/content/ClearedContent.d.ts.map +1 -1
- package/lib/conversation/content/ClientActionContent.d.ts +1 -1
- package/lib/conversation/content/ClientActionContent.d.ts.map +1 -1
- package/lib/conversation/content/CompositeContent.d.ts +1 -1
- package/lib/conversation/content/CompositeContent.d.ts.map +1 -1
- package/lib/conversation/content/ConfirmationContent.d.ts +1 -1
- package/lib/conversation/content/ConfirmationContent.d.ts.map +1 -1
- package/lib/conversation/content/DeletedContent.d.ts +1 -1
- package/lib/conversation/content/DeletedContent.d.ts.map +1 -1
- package/lib/conversation/content/HiddenContent.d.ts +1 -1
- package/lib/conversation/content/HiddenContent.d.ts.map +1 -1
- package/lib/conversation/content/KnockContent.d.ts +1 -1
- package/lib/conversation/content/KnockContent.d.ts.map +1 -1
- package/lib/conversation/content/LinkPreviewContent.d.ts +1 -1
- package/lib/conversation/content/LinkPreviewContent.d.ts.map +1 -1
- package/lib/conversation/content/MentionContent.d.ts +1 -1
- package/lib/conversation/content/MentionContent.d.ts.map +1 -1
- package/lib/conversation/content/MultipartContent.d.ts +1 -1
- package/lib/conversation/content/MultipartContent.d.ts.map +1 -1
- package/lib/conversation/content/QuoteContent.d.ts +1 -1
- package/lib/conversation/content/QuoteContent.d.ts.map +1 -1
- package/lib/conversation/content/TweetContent.d.ts +1 -1
- package/lib/conversation/content/TweetContent.d.ts.map +1 -1
- package/lib/conversation/content/index.d.ts +1 -1
- package/lib/conversation/content/index.d.ts.map +1 -1
- package/lib/conversation/content/index.js +1 -1
- package/lib/conversation/message/MessageBuilder.d.ts +1 -1
- package/lib/conversation/message/MessageBuilder.d.ts.map +1 -1
- package/lib/conversation/message/MessageBuilder.js +1 -1
- package/lib/conversation/message/MessageService.d.ts.map +1 -1
- package/lib/conversation/message/MessageService.js +1 -1
- package/lib/conversation/message/MessageService.test.js +7 -1
- package/lib/conversation/message/MessageToProtoMapper.d.ts +1 -1
- package/lib/conversation/message/MessageToProtoMapper.d.ts.map +1 -1
- package/lib/conversation/message/MessageToProtoMapper.js +1 -1
- package/lib/conversation/message/messageSender.js +2 -2
- package/lib/cryptography/AssetCryptography/EncryptedAsset.d.ts +2 -2
- package/lib/cryptography/AssetCryptography/EncryptedAsset.d.ts.map +1 -1
- package/lib/messagingProtocols/common.types.d.ts +9 -0
- package/lib/messagingProtocols/common.types.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.d.ts +2 -2
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIService.types.js +2 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.js +13 -11
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.test.js +21 -16
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts +9 -3
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.js +31 -12
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.d.ts +6 -0
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/E2EIdentityService/Helper/index.js +19 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.d.ts +7 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/IncomingProposalsQueue.js +48 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingProposalsQueue/index.d.ts +2 -0
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/{IncomingMessagesQueue → IncomingProposalsQueue}/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/{IncomingMessagesQueue → IncomingProposalsQueue}/index.js +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.d.ts +0 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/index.js +0 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.js +23 -14
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.js +5 -2
- package/lib/messagingProtocols/mls/EventHandler/events/welcomeMessage/welcomeMessage.test.js +13 -3
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.d.ts +38 -2
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.js +41 -6
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.d.ts +2 -0
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/MLSService/CoreCryptoMLSError.test.js +124 -0
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts +38 -34
- package/lib/messagingProtocols/mls/MLSService/MLSService.d.ts.map +1 -1
- package/lib/messagingProtocols/mls/MLSService/MLSService.js +267 -208
- package/lib/messagingProtocols/mls/MLSService/MLSService.test.js +157 -160
- package/lib/messagingProtocols/mls/MLSService/commitBundleUtil.js +3 -3
- package/lib/messagingProtocols/mls/MLSService/commitBundleUtil.test.js +5 -5
- package/lib/messagingProtocols/mls/conversationRejoinQueue.js +2 -2
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.d.ts +78 -0
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.js +173 -0
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.d.ts +2 -0
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/recovery/MlsErrorMapper.test.js +117 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.d.ts +167 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.js +317 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.d.ts +2 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/recovery/MlsRecoveryOrchestrator.test.js +248 -0
- package/lib/messagingProtocols/mls/recovery/index.d.ts +5 -0
- package/lib/messagingProtocols/mls/recovery/index.d.ts.map +1 -0
- package/lib/messagingProtocols/mls/recovery/index.js +28 -0
- package/lib/messagingProtocols/mls/types.d.ts +0 -8
- package/lib/messagingProtocols/mls/types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/EventHandler/events/otrMessageAdd/otrMessageAdd.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/EventHandler/events/otrMessageAdd/otrMessageAdd.js +7 -1
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.d.ts +8 -15
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CoreCryptoWrapper/CoreCryptoWrapper.js +97 -62
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts +0 -6
- package/lib/messagingProtocols/proteus/ProteusService/CryptoClient/CryptoClient.types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts +1 -6
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/DecryptionErrorGenerator/DecryptionErrorGenerator.js +19 -22
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.d.ts +5 -3
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.js +11 -24
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts +1 -0
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.mocks.js +11 -2
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.test.js +13 -9
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.types.d.ts +3 -2
- package/lib/messagingProtocols/proteus/ProteusService/ProteusService.types.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/WithMockedGenerics.test.js +11 -4
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.d.ts +0 -4
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/cryptoMigrationStateStore.js +0 -5
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.d.ts +2 -1
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/ProteusService/identityClearer.js +8 -2
- package/lib/messagingProtocols/proteus/Utility/SessionHandler/SessionHandler.test.js +4 -0
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.d.ts +1 -1
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.d.ts.map +1 -1
- package/lib/messagingProtocols/proteus/Utility/getGenericMessageParams.js +1 -1
- package/lib/notification/NotificationService.d.ts +20 -6
- package/lib/notification/NotificationService.d.ts.map +1 -1
- package/lib/notification/NotificationService.js +23 -14
- package/lib/notification/NotificationService.test.js +8 -0
- package/lib/secretStore/secretKeyGenerator.d.ts +1 -0
- package/lib/secretStore/secretKeyGenerator.d.ts.map +1 -1
- package/lib/secretStore/secretKeyGenerator.js +3 -1
- package/lib/self/SelfService.d.ts +2 -2
- package/lib/self/SelfService.d.ts.map +1 -1
- package/lib/self/SelfService.test.js +5 -2
- package/lib/team/TeamService.d.ts +5 -2
- package/lib/team/TeamService.d.ts.map +1 -1
- package/lib/team/TeamService.js +12 -2
- package/lib/test/StoreHelper.d.ts +2 -0
- package/lib/test/StoreHelper.d.ts.map +1 -0
- package/lib/test/StoreHelper.js +27 -0
- package/lib/user/UserService.d.ts +2 -2
- package/lib/user/UserService.d.ts.map +1 -1
- package/lib/user/UserService.js +3 -3
- package/lib/util/TypePredicateUtil.d.ts.map +1 -1
- package/lib/util/TypePredicateUtil.js +2 -2
- package/package.json +3 -3
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.d.ts +0 -4
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/IncomingMesssagesQueue.js +0 -69
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/IncomingMessagesQueue/index.d.ts +0 -2
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.d.ts +0 -2
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.d.ts.map +0 -1
- package/lib/messagingProtocols/mls/EventHandler/events/messageAdd/messageAdd.test.js +0 -98
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuoteContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/QuoteContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"QuoteContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/QuoteContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAC,MAAM,GAAG,CAAC;AAE/E,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACzE,eAAe,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TweetContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/TweetContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"TweetContent.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/TweetContent.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { LegalHoldStatus } from '@
|
|
1
|
+
export { LegalHoldStatus } from '@wireapp/protocol-messaging';
|
|
2
2
|
export { Connection as ConnectionContent } from '@wireapp/api-client/lib/connection/';
|
|
3
3
|
import * as ContentType from './ContentType.guards';
|
|
4
4
|
export { ContentType };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/conversation/content/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAC,UAAU,IAAI,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAEpF,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,WAAW,EAAC,CAAC;AAErB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
|
|
@@ -45,7 +45,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
45
45
|
};
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
exports.ContentType = exports.LegalHoldStatus = void 0;
|
|
48
|
-
var protocol_messaging_1 = require("@
|
|
48
|
+
var protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
49
49
|
Object.defineProperty(exports, "LegalHoldStatus", { enumerable: true, get: function () { return protocol_messaging_1.LegalHoldStatus; } });
|
|
50
50
|
const ContentType = __importStar(require("./ContentType.guards"));
|
|
51
51
|
exports.ContentType = ContentType;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IComposite, GenericMessage, ICalling } from '@pydio/protocol-messaging';
|
|
2
1
|
import { QualifiedId } from '@wireapp/api-client/lib/user';
|
|
2
|
+
import { IComposite, GenericMessage, ICalling } from '@wireapp/protocol-messaging';
|
|
3
3
|
import { ButtonActionConfirmationMessage, ButtonActionMessage, ConfirmationMessage, DeleteMessage, EditedTextMessage, FileAssetAbortMessage, FileAssetMessage, FileAssetMetaDataMessage, HideMessage, ImageAssetMessageOutgoing, InCallEmojiMessage, InCallHandRaiseMessage, LocationMessage, PingMessage, ReactionMessage, TextMessage } from './OtrMessage';
|
|
4
4
|
import { MultiPartContent, TextContent } from '../content';
|
|
5
5
|
export declare function createId(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBuilder.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageBuilder.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,UAAU,EAUV,cAAc,EAUd,QAAQ,EAET,MAAM,
|
|
1
|
+
{"version":3,"file":"MessageBuilder.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageBuilder.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EACL,UAAU,EAUV,cAAc,EAUd,QAAQ,EAET,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAIzD,wBAAgB,QAAQ,WAEvB;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,cAAc,CAKtG;AAED,wBAAgB,oCAAoC,CAClD,aAAa,EAAE,+BAA+B,CAAC,SAAS,CAAC,GACxD,cAAc,CAKhB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAKzE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,GAAG,cAAc,CAOtG;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,iBAAiB,CAAC,SAAS,CAAC,EAC3C,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAUhB;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAC1C,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAmChB;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,wBAAwB,CAAC,SAAS,CAAC,EAClD,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAwBhB;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC/C,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAiBhB;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAW1F;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,kBAW1D;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,GAAE,MAAmB,kBAU9F;AAED,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,yBAAyB,CAAC,SAAS,CAAC,EACnD,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAShB;AACD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,cAAc,CAkB9F;AACD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,cAAc,CAStF;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,GAAG,cAAc,CAc9F;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,cAAc,CAYpG;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,cAAc,CAY5G;AAED,wBAAgB,wBAAwB,IAAI,cAAc,CAKzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,GAAG,cAAc,CAOlE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,cAAc,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,cAAc,CAOhF;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,EAC5C,WAAW,EAAE,WAAW,EACxB,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAQhB;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,WAAW,CAAC,SAAS,CAAC,EACrC,SAAS,GAAE,MAAmB,GAC7B,cAAc,CAOhB;AAqCD,wBAAgB,eAAe,CAAC,sBAAsB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,GAAG,cAAc,CAYjH"}
|
|
@@ -43,8 +43,8 @@ exports.buildHideMessage = buildHideMessage;
|
|
|
43
43
|
exports.buildMultipartMessage = buildMultipartMessage;
|
|
44
44
|
exports.buildTextMessage = buildTextMessage;
|
|
45
45
|
exports.wrapInEphemeral = wrapInEphemeral;
|
|
46
|
-
const protocol_messaging_1 = require("@pydio/protocol-messaging");
|
|
47
46
|
const uuid_1 = require("uuid");
|
|
47
|
+
const protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
48
48
|
const AssetTransferState_1 = require("../AssetTransferState");
|
|
49
49
|
const GenericMessageType_1 = require("../GenericMessageType");
|
|
50
50
|
const MessageToProtoMapper_1 = require("../message/MessageToProtoMapper");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,oBAAoB,EAA0B,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AACxH,OAAO,EAAC,WAAW,EAAE,4BAA4B,EAAC,MAAM,8BAA8B,CAAC;AAQvF,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAI9C,OAAO,KAAK,EAAmB,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAKvF,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc;IAGjD;;;;;;;;;;;OAWG;IACU,WAAW,CACtB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,oBAAoB,GAAG,4BAA4B,EAC/D,SAAS,EAAE,UAAU,EACrB,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,UAAU,CAAC;QACvB,cAAc,CAAC,EAAE,WAAW,CAAC;QAC7B,aAAa,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;QACxC,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACrF,GACL,OAAO,CAAC,oBAAoB,GAAG;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;KAAC,CAAC;YAyBjE,cAAc;IAiE5B,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;OAOG;YACW,sBAAsB;CAiBrC"}
|
|
@@ -22,8 +22,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
exports.MessageService = void 0;
|
|
25
|
-
const otr_1 = require("@pydio/protocol-messaging/web/otr");
|
|
26
25
|
const StringUtil_1 = require("@wireapp/commons/lib/util/StringUtil");
|
|
26
|
+
const otr_1 = require("@wireapp/protocol-messaging/web/otr");
|
|
27
27
|
const deepmerge_ts_1 = require("deepmerge-ts");
|
|
28
28
|
const http_status_codes_1 = require("http-status-codes");
|
|
29
29
|
const long_1 = __importDefault(require("long"));
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
const protocol_messaging_1 = require("@pydio/protocol-messaging");
|
|
22
21
|
const http_status_codes_1 = require("http-status-codes");
|
|
23
22
|
const uuid_1 = require("uuid");
|
|
24
23
|
const api_client_1 = require("@wireapp/api-client");
|
|
24
|
+
const protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
25
25
|
const MessageService_1 = require("./MessageService");
|
|
26
26
|
const ProteusService_mocks_1 = require("../../messagingProtocols/proteus/ProteusService/ProteusService.mocks");
|
|
27
27
|
const PayloadHelper_1 = require("../../test/PayloadHelper");
|
|
@@ -71,14 +71,20 @@ function fakeEncrypt(_, recipients) {
|
|
|
71
71
|
}, {});
|
|
72
72
|
return Promise.resolve({ payloads: encryptedPayload });
|
|
73
73
|
}
|
|
74
|
+
const apiClients = [];
|
|
74
75
|
const buildMessageService = async () => {
|
|
75
76
|
const apiClient = new api_client_1.APIClient();
|
|
77
|
+
apiClients.push(apiClient);
|
|
76
78
|
const [proteusService] = await (0, ProteusService_mocks_1.buildProteusService)();
|
|
77
79
|
const messageService = new MessageService_1.MessageService(apiClient, proteusService);
|
|
78
80
|
jest.spyOn(proteusService, 'encrypt').mockImplementation(fakeEncrypt);
|
|
79
81
|
return [messageService, { apiClient, proteusService }];
|
|
80
82
|
};
|
|
81
83
|
describe('MessageService', () => {
|
|
84
|
+
afterAll(() => {
|
|
85
|
+
apiClients.forEach(client => client.disconnect());
|
|
86
|
+
(0, ProteusService_mocks_1.cleanupProteusServiceMocks)();
|
|
87
|
+
});
|
|
82
88
|
describe('sendMessage', () => {
|
|
83
89
|
const generateUsers = (userCount, clientsPerUser) => {
|
|
84
90
|
return Array.from(Array(userCount)).map((_, i) => ({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LinkPreview, Text } from '@
|
|
1
|
+
import { LinkPreview, Text } from '@wireapp/protocol-messaging';
|
|
2
2
|
import { EditedTextContent, LinkPreviewUploadedContent, TextContent } from '../content';
|
|
3
3
|
export declare class MessageToProtoMapper {
|
|
4
4
|
static mapLinkPreviews(linkPreviews: LinkPreviewUploadedContent[]): LinkPreview[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageToProtoMapper.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageToProtoMapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAiB,WAAW,EAAkB,IAAI,EAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"MessageToProtoMapper.d.ts","sourceRoot":"","sources":["../../../src/conversation/message/MessageToProtoMapper.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAiB,WAAW,EAAkB,IAAI,EAAQ,MAAM,6BAA6B,CAAC;AAErG,OAAO,EAAC,iBAAiB,EAAE,0BAA0B,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AAGtF,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,0BAA0B,EAAE,GAAG,WAAW,EAAE;IA+DjF,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,GAAG,iBAAiB,GAAG,IAAI;CA0BrE"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.MessageToProtoMapper = void 0;
|
|
22
|
-
const protocol_messaging_1 = require("@
|
|
22
|
+
const protocol_messaging_1 = require("@wireapp/protocol-messaging");
|
|
23
23
|
const GenericMessageType_1 = require("../GenericMessageType");
|
|
24
24
|
class MessageToProtoMapper {
|
|
25
25
|
static mapLinkPreviews(linkPreviews) {
|
|
@@ -35,8 +35,8 @@ function isSendingMessage() {
|
|
|
35
35
|
return sendingQueue.hasRunningTasks();
|
|
36
36
|
}
|
|
37
37
|
function resumeMessageSending() {
|
|
38
|
-
sendingQueue.
|
|
38
|
+
sendingQueue.resume();
|
|
39
39
|
}
|
|
40
40
|
function pauseMessageSending() {
|
|
41
|
-
sendingQueue.pause(
|
|
41
|
+
sendingQueue.pause();
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncryptedAsset.d.ts","sourceRoot":"","sources":["../../../src/cryptography/AssetCryptography/EncryptedAsset.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,sCAAsC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"EncryptedAsset.d.ts","sourceRoot":"","sources":["../../../src/cryptography/AssetCryptography/EncryptedAsset.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,sCAAsC;IACtC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import { HandledEventPayload } from '../notification';
|
|
2
2
|
export type EventHandlerResult = Promise<HandledEventPayload | void>;
|
|
3
|
+
export interface CoreCryptoConfig {
|
|
4
|
+
/**
|
|
5
|
+
* path on the public server to the core crypto wasm file.
|
|
6
|
+
* This file will be downloaded lazily when corecrypto is needed.
|
|
7
|
+
* It, thus, needs to know where, on the server, the file can be found
|
|
8
|
+
*/
|
|
9
|
+
wasmFilePath: string;
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
}
|
|
3
12
|
//# sourceMappingURL=common.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../src/messagingProtocols/common.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../src/messagingProtocols/common.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E2eiEnrollment, Ciphersuite, CoreCrypto,
|
|
1
|
+
import { E2eiEnrollment, Ciphersuite, CoreCrypto, WireIdentity, E2eiConversationState, DeviceStatus, CredentialType } from '@wireapp/core-crypto';
|
|
2
2
|
/**
|
|
3
3
|
* Proxy types relevant to the E2EIService from CoreCrypto
|
|
4
4
|
*/
|
|
@@ -8,7 +8,7 @@ export type AcmeDirectory = OmitFree<Awaited<ReturnType<E2eiEnrollment['director
|
|
|
8
8
|
export type AcmeChallenge = OmitFree<NonNullable<NewAcmeAuthzOriginal['challenge']>>;
|
|
9
9
|
export type NewAcmeOrder = OmitFree<Awaited<ReturnType<E2eiEnrollment['newOrderResponse']>>>;
|
|
10
10
|
export type NewAcmeAuthz = Pick<Awaited<ReturnType<E2eiEnrollment['newAuthzResponse']>>, 'identifier' | 'keyauth' | 'challenge'>;
|
|
11
|
-
export { E2eiEnrollment, Ciphersuite, CoreCrypto,
|
|
11
|
+
export { E2eiEnrollment, Ciphersuite, CoreCrypto, DeviceStatus, WireIdentity, E2eiConversationState, CredentialType };
|
|
12
12
|
export type User = {
|
|
13
13
|
id: string;
|
|
14
14
|
domain: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2EIService.types.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIService.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"E2EIService.types.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIService.types.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,cAAc,EACd,WAAW,EACX,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,KAAK,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACnC,KAAK,oBAAoB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACvD,YAAY,GAAG,SAAS,GAAG,WAAW,CACvC,CAAC;AACF,OAAO,EAAC,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAC,CAAC;AAEpH,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC;AAC3B,MAAM,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -18,11 +18,12 @@
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.CredentialType = exports.E2eiConversationState = exports.DeviceStatus = exports.CoreCrypto = exports.Ciphersuite = exports.E2eiEnrollment = void 0;
|
|
21
|
+
exports.CredentialType = exports.E2eiConversationState = exports.WireIdentity = exports.DeviceStatus = exports.CoreCrypto = exports.Ciphersuite = exports.E2eiEnrollment = void 0;
|
|
22
22
|
const core_crypto_1 = require("@wireapp/core-crypto");
|
|
23
23
|
Object.defineProperty(exports, "E2eiEnrollment", { enumerable: true, get: function () { return core_crypto_1.E2eiEnrollment; } });
|
|
24
24
|
Object.defineProperty(exports, "Ciphersuite", { enumerable: true, get: function () { return core_crypto_1.Ciphersuite; } });
|
|
25
25
|
Object.defineProperty(exports, "CoreCrypto", { enumerable: true, get: function () { return core_crypto_1.CoreCrypto; } });
|
|
26
|
+
Object.defineProperty(exports, "WireIdentity", { enumerable: true, get: function () { return core_crypto_1.WireIdentity; } });
|
|
26
27
|
Object.defineProperty(exports, "E2eiConversationState", { enumerable: true, get: function () { return core_crypto_1.E2eiConversationState; } });
|
|
27
28
|
Object.defineProperty(exports, "DeviceStatus", { enumerable: true, get: function () { return core_crypto_1.DeviceStatus; } });
|
|
28
29
|
Object.defineProperty(exports, "CredentialType", { enumerable: true, get: function () { return core_crypto_1.CredentialType; } });
|
|
@@ -6,7 +6,7 @@ import { CoreDatabase } from '../../../storage/CoreDB';
|
|
|
6
6
|
import { StringifiedQualifiedId } from '../../../util/qualifiedIdUtil';
|
|
7
7
|
import { RecurringTaskScheduler } from '../../../util/RecurringTaskScheduler';
|
|
8
8
|
import { MLSService } from '../MLSService';
|
|
9
|
-
export type DeviceIdentity = Omit<WireIdentity, 'free' | 'status'> & {
|
|
9
|
+
export type DeviceIdentity = Omit<WireIdentity, 'free' | 'status' | typeof Symbol.dispose> & {
|
|
10
10
|
status?: DeviceStatus;
|
|
11
11
|
deviceId: string;
|
|
12
12
|
qualifiedUserId: QualifiedId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"E2EIServiceExternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceExternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;AAIzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,YAAY,EAIb,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAC,sBAAsB,EAAuB,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAC,UAAU,EAAmB,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG;IAC3F,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CAC9B,CAAC;AAGF,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAK9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAR7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiD;gBAGhE,gBAAgB,EAAE,UAAU,EAC5B,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;IAO5B,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKhD,gBAAgB;IAIV,oBAAoB,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItF,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,0BAA0B,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IAsBxD,kBAAkB,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,EAAE,CAAC,GAAG,SAAS,CAAC;IA0DxD,oBAAoB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;IAiBf,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;YAKvC,4BAA4B;IAO1C;;;;;OAKG;IACU,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5D,OAAO,KAAK,WAAW,GAKtB;YAEa,+BAA+B;IAO7C;;;;;;;;;;;;OAYG;YACW,0BAA0B;IA2BxC,OAAO,CAAC,4BAA4B;YAStB,+BAA+B;YAQ/B,uBAAuB;YAKvB,0BAA0B;YAI1B,4BAA4B;YAO5B,WAAW;YAoBX,8BAA8B;CAM7C"}
|
|
@@ -29,6 +29,7 @@ const E2EIStorage_1 = require("./Storage/E2EIStorage");
|
|
|
29
29
|
const fullyQualifiedClientIdUtils_1 = require("../../../util/fullyQualifiedClientIdUtils");
|
|
30
30
|
const LowPrecisionTaskScheduler_1 = require("../../../util/LowPrecisionTaskScheduler");
|
|
31
31
|
const qualifiedIdUtil_1 = require("../../../util/qualifiedIdUtil");
|
|
32
|
+
const MLSService_1 = require("../MLSService");
|
|
32
33
|
// This export is meant to be accessible from the outside (e.g the Webapp / UI)
|
|
33
34
|
class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
34
35
|
coreCryptoClient;
|
|
@@ -56,7 +57,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
56
57
|
return this.enrollmentStorage.deletePendingEnrollmentData();
|
|
57
58
|
}
|
|
58
59
|
async getConversationState(conversationId) {
|
|
59
|
-
return this.coreCryptoClient.e2eiConversationState(conversationId);
|
|
60
|
+
return this.coreCryptoClient.transaction(cx => cx.e2eiConversationState(new core_crypto_1.ConversationId(conversationId)));
|
|
60
61
|
}
|
|
61
62
|
isE2EIEnabled() {
|
|
62
63
|
return this.coreCryptoClient.e2eiIsEnabled(this.mlsService.config.defaultCiphersuite);
|
|
@@ -83,10 +84,10 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
83
84
|
const groupIdBytes = bazinga64_1.Decoder.fromBase64(groupId).asBytes;
|
|
84
85
|
const textDecoder = new TextDecoder();
|
|
85
86
|
// we get all the devices that have an identity (either valid, expired or revoked)
|
|
86
|
-
const userIdentities = await this.coreCryptoClient.getUserIdentities(groupIdBytes, userIds.map(userId => userId.id));
|
|
87
|
+
const userIdentities = await this.coreCryptoClient.getUserIdentities(new core_crypto_1.ConversationId(groupIdBytes), userIds.map(userId => userId.id));
|
|
87
88
|
// We get all the devices in the conversation (in order to get devices that have no identity)
|
|
88
|
-
const allUsersMLSDevices = (await this.coreCryptoClient.getClientIds(groupIdBytes))
|
|
89
|
-
.map(id => textDecoder.decode(id))
|
|
89
|
+
const allUsersMLSDevices = (await this.coreCryptoClient.getClientIds(new core_crypto_1.ConversationId(groupIdBytes)))
|
|
90
|
+
.map(id => textDecoder.decode(id.copyBytes()))
|
|
90
91
|
.map(fullyQualifiedId => (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(fullyQualifiedId));
|
|
91
92
|
const mappedUserIdentities = new Map();
|
|
92
93
|
for (const userId of userIds) {
|
|
@@ -114,6 +115,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
114
115
|
clientId: id.client,
|
|
115
116
|
qualifiedUserId: userId,
|
|
116
117
|
credentialType: core_crypto_1.CredentialType.Basic,
|
|
118
|
+
x509Identity: undefined,
|
|
117
119
|
}));
|
|
118
120
|
mappedUserIdentities.set((0, qualifiedIdUtil_1.stringifyQualifiedId)(userId), [...identities, ...basicMLSDevices]);
|
|
119
121
|
}
|
|
@@ -121,8 +123,8 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
121
123
|
}
|
|
122
124
|
// Returns devices e2ei certificates
|
|
123
125
|
async getDevicesIdentities(groupId, userClientsMap) {
|
|
124
|
-
const clientIds = Object.entries(userClientsMap).map(([clientId, userId]) => (0, Helper_1.getE2EIClientId)(clientId, userId.id, userId.domain).asBytes);
|
|
125
|
-
const deviceIdentities = await this.coreCryptoClient.getDeviceIdentities(bazinga64_1.Decoder.fromBase64(groupId).asBytes, clientIds);
|
|
126
|
+
const clientIds = Object.entries(userClientsMap).map(([clientId, userId]) => new core_crypto_1.ClientId((0, Helper_1.getE2EIClientId)(clientId, userId.id, userId.domain).asBytes));
|
|
127
|
+
const deviceIdentities = await this.coreCryptoClient.getDeviceIdentities(new core_crypto_1.ConversationId(bazinga64_1.Decoder.fromBase64(groupId).asBytes), clientIds);
|
|
126
128
|
return deviceIdentities.map(identity => ({
|
|
127
129
|
...identity,
|
|
128
130
|
deviceId: (0, fullyQualifiedClientIdUtils_1.parseFullQualifiedClientId)(identity.clientId).client,
|
|
@@ -136,7 +138,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
136
138
|
}
|
|
137
139
|
async registerLocalCertificateRoot(acmeService) {
|
|
138
140
|
const localCertificateRoot = await acmeService.getLocalCertificateRoot();
|
|
139
|
-
await this.coreCryptoClient.e2eiRegisterAcmeCA(localCertificateRoot);
|
|
141
|
+
await this.coreCryptoClient.transaction(cx => cx.e2eiRegisterAcmeCA(localCertificateRoot));
|
|
140
142
|
return localCertificateRoot;
|
|
141
143
|
}
|
|
142
144
|
/**
|
|
@@ -147,7 +149,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
147
149
|
*/
|
|
148
150
|
async initialize(discoveryUrl) {
|
|
149
151
|
this._acmeService = new Connection_1.AcmeService(discoveryUrl);
|
|
150
|
-
this.mlsService.on(
|
|
152
|
+
this.mlsService.on(MLSService_1.MLSServiceEvents.NEW_CRL_DISTRIBUTION_POINTS, distributionPoints => this.handleNewCrlDistributionPoints(distributionPoints));
|
|
151
153
|
await this.registerServerCertificates();
|
|
152
154
|
await this.initialiseCrlDistributionTimers();
|
|
153
155
|
}
|
|
@@ -159,7 +161,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
159
161
|
}
|
|
160
162
|
async registerCrossSignedCertificates(acmeService) {
|
|
161
163
|
const certificates = await acmeService.getFederationCrossSignedCertificates();
|
|
162
|
-
await Promise.all(certificates.map(cert => this.coreCryptoClient.e2eiRegisterIntermediateCA(cert)));
|
|
164
|
+
await Promise.all(certificates.map(cert => this.coreCryptoClient.transaction(cx => cx.e2eiRegisterIntermediateCA(cert))));
|
|
163
165
|
}
|
|
164
166
|
/**
|
|
165
167
|
* This function is used to register different server certificates in CoreCrypto.
|
|
@@ -175,7 +177,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
175
177
|
* Both must be registered before the first enrollment.
|
|
176
178
|
*/
|
|
177
179
|
async registerServerCertificates() {
|
|
178
|
-
const isRootRegistered = await this.coreCryptoClient.e2eiIsPKIEnvSetup();
|
|
180
|
+
const isRootRegistered = await this.coreCryptoClient.transaction(cx => cx.e2eiIsPKIEnvSetup());
|
|
179
181
|
// Register root certificate if not already registered
|
|
180
182
|
if (!isRootRegistered) {
|
|
181
183
|
await this.registerLocalCertificateRoot(this.acmeService);
|
|
@@ -221,7 +223,7 @@ class E2EIServiceExternal extends commons_1.TypedEventEmitter {
|
|
|
221
223
|
await this.validateCrl(distributionPointUrl, crl, () => this.emit('crlChanged', { domain }));
|
|
222
224
|
}
|
|
223
225
|
async validateCrl(url, crl, onDirty) {
|
|
224
|
-
const { expiration: expirationTimestampSeconds, dirty } = await this.coreCryptoClient.e2eiRegisterCRL(url, crl);
|
|
226
|
+
const { expiration: expirationTimestampSeconds, dirty } = await this.coreCryptoClient.transaction(cx => cx.e2eiRegisterCRL(url, crl));
|
|
225
227
|
const expirationTimestamp = expirationTimestampSeconds && expirationTimestampSeconds * TimeUtil_1.TimeInMillis.SECOND;
|
|
226
228
|
await this.cancelCrlDistributionTimer(url);
|
|
227
229
|
//set a new timer that will execute a task once the CRL is expired
|
|
@@ -30,13 +30,18 @@ const PayloadHelper_1 = require("../../../test/PayloadHelper");
|
|
|
30
30
|
const qualifiedIdUtil_1 = require("../../../util/qualifiedIdUtil");
|
|
31
31
|
const RecurringTaskScheduler_1 = require("../../../util/RecurringTaskScheduler");
|
|
32
32
|
async function buildE2EIService(dbName = 'core-test-db') {
|
|
33
|
-
const
|
|
34
|
-
getUserIdentities: jest.fn(),
|
|
35
|
-
getClientIds: jest.fn().mockResolvedValue([]),
|
|
33
|
+
const transactionContext = {
|
|
36
34
|
e2eiIsPKIEnvSetup: jest.fn(),
|
|
37
35
|
e2eiRegisterAcmeCA: jest.fn(),
|
|
38
36
|
e2eiRegisterIntermediateCA: jest.fn(),
|
|
39
37
|
};
|
|
38
|
+
const coreCrypto = {
|
|
39
|
+
getUserIdentities: jest.fn(),
|
|
40
|
+
getClientIds: jest.fn().mockResolvedValue([]),
|
|
41
|
+
transaction: jest.fn(fn => {
|
|
42
|
+
return fn(transactionContext);
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
40
45
|
const clientService = {};
|
|
41
46
|
const mockedDb = await (0, CoreDB_1.openDB)(dbName);
|
|
42
47
|
const mockedMLSService = {
|
|
@@ -53,7 +58,7 @@ async function buildE2EIService(dbName = 'core-test-db') {
|
|
|
53
58
|
});
|
|
54
59
|
return [
|
|
55
60
|
new E2EIServiceExternal_1.E2EIServiceExternal(coreCrypto, mockedDb, recurringTaskScheduler, clientService, mockedMLSService),
|
|
56
|
-
{ coreCrypto, mlsService: mockedMLSService, recurringTaskScheduler },
|
|
61
|
+
{ coreCrypto, mlsService: mockedMLSService, recurringTaskScheduler, transactionContext },
|
|
57
62
|
];
|
|
58
63
|
}
|
|
59
64
|
function generateCoreCryptoIdentity({ userId, status = 'Valid', deviceId = (0, PayloadHelper_1.getUUID)(), }) {
|
|
@@ -111,7 +116,7 @@ describe('E2EIServiceExternal', () => {
|
|
|
111
116
|
`${user1.id}:74a50c1f4352b41f@elna.wire.link`,
|
|
112
117
|
`${user2.id}:452cb4c65f0369a8@elna.wire.link`,
|
|
113
118
|
];
|
|
114
|
-
coreCrypto.getClientIds.mockResolvedValue(allClients.map(clientId => encoder.encode(clientId)));
|
|
119
|
+
coreCrypto.getClientIds.mockResolvedValue(allClients.map(clientId => new core_crypto_1.ClientId(encoder.encode(clientId))));
|
|
115
120
|
jest.spyOn(mlsService, 'conversationExists').mockResolvedValue(true);
|
|
116
121
|
const userIdentities = await service.getUsersIdentities(groupId, userIds);
|
|
117
122
|
expect(userIdentities?.get((0, qualifiedIdUtil_1.stringifyQualifiedId)(user1))).toHaveLength(3);
|
|
@@ -187,24 +192,24 @@ describe('E2EIServiceExternal', () => {
|
|
|
187
192
|
});
|
|
188
193
|
it('registers the server certificates and shedules a timer to refresh intermediate certs every', async () => {
|
|
189
194
|
jest.useFakeTimers();
|
|
190
|
-
const [service, {
|
|
191
|
-
jest.spyOn(
|
|
195
|
+
const [service, { transactionContext }] = await buildE2EIService('mockedDB1');
|
|
196
|
+
jest.spyOn(transactionContext, 'e2eiIsPKIEnvSetup').mockResolvedValueOnce(false);
|
|
192
197
|
await service.initialize('https://some.crl.discovery.url');
|
|
193
|
-
expect(
|
|
194
|
-
expect(
|
|
195
|
-
expect(
|
|
196
|
-
expect(
|
|
198
|
+
expect(transactionContext.e2eiRegisterAcmeCA).toHaveBeenCalledWith(mockedRootCA);
|
|
199
|
+
expect(transactionContext.e2eiRegisterIntermediateCA).toHaveBeenCalledWith(federatedCerts[0]);
|
|
200
|
+
expect(transactionContext.e2eiRegisterIntermediateCA).toHaveBeenCalledWith(federatedCerts[1]);
|
|
201
|
+
expect(transactionContext.e2eiRegisterIntermediateCA).toHaveBeenCalledTimes(2);
|
|
197
202
|
await jest.advanceTimersByTimeAsync(TimeUtil_1.TimeInMillis.DAY);
|
|
198
203
|
await jest.runAllTimersAsync();
|
|
199
|
-
expect(
|
|
204
|
+
expect(transactionContext.e2eiRegisterIntermediateCA).toHaveBeenCalledTimes(4);
|
|
200
205
|
});
|
|
201
206
|
it('does not register the root cert if it was already registered', async () => {
|
|
202
207
|
jest.useFakeTimers();
|
|
203
|
-
const [service, {
|
|
204
|
-
jest.spyOn(
|
|
208
|
+
const [service, { transactionContext }] = await buildE2EIService('mockedDB2');
|
|
209
|
+
jest.spyOn(transactionContext, 'e2eiIsPKIEnvSetup').mockResolvedValueOnce(true);
|
|
205
210
|
await service.initialize('https://some.crl.discovery.url');
|
|
206
|
-
expect(
|
|
207
|
-
expect(
|
|
211
|
+
expect(transactionContext.e2eiRegisterAcmeCA).not.toHaveBeenCalled();
|
|
212
|
+
expect(transactionContext.e2eiRegisterIntermediateCA).toHaveBeenCalledTimes(2);
|
|
208
213
|
});
|
|
209
214
|
});
|
|
210
215
|
});
|
|
@@ -6,6 +6,9 @@ export type getTokenCallback = (challengesData?: {
|
|
|
6
6
|
challenge: any;
|
|
7
7
|
keyAuth: string;
|
|
8
8
|
}) => Promise<string | undefined>;
|
|
9
|
+
export type getAllConversationsCallback = () => Promise<{
|
|
10
|
+
group_id: string;
|
|
11
|
+
}[]>;
|
|
9
12
|
export declare class E2EIServiceInternal {
|
|
10
13
|
private readonly coreCryptoClient;
|
|
11
14
|
private readonly apiClient;
|
|
@@ -24,7 +27,10 @@ export declare class E2EIServiceInternal {
|
|
|
24
27
|
* @param getOAuthToken function called when the process needs an oauth token
|
|
25
28
|
* @param refresh should the process refresh the current certificate or get a new one
|
|
26
29
|
*/
|
|
27
|
-
generateCertificate(getOAuthToken: getTokenCallback, refresh: boolean, ciphersuite: Ciphersuite): Promise<
|
|
30
|
+
generateCertificate(getOAuthToken: getTokenCallback, refresh: boolean, getAllConversations: getAllConversationsCallback, ciphersuite: Ciphersuite): Promise<{
|
|
31
|
+
newCrlDistributionPoints: import("@wireapp/core-crypto").NewCrlDistributionPoints;
|
|
32
|
+
keyPackages: Uint8Array[];
|
|
33
|
+
}>;
|
|
28
34
|
private continueCertificateGeneration;
|
|
29
35
|
private initIdentity;
|
|
30
36
|
private getDirectory;
|
|
@@ -42,8 +48,8 @@ export declare class E2EIServiceInternal {
|
|
|
42
48
|
* Stores the received certificate data in local storage for later use
|
|
43
49
|
*
|
|
44
50
|
* @param oAuthIdToken
|
|
45
|
-
* @returns
|
|
51
|
+
* @returns KeyPackages
|
|
46
52
|
*/
|
|
47
|
-
private
|
|
53
|
+
private getKeyPackages;
|
|
48
54
|
}
|
|
49
55
|
//# sourceMappingURL=E2EIServiceInternal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E2EIServiceInternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"E2EIServiceInternal.d.ts","sourceRoot":"","sources":["../../../../src/messagingProtocols/mls/E2EIdentityService/E2EIServiceInternal.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAK9C,OAAO,EAAgB,WAAW,EAAE,UAAU,EAAiC,MAAM,qBAAqB,CAAC;AAS3G,OAAO,EAAqB,WAAW,EAAiC,MAAM,8BAA8B,CAAC;AAE7G,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG,CAAC,cAAc,CAAC,EAAE;IAAC,SAAS,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEnH,MAAM,MAAM,2BAA2B,GAAG,MAAM,OAAO,CACrD;IACE,QAAQ,EAAE,MAAM,CAAC;CAClB,EAAE,CACJ,CAAC;AACF,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAX9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoE;IAC3F,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAiD;gBAGxE,MAAM,EAAE,YAAY,EACH,gBAAgB,EAAE,UAAU,EAC5B,SAAS,EAAE,SAAS;IACrC,wDAAwD;IACvC,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,WAAW;IAO3C;;;;OAIG;IACU,mBAAmB,CAC9B,aAAa,EAAE,gBAAgB,EAC/B,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,2BAA2B,EAChD,WAAW,EAAE,WAAW;;;;YAoCZ,6BAA6B;YAa7B,YAAY;YAYZ,YAAY;YAUZ,eAAe;IAQ7B;;;;;OAKG;YACW,uBAAuB;IAyCrC;;;;;;;OAOG;YACW,cAAc;CAoF7B"}
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.E2EIServiceInternal = void 0;
|
|
22
22
|
const commons_1 = require("@wireapp/commons");
|
|
23
|
+
const core_crypto_1 = require("@wireapp/core-crypto");
|
|
23
24
|
const AcmeServer_1 = require("./Connection/AcmeServer");
|
|
25
|
+
const E2EIService_types_1 = require("./E2EIService.types");
|
|
24
26
|
const Helper_1 = require("./Helper");
|
|
25
27
|
const Account_1 = require("./Steps/Account");
|
|
26
28
|
const Authorization_1 = require("./Steps/Authorization");
|
|
@@ -55,7 +57,7 @@ class E2EIServiceInternal {
|
|
|
55
57
|
* @param getOAuthToken function called when the process needs an oauth token
|
|
56
58
|
* @param refresh should the process refresh the current certificate or get a new one
|
|
57
59
|
*/
|
|
58
|
-
async generateCertificate(getOAuthToken, refresh, ciphersuite) {
|
|
60
|
+
async generateCertificate(getOAuthToken, refresh, getAllConversations, ciphersuite) {
|
|
59
61
|
const stashedEnrollmentData = await this.enrollmentStorage.getPendingEnrollmentData();
|
|
60
62
|
if (stashedEnrollmentData) {
|
|
61
63
|
// In case we have stashed data, we continue the enrollment flow (we are coming back from a redirect)
|
|
@@ -63,7 +65,7 @@ class E2EIServiceInternal {
|
|
|
63
65
|
if (!oAuthToken) {
|
|
64
66
|
throw new Error('No OAuthToken received for in progress enrollment process');
|
|
65
67
|
}
|
|
66
|
-
return this.continueCertificateGeneration(oAuthToken, stashedEnrollmentData);
|
|
68
|
+
return this.continueCertificateGeneration(oAuthToken, stashedEnrollmentData, getAllConversations, ciphersuite);
|
|
67
69
|
}
|
|
68
70
|
// We first get the challenges needed to validate the user identity
|
|
69
71
|
const identity = await this.initIdentity(refresh, ciphersuite);
|
|
@@ -71,7 +73,7 @@ class E2EIServiceInternal {
|
|
|
71
73
|
const { keyauth, oidcChallenge } = enrollmentChallenges.authorization;
|
|
72
74
|
const challengeData = { challenge: oidcChallenge, keyAuth: keyauth };
|
|
73
75
|
// store auth data for continuing the flow later on (in case we are redirected to the identity provider)
|
|
74
|
-
const handle = await this.coreCryptoClient.e2eiEnrollmentStash(identity);
|
|
76
|
+
const handle = await this.coreCryptoClient.transaction(cx => cx.e2eiEnrollmentStash(identity));
|
|
75
77
|
const enrollmentData = {
|
|
76
78
|
handle,
|
|
77
79
|
...enrollmentChallenges,
|
|
@@ -82,19 +84,19 @@ class E2EIServiceInternal {
|
|
|
82
84
|
if (!oAuthToken) {
|
|
83
85
|
throw new Error('No OAuthToken received for in initial enrollment process');
|
|
84
86
|
}
|
|
85
|
-
return this.continueCertificateGeneration(oAuthToken, enrollmentData);
|
|
87
|
+
return this.continueCertificateGeneration(oAuthToken, enrollmentData, getAllConversations, ciphersuite);
|
|
86
88
|
}
|
|
87
|
-
async continueCertificateGeneration(oAuthToken, enrollmentData) {
|
|
89
|
+
async continueCertificateGeneration(oAuthToken, enrollmentData, getAllConversations, cipherSuite) {
|
|
88
90
|
const handle = enrollmentData.handle;
|
|
89
|
-
const identity = await this.coreCryptoClient.e2eiEnrollmentStashPop(handle);
|
|
90
|
-
return this.
|
|
91
|
+
const identity = await this.coreCryptoClient.transaction(cx => cx.e2eiEnrollmentStashPop(handle));
|
|
92
|
+
return this.getKeyPackages(identity, oAuthToken, enrollmentData, getAllConversations, cipherSuite);
|
|
91
93
|
}
|
|
92
94
|
// ############ Internal Functions ############
|
|
93
95
|
async initIdentity(hasActiveCertificate, ciphersuite) {
|
|
94
96
|
const { user } = this.initialData;
|
|
95
97
|
return hasActiveCertificate
|
|
96
|
-
? this.coreCryptoClient.e2eiNewRotateEnrollment(this.certificateTtl, ciphersuite, user.displayName, user.handle, user.teamId)
|
|
97
|
-
: this.coreCryptoClient.e2eiNewActivationEnrollment(user.displayName, user.handle, this.certificateTtl, ciphersuite, user.teamId);
|
|
98
|
+
? this.coreCryptoClient.transaction(cx => cx.e2eiNewRotateEnrollment(this.certificateTtl, ciphersuite, user.displayName, user.handle, user.teamId))
|
|
99
|
+
: this.coreCryptoClient.transaction(cx => cx.e2eiNewActivationEnrollment(user.displayName, user.handle, this.certificateTtl, ciphersuite, user.teamId));
|
|
98
100
|
}
|
|
99
101
|
async getDirectory(identity, connection) {
|
|
100
102
|
const directory = await connection.getDirectory();
|
|
@@ -158,9 +160,9 @@ class E2EIServiceInternal {
|
|
|
158
160
|
* Stores the received certificate data in local storage for later use
|
|
159
161
|
*
|
|
160
162
|
* @param oAuthIdToken
|
|
161
|
-
* @returns
|
|
163
|
+
* @returns KeyPackages
|
|
162
164
|
*/
|
|
163
|
-
async
|
|
165
|
+
async getKeyPackages(identity, oAuthIdToken, enrollmentData, getAllConversations, cipherSuite) {
|
|
164
166
|
// Step 7: Do OIDC client challenge
|
|
165
167
|
const oidcData = await (0, OidcChallenge_1.doWireOidcChallenge)({
|
|
166
168
|
oAuthIdToken,
|
|
@@ -210,7 +212,24 @@ class E2EIServiceInternal {
|
|
|
210
212
|
throw new Error('Error while trying to continue OAuth flow. No certificate received');
|
|
211
213
|
}
|
|
212
214
|
// Step 10: Initialize MLS with the certificate
|
|
213
|
-
return this.coreCryptoClient.
|
|
215
|
+
return this.coreCryptoClient.transaction(async (cx) => {
|
|
216
|
+
const conversations = await getAllConversations();
|
|
217
|
+
const newCrlDistributionPoints = await cx.saveX509Credential(identity, certificate);
|
|
218
|
+
for (const conversation of conversations) {
|
|
219
|
+
if (Boolean(conversation.group_id?.length)) {
|
|
220
|
+
const idAsBytes = new TextEncoder().encode(conversation.group_id);
|
|
221
|
+
await cx.e2eiRotate(new core_crypto_1.ConversationId(idAsBytes));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
this.logger.error('No group id found in conversation');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const keyPackages = await cx.clientKeypackages(cipherSuite, E2EIService_types_1.CredentialType.X509, this.keyPackagesAmount);
|
|
228
|
+
return {
|
|
229
|
+
newCrlDistributionPoints,
|
|
230
|
+
keyPackages,
|
|
231
|
+
};
|
|
232
|
+
});
|
|
214
233
|
}
|
|
215
234
|
}
|
|
216
235
|
exports.E2EIServiceInternal = E2EIServiceInternal;
|
|
@@ -9,6 +9,12 @@ type GetE2EIClientIdReturnType = {
|
|
|
9
9
|
export declare const getE2EIClientId: (clientId: string, userId: string, userDomain: string) => GetE2EIClientIdReturnType;
|
|
10
10
|
export declare const getSignatureAlgorithmForCiphersuite: (ciphersuite: Ciphersuite) => MLSPublicKeyAlgorithmKeys;
|
|
11
11
|
export declare const isMLSDevice: ({ mls_public_keys }: RegisteredClient, ciphersuite: Ciphersuite) => boolean;
|
|
12
|
+
export declare enum MLSDeviceStatus {
|
|
13
|
+
REGISTERED = "registered",
|
|
14
|
+
FRESH = "fresh",
|
|
15
|
+
MISMATCH = "mismatch"
|
|
16
|
+
}
|
|
17
|
+
export declare const getMLSDeviceStatus: ({ mls_public_keys }: RegisteredClient, ciphersuite: Ciphersuite, existingClientSignature: string) => MLSDeviceStatus;
|
|
12
18
|
export declare const isResponseStatusValid: (status: string | undefined) => boolean | "" | undefined;
|
|
13
19
|
export {};
|
|
14
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/mls/E2EIdentityService/Helper/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,yBAAyB,EAAE,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAE3F,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAC,kBAAkB,EAAkC,MAAM,8CAA8C,CAAC;AAEjH,eAAO,MAAM,eAAe,SAAU,GAAG,KAAG,UAG3C,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AACF,eAAO,MAAM,eAAe,aAAc,MAAM,UAAU,MAAM,cAAc,MAAM,KAAG,yBAOtF,CAAC;AAeF,eAAO,MAAM,mCAAmC,gBAAiB,WAAW,KAAG,yBAE9E,CAAC;AAEF,eAAO,MAAM,WAAW,wBAAuB,gBAAgB,eAAe,WAAW,YAIxF,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAY,MAAM,GAAG,SAAS,6BAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/messagingProtocols/mls/E2EIdentityService/Helper/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,yBAAyB,EAAE,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAE3F,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAC,kBAAkB,EAAkC,MAAM,8CAA8C,CAAC;AAEjH,eAAO,MAAM,eAAe,SAAU,GAAG,KAAG,UAG3C,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AACF,eAAO,MAAM,eAAe,aAAc,MAAM,UAAU,MAAM,cAAc,MAAM,KAAG,yBAOtF,CAAC;AAeF,eAAO,MAAM,mCAAmC,gBAAiB,WAAW,KAAG,yBAE9E,CAAC;AAEF,eAAO,MAAM,WAAW,wBAAuB,gBAAgB,eAAe,WAAW,YAIxF,CAAC;AAEF,oBAAY,eAAe;IACzB,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AACD,eAAO,MAAM,kBAAkB,wBACV,gBAAgB,eACtB,WAAW,2BACC,MAAM,KAC9B,eAWF,CAAC;AAEF,eAAO,MAAM,qBAAqB,WAAY,MAAM,GAAG,SAAS,6BAAiC,CAAC"}
|