@brightchain/brightchain-lib 0.29.26 → 0.30.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/package.json +10 -4
- package/src/index.d.ts +1 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/constants.d.ts +3 -26
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +2 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/db/collection.d.ts +1 -1
- package/src/lib/db/collection.d.ts.map +1 -1
- package/src/lib/db/collection.js +2 -1
- package/src/lib/db/collection.js.map +1 -1
- package/src/lib/enumeration-translations/index.d.ts +2 -0
- package/src/lib/enumeration-translations/index.d.ts.map +1 -1
- package/src/lib/enumeration-translations/index.js +1 -0
- package/src/lib/enumeration-translations/index.js.map +1 -1
- package/src/lib/enumeration-translations/memberStatusType.d.ts +5 -0
- package/src/lib/enumeration-translations/memberStatusType.d.ts.map +1 -0
- package/src/lib/enumeration-translations/memberStatusType.js +58 -0
- package/src/lib/enumeration-translations/memberStatusType.js.map +1 -0
- package/src/lib/enumerations/brightChainStrings.d.ts +61 -0
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainStrings.js +64 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.d.ts +1 -0
- package/src/lib/enumerations/brightchainFeatures.d.ts.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.js +1 -0
- package/src/lib/enumerations/brightchainFeatures.js.map +1 -1
- package/src/lib/enumerations/communication.d.ts +7 -1
- package/src/lib/enumerations/communication.d.ts.map +1 -1
- package/src/lib/enumerations/communication.js +6 -0
- package/src/lib/enumerations/communication.js.map +1 -1
- package/src/lib/enumerations/friendRequestStatus.d.ts +7 -0
- package/src/lib/enumerations/friendRequestStatus.d.ts.map +1 -0
- package/src/lib/enumerations/friendRequestStatus.js +11 -0
- package/src/lib/enumerations/friendRequestStatus.js.map +1 -0
- package/src/lib/enumerations/friendsErrorCode.d.ts +10 -0
- package/src/lib/enumerations/friendsErrorCode.d.ts.map +1 -0
- package/src/lib/enumerations/friendsErrorCode.js +14 -0
- package/src/lib/enumerations/friendsErrorCode.js.map +1 -0
- package/src/lib/enumerations/friendshipStatus.d.ts +7 -0
- package/src/lib/enumerations/friendshipStatus.d.ts.map +1 -0
- package/src/lib/enumerations/friendshipStatus.js +11 -0
- package/src/lib/enumerations/friendshipStatus.js.map +1 -0
- package/src/lib/enumerations/index.d.ts +3 -0
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +4 -0
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.d.ts +15 -2
- package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.js +17 -1
- package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +4 -2
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js +3 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -1
- package/src/lib/errors/encryptionErrors.d.ts +71 -0
- package/src/lib/errors/encryptionErrors.d.ts.map +1 -0
- package/src/lib/errors/encryptionErrors.js +112 -0
- package/src/lib/errors/encryptionErrors.js.map +1 -0
- package/src/lib/errors/friendsServiceError.d.ts +20 -0
- package/src/lib/errors/friendsServiceError.d.ts.map +1 -0
- package/src/lib/errors/friendsServiceError.js +48 -0
- package/src/lib/errors/friendsServiceError.js.map +1 -0
- package/src/lib/errors/index.d.ts +15 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +21 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/i18n/i18n-setup.d.ts +2 -2
- package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.d.ts +2 -2
- package/src/lib/i18n/strings/englishUK.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.js.map +1 -1
- package/src/lib/i18n/strings/englishUs.d.ts +2 -2
- package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUs.js +65 -1
- package/src/lib/i18n/strings/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/french.d.ts +2 -2
- package/src/lib/i18n/strings/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/french.js +78 -13
- package/src/lib/i18n/strings/french.js.map +1 -1
- package/src/lib/i18n/strings/german.d.ts +2 -2
- package/src/lib/i18n/strings/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/german.js +77 -12
- package/src/lib/i18n/strings/german.js.map +1 -1
- package/src/lib/i18n/strings/japanese.d.ts +2 -2
- package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/japanese.js +77 -12
- package/src/lib/i18n/strings/japanese.js.map +1 -1
- package/src/lib/i18n/strings/mandarin.d.ts +2 -2
- package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/mandarin.js +77 -12
- package/src/lib/i18n/strings/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/spanish.d.ts +2 -2
- package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/spanish.js +77 -12
- package/src/lib/i18n/strings/spanish.js.map +1 -1
- package/src/lib/i18n/strings/ukrainian.d.ts +2 -2
- package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/ukrainian.js +77 -12
- package/src/lib/i18n/strings/ukrainian.js.map +1 -1
- package/src/lib/index.d.ts +31 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +29 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/interfaces/appSubsystemPlugin.d.ts +69 -0
- package/src/lib/interfaces/appSubsystemPlugin.d.ts.map +1 -0
- package/src/lib/interfaces/appSubsystemPlugin.js +3 -0
- package/src/lib/interfaces/appSubsystemPlugin.js.map +1 -0
- package/src/lib/interfaces/auth/writeProof.d.ts +2 -0
- package/src/lib/interfaces/auth/writeProof.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.js +2 -2
- package/src/lib/interfaces/auth/writeProofUtils.js.map +1 -1
- package/src/lib/interfaces/availability/gossipService.d.ts +99 -1
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js +4 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/communication/blockContentStore.d.ts +57 -0
- package/src/lib/interfaces/communication/blockContentStore.d.ts.map +1 -0
- package/src/lib/interfaces/communication/blockContentStore.js +21 -0
- package/src/lib/interfaces/communication/blockContentStore.js.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts +77 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js +25 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js.map +1 -0
- package/src/lib/interfaces/communication/index.d.ts +4 -0
- package/src/lib/interfaces/communication/index.d.ts.map +1 -0
- package/src/lib/interfaces/communication/index.js +3 -0
- package/src/lib/interfaces/communication/index.js.map +1 -0
- package/src/lib/interfaces/communication/server.d.ts +57 -0
- package/src/lib/interfaces/communication/server.d.ts.map +1 -0
- package/src/lib/interfaces/communication/server.js +14 -0
- package/src/lib/interfaces/communication/server.js.map +1 -0
- package/src/lib/interfaces/communication.d.ts +62 -5
- package/src/lib/interfaces/communication.d.ts.map +1 -1
- package/src/lib/interfaces/communication.js +8 -0
- package/src/lib/interfaces/communication.js.map +1 -1
- package/src/lib/interfaces/communicationEvents.d.ts +59 -1
- package/src/lib/interfaces/communicationEvents.d.ts.map +1 -1
- package/src/lib/interfaces/constants.d.ts +2 -0
- package/src/lib/interfaces/constants.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.js +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -1
- package/src/lib/interfaces/friends/baseFriendRequest.d.ts +13 -0
- package/src/lib/interfaces/friends/baseFriendRequest.d.ts.map +1 -0
- package/src/lib/interfaces/friends/baseFriendRequest.js +3 -0
- package/src/lib/interfaces/friends/baseFriendRequest.js.map +1 -0
- package/src/lib/interfaces/friends/baseFriendship.d.ts +11 -0
- package/src/lib/interfaces/friends/baseFriendship.d.ts.map +1 -0
- package/src/lib/interfaces/friends/baseFriendship.js +3 -0
- package/src/lib/interfaces/friends/baseFriendship.js.map +1 -0
- package/src/lib/interfaces/friends/friendsService.d.ts +32 -0
- package/src/lib/interfaces/friends/friendsService.d.ts.map +1 -0
- package/src/lib/interfaces/friends/friendsService.js +3 -0
- package/src/lib/interfaces/friends/friendsService.js.map +1 -0
- package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts +17 -0
- package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts.map +1 -0
- package/src/lib/interfaces/friends/friendsSuggestionProvider.js +3 -0
- package/src/lib/interfaces/friends/friendsSuggestionProvider.js.map +1 -0
- package/src/lib/interfaces/friends/index.d.ts +6 -0
- package/src/lib/interfaces/friends/index.d.ts.map +1 -0
- package/src/lib/interfaces/friends/index.js +3 -0
- package/src/lib/interfaces/friends/index.js.map +1 -0
- package/src/lib/interfaces/friends/pagination.d.ts +11 -0
- package/src/lib/interfaces/friends/pagination.d.ts.map +1 -0
- package/src/lib/interfaces/friends/pagination.js +3 -0
- package/src/lib/interfaces/friends/pagination.js.map +1 -0
- package/src/lib/interfaces/index.d.ts +6 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +3 -0
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/messaging/gpgKey.d.ts +93 -0
- package/src/lib/interfaces/messaging/gpgKey.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/gpgKey.js +12 -0
- package/src/lib/interfaces/messaging/gpgKey.js.map +1 -0
- package/src/lib/interfaces/messaging/index.d.ts +4 -0
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.js +4 -0
- package/src/lib/interfaces/messaging/index.js.map +1 -1
- package/src/lib/interfaces/messaging/keyStore.d.ts +100 -0
- package/src/lib/interfaces/messaging/keyStore.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/keyStore.js +13 -0
- package/src/lib/interfaces/messaging/keyStore.js.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts +92 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js +13 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts +99 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js +12 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js.map +1 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +8 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
- package/src/lib/interfaces/responses/communicationResponses.d.ts +25 -0
- package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
- package/src/lib/interfaces/storage/documentTypes.d.ts +4 -0
- package/src/lib/interfaces/storage/documentTypes.d.ts.map +1 -1
- package/src/lib/services/blockService.d.ts +11 -3
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +22 -2
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +108 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +284 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -0
- package/src/lib/services/communication/attachmentUtils.d.ts +20 -0
- package/src/lib/services/communication/attachmentUtils.d.ts.map +1 -0
- package/src/lib/services/communication/attachmentUtils.js +43 -0
- package/src/lib/services/communication/attachmentUtils.js.map +1 -0
- package/src/lib/services/communication/channelService.d.ts +143 -14
- package/src/lib/services/communication/channelService.d.ts.map +1 -1
- package/src/lib/services/communication/channelService.js +562 -41
- package/src/lib/services/communication/channelService.js.map +1 -1
- package/src/lib/services/communication/conversationService.d.ts +91 -4
- package/src/lib/services/communication/conversationService.d.ts.map +1 -1
- package/src/lib/services/communication/conversationService.js +269 -7
- package/src/lib/services/communication/conversationService.js.map +1 -1
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts +36 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts.map +1 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js +30 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js.map +1 -0
- package/src/lib/services/communication/groupService.d.ts +99 -21
- package/src/lib/services/communication/groupService.d.ts.map +1 -1
- package/src/lib/services/communication/groupService.js +387 -41
- package/src/lib/services/communication/groupService.js.map +1 -1
- package/src/lib/services/communication/index.d.ts +6 -1
- package/src/lib/services/communication/index.d.ts.map +1 -1
- package/src/lib/services/communication/index.js +20 -1
- package/src/lib/services/communication/index.js.map +1 -1
- package/src/lib/services/communication/keyEpochManager.d.ts +41 -0
- package/src/lib/services/communication/keyEpochManager.d.ts.map +1 -0
- package/src/lib/services/communication/keyEpochManager.js +59 -0
- package/src/lib/services/communication/keyEpochManager.js.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts +32 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.js +58 -0
- package/src/lib/services/communication/rehydrationHelpers.js.map +1 -0
- package/src/lib/services/communication/serverService.d.ts +193 -0
- package/src/lib/services/communication/serverService.d.ts.map +1 -0
- package/src/lib/services/communication/serverService.js +495 -0
- package/src/lib/services/communication/serverService.js.map +1 -0
- package/src/lib/services/copyOnWrite.service.d.ts +110 -0
- package/src/lib/services/copyOnWrite.service.d.ts.map +1 -0
- package/src/lib/services/copyOnWrite.service.js +256 -0
- package/src/lib/services/copyOnWrite.service.js.map +1 -0
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +1 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/memberStore.d.ts +17 -1
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +98 -17
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.d.ts +162 -0
- package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.js +293 -0
- package/src/lib/services/messaging/emailEncryptionService.js.map +1 -1
- package/src/lib/services/messaging/emailMessageService.d.ts +64 -0
- package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailMessageService.js +142 -13
- package/src/lib/services/messaging/emailMessageService.js.map +1 -1
- package/src/lib/services/messaging/gpgKeyManager.d.ts +130 -0
- package/src/lib/services/messaging/gpgKeyManager.d.ts.map +1 -0
- package/src/lib/services/messaging/gpgKeyManager.js +381 -0
- package/src/lib/services/messaging/gpgKeyManager.js.map +1 -0
- package/src/lib/services/messaging/index.d.ts +3 -0
- package/src/lib/services/messaging/index.d.ts.map +1 -1
- package/src/lib/services/messaging/index.js +3 -0
- package/src/lib/services/messaging/index.js.map +1 -1
- package/src/lib/services/messaging/recipientKeyResolver.d.ts +47 -0
- package/src/lib/services/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/services/messaging/recipientKeyResolver.js +132 -0
- package/src/lib/services/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts +207 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.js +696 -0
- package/src/lib/services/messaging/smimeCertificateManager.js.map +1 -0
- package/src/lib/utils/index.d.ts +6 -0
- package/src/lib/utils/index.d.ts.map +1 -1
- package/src/lib/utils/index.js +9 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/sortPair.d.ts +6 -0
- package/src/lib/utils/sortPair.d.ts.map +1 -0
- package/src/lib/utils/sortPair.js +11 -0
- package/src/lib/utils/sortPair.js.map +1 -0
|
@@ -6,13 +6,53 @@
|
|
|
6
6
|
* encrypted content storage to MessagePassingService. Supports cursor-based
|
|
7
7
|
* pagination, message deletion, and conversation promotion to groups.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Uses epoch-aware key management via IKeyEpochState for forward secrecy.
|
|
10
|
+
* DM conversations generate a 256-bit DM_Key at creation, wrapped per-participant
|
|
11
|
+
* using the injected key encryption handler. Messages record the keyEpoch they
|
|
12
|
+
* were encrypted under.
|
|
13
|
+
*
|
|
14
|
+
* When an IChatStorageProvider is injected, conversations and messages are
|
|
15
|
+
* also persisted to the provider's collections (write-through). Sync helper
|
|
16
|
+
* methods continue to read from the in-memory Maps so their signatures
|
|
17
|
+
* remain unchanged.
|
|
18
|
+
*
|
|
19
|
+
* Requirements: 10.1, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 9.2
|
|
10
20
|
*/
|
|
11
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
22
|
exports.ConversationService = exports.GroupPromotionNotConfiguredError = exports.NotMessageAuthorError = exports.MessageNotFoundError = exports.NotParticipantError = exports.ConversationNotFoundError = exports.RecipientNotReachableError = void 0;
|
|
23
|
+
exports.extractConversationKeyFromDefault = extractConversationKeyFromDefault;
|
|
13
24
|
const uuid_1 = require("uuid");
|
|
25
|
+
const platformCrypto_1 = require("../../crypto/platformCrypto");
|
|
26
|
+
const attachmentUtils_1 = require("./attachmentUtils");
|
|
14
27
|
const events_1 = require("../../interfaces/events");
|
|
15
28
|
const pagination_1 = require("../../utils/pagination");
|
|
29
|
+
const encryptionErrors_1 = require("../../errors/encryptionErrors");
|
|
30
|
+
const rehydrationHelpers_1 = require("./rehydrationHelpers");
|
|
31
|
+
/**
|
|
32
|
+
* Default key encryption: base64-encodes the key prefixed with memberId.
|
|
33
|
+
* Placeholder; real implementations use ECIES.
|
|
34
|
+
*/
|
|
35
|
+
function defaultKeyEncryption(memberId, symmetricKey) {
|
|
36
|
+
const binary = Array.from(symmetricKey)
|
|
37
|
+
.map((b) => String.fromCharCode(b))
|
|
38
|
+
.join('');
|
|
39
|
+
const base64 = btoa(binary);
|
|
40
|
+
return `enc:${memberId}:${base64}`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract the symmetric key from a default-encrypted key string.
|
|
44
|
+
* Only works with the default placeholder encryption.
|
|
45
|
+
*/
|
|
46
|
+
function extractConversationKeyFromDefault(encrypted) {
|
|
47
|
+
const parts = encrypted.split(':');
|
|
48
|
+
const base64 = parts[2];
|
|
49
|
+
const binary = atob(base64);
|
|
50
|
+
const bytes = new Uint8Array(binary.length);
|
|
51
|
+
for (let i = 0; i < binary.length; i++) {
|
|
52
|
+
bytes[i] = binary.charCodeAt(i);
|
|
53
|
+
}
|
|
54
|
+
return bytes;
|
|
55
|
+
}
|
|
16
56
|
/**
|
|
17
57
|
* Uniform error thrown when a recipient is not reachable.
|
|
18
58
|
* The message is intentionally identical for non-existent and blocked members
|
|
@@ -71,13 +111,139 @@ class ConversationService {
|
|
|
71
111
|
blockedPairs = new Set();
|
|
72
112
|
/** Set of known member IDs */
|
|
73
113
|
knownMembers = new Set();
|
|
114
|
+
/** conversationId → epoch-aware key state (raw keys + wrapped keys per epoch) */
|
|
115
|
+
keyEpochStates = new Map();
|
|
74
116
|
groupPromotionHandler = null;
|
|
117
|
+
initialized = false;
|
|
75
118
|
memberReachabilityCheck;
|
|
76
119
|
eventEmitter;
|
|
77
|
-
|
|
120
|
+
encryptKey;
|
|
121
|
+
randomBytesProvider;
|
|
122
|
+
/** Optional persistent collection for conversations (write-through). */
|
|
123
|
+
conversationCollection;
|
|
124
|
+
/** Optional persistent collection for messages (write-through). */
|
|
125
|
+
messageCollection;
|
|
126
|
+
/** Optional block content store for storing message content as blocks. */
|
|
127
|
+
blockContentStore;
|
|
128
|
+
constructor(memberReachabilityCheck = null, eventEmitter = new events_1.NullEventEmitter(), storageProvider, encryptKey = defaultKeyEncryption, randomBytesProvider, blockContentStore) {
|
|
78
129
|
this.memberReachabilityCheck = memberReachabilityCheck;
|
|
79
130
|
this.eventEmitter = eventEmitter;
|
|
131
|
+
this.encryptKey = encryptKey;
|
|
132
|
+
this.randomBytesProvider = randomBytesProvider ?? platformCrypto_1.getRandomBytes;
|
|
133
|
+
this.blockContentStore = blockContentStore;
|
|
134
|
+
if (storageProvider) {
|
|
135
|
+
this.conversationCollection = storageProvider.conversations;
|
|
136
|
+
this.messageCollection = storageProvider.messages;
|
|
137
|
+
}
|
|
80
138
|
}
|
|
139
|
+
// ─── Rehydration ────────────────────────────────────────────────────────
|
|
140
|
+
/**
|
|
141
|
+
* Load persisted conversations and messages from the storage provider
|
|
142
|
+
* into in-memory Maps, rebuilding derived indexes and key epoch states.
|
|
143
|
+
*
|
|
144
|
+
* No-op when no storage provider was injected or when already initialized.
|
|
145
|
+
*
|
|
146
|
+
* Requirements: 1.1, 1.5, 1.6, 2.1, 2.2, 2.3, 2.4, 2.5, 8.1, 8.2, 8.3, 9.1, 9.2
|
|
147
|
+
*/
|
|
148
|
+
async init() {
|
|
149
|
+
if (this.initialized)
|
|
150
|
+
return;
|
|
151
|
+
if (!this.conversationCollection)
|
|
152
|
+
return;
|
|
153
|
+
this.initialized = true;
|
|
154
|
+
// ── Load conversations ──────────────────────────────────────────────
|
|
155
|
+
let loadedConversations;
|
|
156
|
+
try {
|
|
157
|
+
loadedConversations = await this.conversationCollection.findMany();
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
console.error('[ConversationService] Failed to load from conversations collection:', error);
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
for (const conversation of loadedConversations) {
|
|
164
|
+
this.conversations.set(conversation.id, conversation);
|
|
165
|
+
// Register participants as known members so reachability checks pass
|
|
166
|
+
for (const participantId of conversation.participants) {
|
|
167
|
+
this.knownMembers.add(participantId);
|
|
168
|
+
}
|
|
169
|
+
// Rebuild participant index
|
|
170
|
+
const key = this.participantKey(conversation.participants[0], conversation.participants[1]);
|
|
171
|
+
this.participantIndex.set(key, conversation.id);
|
|
172
|
+
// Reconstruct key epoch state
|
|
173
|
+
const epochState = (0, rehydrationHelpers_1.reconstructKeyEpochState)(conversation.encryptedSharedKey);
|
|
174
|
+
if (epochState) {
|
|
175
|
+
this.keyEpochStates.set(conversation.id, epochState);
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
console.warn(`[ConversationService] Skipping key epoch reconstruction for conversation ${conversation.id}: malformed encryptedSharedKey`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// ── Load messages ───────────────────────────────────────────────────
|
|
182
|
+
let loadedMessages;
|
|
183
|
+
try {
|
|
184
|
+
loadedMessages = await this.messageCollection.findMany();
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
console.error('[ConversationService] Failed to load from messages collection:', error);
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
const grouped = (0, rehydrationHelpers_1.groupAndSortMessages)(loadedMessages);
|
|
191
|
+
for (const [contextId, msgs] of grouped) {
|
|
192
|
+
this.messages.set(contextId, msgs);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ─── Key management helpers ─────────────────────────────────────────────
|
|
196
|
+
generateSymmetricKey() {
|
|
197
|
+
return this.randomBytesProvider(32); // AES-256
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Encrypt a symmetric key for multiple members, returning a Map<memberId, wrappedKey>.
|
|
201
|
+
* Wraps key wrapping failures as KeyUnwrapError with context information.
|
|
202
|
+
*
|
|
203
|
+
* Requirements: 12.3
|
|
204
|
+
*/
|
|
205
|
+
encryptKeyForMembers(memberIds, symmetricKey, contextId, epoch) {
|
|
206
|
+
const encrypted = new Map();
|
|
207
|
+
for (const id of memberIds) {
|
|
208
|
+
try {
|
|
209
|
+
encrypted.set(id, this.encryptKey(id, symmetricKey));
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
if (contextId !== undefined && epoch !== undefined) {
|
|
213
|
+
throw new encryptionErrors_1.KeyUnwrapError(contextId, id, epoch);
|
|
214
|
+
}
|
|
215
|
+
throw error;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return encrypted;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Assert that a key epoch exists in the epoch state for a given context.
|
|
222
|
+
* Throws KeyEpochNotFoundError if the epoch is not found.
|
|
223
|
+
*
|
|
224
|
+
* Requirements: 12.3, 12.4
|
|
225
|
+
*/
|
|
226
|
+
assertEpochExists(contextId, keyEpoch) {
|
|
227
|
+
const state = this.keyEpochStates.get(contextId);
|
|
228
|
+
if (!state || !state.epochKeys.has(keyEpoch)) {
|
|
229
|
+
throw new encryptionErrors_1.KeyEpochNotFoundError(contextId, keyEpoch);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Create initial epoch state (epoch 0) for a new conversation.
|
|
234
|
+
* Uses KeyEpochManager pattern: creates epoch 0 with wrapped keys for all participants.
|
|
235
|
+
*
|
|
236
|
+
* Requirements: 4.1, 4.4
|
|
237
|
+
*/
|
|
238
|
+
createInitialEpochState(symmetricKey, memberIds) {
|
|
239
|
+
const epochKeys = new Map();
|
|
240
|
+
epochKeys.set(0, symmetricKey);
|
|
241
|
+
const wrappedKeys = this.encryptKeyForMembers(memberIds, symmetricKey);
|
|
242
|
+
const encryptedEpochKeys = new Map();
|
|
243
|
+
encryptedEpochKeys.set(0, wrappedKeys);
|
|
244
|
+
return { currentEpoch: 0, epochKeys, encryptedEpochKeys };
|
|
245
|
+
}
|
|
246
|
+
// ─── Member management ──────────────────────────────────────────────────
|
|
81
247
|
/**
|
|
82
248
|
* Register a member as known (exists in the system).
|
|
83
249
|
*/
|
|
@@ -116,8 +282,12 @@ class ConversationService {
|
|
|
116
282
|
participantKey(a, b) {
|
|
117
283
|
return a < b ? `${a}:${b}` : `${b}:${a}`;
|
|
118
284
|
}
|
|
285
|
+
// ─── Conversation lifecycle ─────────────────────────────────────────────
|
|
119
286
|
/**
|
|
120
287
|
* Create a new conversation between two members, or return the existing one.
|
|
288
|
+
* Generates a DM_Key and wraps for both participants using epoch-aware key management.
|
|
289
|
+
*
|
|
290
|
+
* Requirements: 4.1, 4.4, 9.2
|
|
121
291
|
*/
|
|
122
292
|
async createOrGetConversation(memberA, memberB) {
|
|
123
293
|
const key = this.participantKey(memberA, memberB);
|
|
@@ -129,15 +299,25 @@ class ConversationService {
|
|
|
129
299
|
}
|
|
130
300
|
}
|
|
131
301
|
const now = new Date();
|
|
302
|
+
const symmetricKey = this.generateSymmetricKey();
|
|
303
|
+
const participants = [memberA, memberB];
|
|
304
|
+
// Create initial epoch state (epoch 0) with wrapped keys for both participants
|
|
305
|
+
const epochState = this.createInitialEpochState(symmetricKey, participants);
|
|
132
306
|
const conversation = {
|
|
133
307
|
id: (0, uuid_1.v4)(),
|
|
134
|
-
participants
|
|
308
|
+
participants,
|
|
309
|
+
encryptedSharedKey: epochState.encryptedEpochKeys,
|
|
135
310
|
createdAt: now,
|
|
136
311
|
lastMessageAt: now,
|
|
137
312
|
};
|
|
138
313
|
this.conversations.set(conversation.id, conversation);
|
|
139
314
|
this.messages.set(conversation.id, []);
|
|
315
|
+
this.keyEpochStates.set(conversation.id, epochState);
|
|
140
316
|
this.participantIndex.set(key, conversation.id);
|
|
317
|
+
// Persist to storage provider if available
|
|
318
|
+
if (this.conversationCollection) {
|
|
319
|
+
await this.conversationCollection.create(conversation);
|
|
320
|
+
}
|
|
141
321
|
return conversation;
|
|
142
322
|
}
|
|
143
323
|
/**
|
|
@@ -152,7 +332,13 @@ class ConversationService {
|
|
|
152
332
|
}
|
|
153
333
|
/**
|
|
154
334
|
* Get messages in a conversation, in chronological order.
|
|
335
|
+
* Messages are returned with their keyEpoch so clients can decrypt
|
|
336
|
+
* using the appropriate epoch's DM_Key.
|
|
337
|
+
* Validates that each message's keyEpoch exists in the epoch state;
|
|
338
|
+
* throws KeyEpochNotFoundError if a message references a non-existent epoch.
|
|
155
339
|
* Supports cursor-based pagination.
|
|
340
|
+
*
|
|
341
|
+
* Requirements: 4.3, 4.5, 12.3, 12.4
|
|
156
342
|
*/
|
|
157
343
|
async getMessages(conversationId, memberId, cursor, limit = 50) {
|
|
158
344
|
const conversation = this.conversations.get(conversationId);
|
|
@@ -164,19 +350,53 @@ class ConversationService {
|
|
|
164
350
|
throw new NotParticipantError();
|
|
165
351
|
}
|
|
166
352
|
const msgs = this.messages.get(conversationId) ?? [];
|
|
167
|
-
|
|
353
|
+
// Validate that each message's keyEpoch exists in the epoch state
|
|
354
|
+
for (const msg of msgs) {
|
|
355
|
+
this.assertEpochExists(conversationId, msg.keyEpoch);
|
|
356
|
+
}
|
|
357
|
+
const result = (0, pagination_1.paginateItems)(msgs, cursor, limit);
|
|
358
|
+
// Resolve block references (magnet URLs) back to readable content
|
|
359
|
+
if (this.blockContentStore) {
|
|
360
|
+
const resolved = await Promise.all(result.items.map(async (msg) => {
|
|
361
|
+
if (msg.deleted)
|
|
362
|
+
return msg;
|
|
363
|
+
try {
|
|
364
|
+
const contentBytes = await this.blockContentStore.retrieveContent(msg.encryptedContent);
|
|
365
|
+
if (contentBytes) {
|
|
366
|
+
return {
|
|
367
|
+
...msg,
|
|
368
|
+
encryptedContent: new TextDecoder().decode(contentBytes),
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch {
|
|
373
|
+
// Fall back to stored value if retrieval fails
|
|
374
|
+
}
|
|
375
|
+
return msg;
|
|
376
|
+
}));
|
|
377
|
+
return { ...result, items: resolved };
|
|
378
|
+
}
|
|
379
|
+
return result;
|
|
168
380
|
}
|
|
169
381
|
/**
|
|
170
382
|
* Send a message in a conversation.
|
|
171
383
|
* Creates the conversation if it doesn't exist.
|
|
384
|
+
* Encrypts content with the current epoch's DM_Key and records the keyEpoch.
|
|
172
385
|
* Checks recipient reachability and returns a uniform error for
|
|
173
386
|
* non-existent or blocked members.
|
|
387
|
+
* Optionally accepts attachments which are validated against platform limits.
|
|
388
|
+
*
|
|
389
|
+
* Requirements: 4.2, 4.5, 9.2, 11.1, 11.2, 11.4, 11.5
|
|
174
390
|
*/
|
|
175
|
-
async sendMessage(senderId, recipientId, content, conversationId) {
|
|
391
|
+
async sendMessage(senderId, recipientId, content, conversationId, attachments) {
|
|
176
392
|
// Check reachability: uniform error for blocked/non-existent
|
|
177
393
|
if (!this.isReachable(senderId, recipientId)) {
|
|
178
394
|
throw new RecipientNotReachableError();
|
|
179
395
|
}
|
|
396
|
+
// Validate and prepare attachment metadata before creating the message
|
|
397
|
+
const attachmentMetadata = attachments?.length
|
|
398
|
+
? (0, attachmentUtils_1.validateAndPrepareAttachments)(attachments)
|
|
399
|
+
: [];
|
|
180
400
|
let conversation;
|
|
181
401
|
if (conversationId) {
|
|
182
402
|
const existing = this.conversations.get(conversationId);
|
|
@@ -188,18 +408,28 @@ class ConversationService {
|
|
|
188
408
|
else {
|
|
189
409
|
conversation = await this.createOrGetConversation(senderId, recipientId);
|
|
190
410
|
}
|
|
411
|
+
const state = this.keyEpochStates.get(conversation.id);
|
|
412
|
+
const currentEpoch = state?.currentEpoch ?? 0;
|
|
413
|
+
// Store content via block content store if available; otherwise use raw content
|
|
414
|
+
let messageContent = content;
|
|
415
|
+
if (this.blockContentStore) {
|
|
416
|
+
const { blockReference } = await this.blockContentStore.storeContent(content, senderId, [recipientId]);
|
|
417
|
+
messageContent = blockReference;
|
|
418
|
+
}
|
|
191
419
|
const now = new Date();
|
|
192
420
|
const message = {
|
|
193
421
|
id: (0, uuid_1.v4)(),
|
|
194
422
|
contextType: 'conversation',
|
|
195
423
|
contextId: conversation.id,
|
|
196
424
|
senderId,
|
|
197
|
-
encryptedContent:
|
|
425
|
+
encryptedContent: messageContent,
|
|
198
426
|
createdAt: now,
|
|
199
427
|
editHistory: [],
|
|
200
428
|
deleted: false,
|
|
201
429
|
pinned: false,
|
|
202
430
|
reactions: [],
|
|
431
|
+
keyEpoch: currentEpoch,
|
|
432
|
+
attachments: attachmentMetadata,
|
|
203
433
|
};
|
|
204
434
|
const msgs = this.messages.get(conversation.id);
|
|
205
435
|
if (msgs) {
|
|
@@ -207,9 +437,20 @@ class ConversationService {
|
|
|
207
437
|
}
|
|
208
438
|
// Update conversation's lastMessageAt
|
|
209
439
|
conversation.lastMessageAt = now;
|
|
440
|
+
// Persist to storage provider if available
|
|
441
|
+
if (this.messageCollection) {
|
|
442
|
+
await this.messageCollection.create(message);
|
|
443
|
+
}
|
|
444
|
+
if (this.conversationCollection) {
|
|
445
|
+
await this.conversationCollection.update(conversation.id, conversation);
|
|
446
|
+
}
|
|
210
447
|
// Emit message sent event
|
|
211
448
|
this.eventEmitter.emitMessageSent('conversation', conversation.id, message.id, senderId);
|
|
212
|
-
|
|
449
|
+
// Return the message with the original readable content for display,
|
|
450
|
+
// while the stored version retains the block reference (magnet URL)
|
|
451
|
+
return this.blockContentStore
|
|
452
|
+
? { ...message, encryptedContent: content }
|
|
453
|
+
: message;
|
|
213
454
|
}
|
|
214
455
|
/**
|
|
215
456
|
* Delete a message authored by the requesting member.
|
|
@@ -234,6 +475,10 @@ class ConversationService {
|
|
|
234
475
|
}
|
|
235
476
|
message.deleted = true;
|
|
236
477
|
message.deletedBy = memberId;
|
|
478
|
+
// Persist deletion to storage provider if available
|
|
479
|
+
if (this.messageCollection) {
|
|
480
|
+
await this.messageCollection.update(messageId, message);
|
|
481
|
+
}
|
|
237
482
|
// Emit message deleted event
|
|
238
483
|
this.eventEmitter.emitMessageDeleted('conversation', conversationId, messageId, memberId);
|
|
239
484
|
}
|
|
@@ -256,12 +501,29 @@ class ConversationService {
|
|
|
256
501
|
const msgs = this.messages.get(conversationId) ?? [];
|
|
257
502
|
return this.groupPromotionHandler(conversationId, conversation.participants, newMemberIds, msgs, requesterId);
|
|
258
503
|
}
|
|
504
|
+
// ─── Accessors (for testing / internal use) ───────────────────────────
|
|
259
505
|
/**
|
|
260
506
|
* Get a conversation by ID. Returns undefined if not found.
|
|
261
507
|
*/
|
|
262
508
|
getConversation(conversationId) {
|
|
263
509
|
return this.conversations.get(conversationId);
|
|
264
510
|
}
|
|
511
|
+
/**
|
|
512
|
+
* Get the current epoch's raw symmetric key for a conversation.
|
|
513
|
+
* Returns the key for the latest epoch (backward-compatible accessor).
|
|
514
|
+
*/
|
|
515
|
+
getSymmetricKey(conversationId) {
|
|
516
|
+
const state = this.keyEpochStates.get(conversationId);
|
|
517
|
+
if (!state)
|
|
518
|
+
return undefined;
|
|
519
|
+
return state.epochKeys.get(state.currentEpoch);
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Get the full epoch state for a conversation (testing / internal use).
|
|
523
|
+
*/
|
|
524
|
+
getKeyEpochState(conversationId) {
|
|
525
|
+
return this.keyEpochStates.get(conversationId);
|
|
526
|
+
}
|
|
265
527
|
/**
|
|
266
528
|
* Get all messages for a conversation (no pagination). Used internally
|
|
267
529
|
* for promotion and testing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversationService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/conversationService.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+BAAoC;AAOpC,oDAGiC;AACjC,uDAAuD;AAyBvD;;;;GAIG;AACH,MAAa,0BAA2B,SAAQ,KAAK;IACnD;QACE,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AALD,gEAKC;AAED,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YAAY,cAAsB;QAChC,KAAK,CAAC,gBAAgB,cAAc,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AALD,8DAKC;AAED,MAAa,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,SAAiB;QAC3B,KAAK,CAAC,WAAW,SAAS,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,gCAAiC,SAAQ,KAAK;IACzD;QACE,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IACjD,CAAC;CACF;AALD,4EAKC;AAED,MAAa,mBAAmB;IAC9B,qCAAqC;IACpB,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IAElE,iEAAiE;IAChD,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEvE,4DAA4D;IAC3C,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9D,8CAA8C;IAC7B,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAElD,8BAA8B;IACb,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,qBAAqB,GAAiC,IAAI,CAAC;IAClD,uBAAuB,CAAiC;IACxD,YAAY,CAA6B;IAE1D,YACE,0BAA0D,IAAI,EAC9D,eAA2C,IAAI,yBAAgB,EAAE;QAEjE,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,SAAiB,EAAE,SAAiB;QAC9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,OAA8B;QACrD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,WAAW,CAAC,QAAgB,EAAE,WAAmB;QACvD,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,CAAS,EAAE,CAAS;QACzC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAe,EACf,OAAe;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,YAAY,GAAkB;YAClC,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YAChC,SAAS,EAAE,GAAG;YACd,aAAa,EAAE,GAAG;SACnB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QAEhD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,MAAe,EACf,QAAgB,EAAE;QAElB,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;aAChE,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CACxE;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzE,OAAO,IAAA,0BAAa,EAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,cAAsB,EACtB,QAAgB,EAChB,MAAe,EACf,QAAgB,EAAE;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,IACE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ;YACzC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACzC,CAAC;YACD,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAErD,OAAO,IAAA,0BAAa,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,WAAmB,EACnB,OAAe,EACf,cAAuB;QAEvB,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,0BAA0B,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,YAA2B,CAAC;QAChC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;YACtD,CAAC;YACD,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAA0B;YACrC,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,WAAW,EAAE,cAAc;YAC3B,SAAS,EAAE,YAAY,CAAC,EAAE;YAC1B,QAAQ;YACR,gBAAgB,EAAE,OAAO;YACzB,SAAS,EAAE,GAAG;YACd,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;QAED,sCAAsC;QACtC,YAAY,CAAC,aAAa,GAAG,GAAG,CAAC;QAEjC,0BAA0B;QAC1B,IAAI,CAAC,YAAY,CAAC,eAAe,CAC/B,cAAc,EACd,YAAY,CAAC,EAAE,EACf,OAAO,CAAC,EAAE,EACV,QAAQ,CACT,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,cAAsB,EACtB,SAAiB,EACjB,QAAgB;QAEhB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,IACE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ;YACzC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EACzC,CAAC;YACD,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE7B,6BAA6B;QAC7B,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAClC,cAAc,EACd,cAAc,EACd,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,cAAsB,EACtB,YAAsB,EACtB,WAAmB;QAEnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,gCAAgC,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,IACE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW;YAC5C,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,WAAW,EAC5C,CAAC;YACD,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,EACd,YAAY,CAAC,YAAY,EACzB,YAAY,EACZ,IAAI,EACJ,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,cAAsB;QACpC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,cAAsB;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,6BAA6B,CAAC,QAAgB;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,CACxE,CAAC;IACJ,CAAC;CACF;AAvTD,kDAuTC"}
|
|
1
|
+
{"version":3,"file":"conversationService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/conversationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ECIES Key Encryption Handler Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides async key encryption/decryption handler types and a factory
|
|
5
|
+
* function that creates ECIES-backed key encryption handlers. These replace
|
|
6
|
+
* the placeholder base64 encoding used by ChannelService and GroupService.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 8.1, 8.2, 8.3, 8.5, 12.1, 12.2
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Async key encryption handler type — replaces the sync placeholder.
|
|
12
|
+
* Returns encrypted key as Uint8Array (not string) for proper binary handling.
|
|
13
|
+
*/
|
|
14
|
+
export type AsyncKeyEncryptionHandler = (memberId: string, symmetricKey: Uint8Array) => Promise<Uint8Array>;
|
|
15
|
+
/**
|
|
16
|
+
* Async key decryption handler type — unwraps a wrapped key using a member's private key.
|
|
17
|
+
*/
|
|
18
|
+
export type AsyncKeyDecryptionHandler = (memberId: string, wrappedKey: Uint8Array) => Promise<Uint8Array>;
|
|
19
|
+
/**
|
|
20
|
+
* Dependencies for creating the ECIES key encryption handler.
|
|
21
|
+
*/
|
|
22
|
+
export interface IEciesHandlerDeps {
|
|
23
|
+
eciesService: {
|
|
24
|
+
encryptBasic: (publicKey: Uint8Array, plaintext: Uint8Array) => Promise<Uint8Array>;
|
|
25
|
+
};
|
|
26
|
+
getMemberPublicKey: (memberId: string) => Promise<Uint8Array | null | undefined>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates an async ECIES-backed key encryption handler.
|
|
30
|
+
* Looks up the member's public key, then encrypts the symmetric key under it.
|
|
31
|
+
*
|
|
32
|
+
* @throws {MissingPublicKeyError} when getMemberPublicKey returns null/undefined
|
|
33
|
+
* @see Requirements 8.1, 8.2, 8.3, 8.5, 12.1, 12.2
|
|
34
|
+
*/
|
|
35
|
+
export declare function createEciesKeyEncryptionHandler(deps: IEciesHandlerDeps): AsyncKeyEncryptionHandler;
|
|
36
|
+
//# sourceMappingURL=eciesKeyEncryptionHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesKeyEncryptionHandler.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/eciesKeyEncryptionHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,UAAU,KACrB,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE;QACZ,YAAY,EAAE,CACZ,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,KAClB,OAAO,CAAC,UAAU,CAAC,CAAC;KAC1B,CAAC;IACF,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,iBAAiB,GACtB,yBAAyB,CAW3B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview ECIES Key Encryption Handler Factory
|
|
4
|
+
*
|
|
5
|
+
* Provides async key encryption/decryption handler types and a factory
|
|
6
|
+
* function that creates ECIES-backed key encryption handlers. These replace
|
|
7
|
+
* the placeholder base64 encoding used by ChannelService and GroupService.
|
|
8
|
+
*
|
|
9
|
+
* @see Requirements 8.1, 8.2, 8.3, 8.5, 12.1, 12.2
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createEciesKeyEncryptionHandler = createEciesKeyEncryptionHandler;
|
|
13
|
+
const encryptionErrors_1 = require("../../errors/encryptionErrors");
|
|
14
|
+
/**
|
|
15
|
+
* Creates an async ECIES-backed key encryption handler.
|
|
16
|
+
* Looks up the member's public key, then encrypts the symmetric key under it.
|
|
17
|
+
*
|
|
18
|
+
* @throws {MissingPublicKeyError} when getMemberPublicKey returns null/undefined
|
|
19
|
+
* @see Requirements 8.1, 8.2, 8.3, 8.5, 12.1, 12.2
|
|
20
|
+
*/
|
|
21
|
+
function createEciesKeyEncryptionHandler(deps) {
|
|
22
|
+
return async (memberId, symmetricKey) => {
|
|
23
|
+
const publicKey = await deps.getMemberPublicKey(memberId);
|
|
24
|
+
if (publicKey == null) {
|
|
25
|
+
throw new encryptionErrors_1.MissingPublicKeyError(memberId);
|
|
26
|
+
}
|
|
27
|
+
return deps.eciesService.encryptBasic(publicKey, symmetricKey);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=eciesKeyEncryptionHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eciesKeyEncryptionHandler.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/eciesKeyEncryptionHandler.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AA2CH,0EAaC;AAtDD,oEAAsE;AAkCtE;;;;;;GAMG;AACH,SAAgB,+BAA+B,CAC7C,IAAuB;IAEvB,OAAO,KAAK,EACV,QAAgB,EAChB,YAAwB,EACH,EAAE;QACvB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,wCAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"}
|