@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailMessageService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emailMessageService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import type { IGpgEncryptionResult, IGpgKeyMetadata, IGpgKeyPair, IGpgSignatureResult, IGpgVerificationResult } from '../../interfaces/messaging/gpgKey';
|
|
2
|
+
/**
|
|
3
|
+
* Manages GPG (OpenPGP) key lifecycle: generation, import, export, and validation.
|
|
4
|
+
*
|
|
5
|
+
* Wraps OpenPGP.js v6 to provide a simplified interface for key operations
|
|
6
|
+
* used by the BrightMail messaging system.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 1.1, 1.4, 2.1, 2.2, 2.4, 2.6
|
|
9
|
+
*/
|
|
10
|
+
export declare class GpgKeyManager {
|
|
11
|
+
private _openpgp;
|
|
12
|
+
private openpgp;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a new OpenPGP keypair.
|
|
15
|
+
*
|
|
16
|
+
* @param name - Display name for the key's user ID
|
|
17
|
+
* @param email - Email address for the key's user ID
|
|
18
|
+
* @param passphrase - Passphrase to protect the private key
|
|
19
|
+
* @returns The generated keypair with metadata
|
|
20
|
+
* @throws EmailError with GPG_KEYGEN_FAILED on generation failure
|
|
21
|
+
*
|
|
22
|
+
* @see Requirement 1.1 — GPG keypair generation
|
|
23
|
+
*/
|
|
24
|
+
generateKeyPair(name: string, email: string, passphrase: string): Promise<IGpgKeyPair>;
|
|
25
|
+
/**
|
|
26
|
+
* Import an ASCII-armored public key, validate structure, and extract metadata.
|
|
27
|
+
*
|
|
28
|
+
* @param armoredKey - ASCII-armored PGP public key block
|
|
29
|
+
* @returns Metadata extracted from the imported key
|
|
30
|
+
* @throws EmailError with GPG_INVALID_KEY if the key is malformed
|
|
31
|
+
*
|
|
32
|
+
* @see Requirement 2.2 — Import and validate ASCII-armored PGP public key
|
|
33
|
+
*/
|
|
34
|
+
importPublicKey(armoredKey: string): Promise<IGpgKeyMetadata>;
|
|
35
|
+
/**
|
|
36
|
+
* Export a public key as ASCII armor, validating it first.
|
|
37
|
+
*
|
|
38
|
+
* @param publicKeyArmored - ASCII-armored PGP public key to export
|
|
39
|
+
* @returns The validated ASCII-armored public key string
|
|
40
|
+
* @throws EmailError with GPG_INVALID_KEY if the key is malformed
|
|
41
|
+
*
|
|
42
|
+
* @see Requirement 2.6 — Export GPG public key in ASCII armor format
|
|
43
|
+
*/
|
|
44
|
+
exportPublicKey(publicKeyArmored: string): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Validate that a string is a well-formed ASCII-armored PGP public key.
|
|
47
|
+
*
|
|
48
|
+
* @param armoredKey - The string to validate
|
|
49
|
+
* @returns true if the string is a valid ASCII-armored PGP public key
|
|
50
|
+
*
|
|
51
|
+
* @see Requirement 2.4 — Reject malformed or empty key imports
|
|
52
|
+
*/
|
|
53
|
+
validatePublicKey(armoredKey: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Encrypt content for one or more recipients using their GPG public keys.
|
|
56
|
+
*
|
|
57
|
+
* @param content - The binary content to encrypt
|
|
58
|
+
* @param recipientPublicKeysArmored - Array of ASCII-armored PGP public keys for each recipient
|
|
59
|
+
* @returns The encrypted message in ASCII-armored OpenPGP format
|
|
60
|
+
* @throws EmailError with GPG_ENCRYPT_FAILED on encryption failure
|
|
61
|
+
*
|
|
62
|
+
* @see Requirements 3.1, 3.4 — GPG encryption per OpenPGP standard (RFC 4880)
|
|
63
|
+
*/
|
|
64
|
+
encrypt(content: Uint8Array, recipientPublicKeysArmored: string[]): Promise<IGpgEncryptionResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Decrypt an OpenPGP encrypted message using a private key.
|
|
67
|
+
*
|
|
68
|
+
* @param encryptedMessage - The ASCII-armored OpenPGP encrypted message
|
|
69
|
+
* @param privateKeyArmored - The ASCII-armored PGP private key
|
|
70
|
+
* @param passphrase - The passphrase to unlock the private key
|
|
71
|
+
* @returns The decrypted content as a Uint8Array
|
|
72
|
+
* @throws EmailError with GPG_DECRYPT_FAILED on decryption failure
|
|
73
|
+
*
|
|
74
|
+
* @see Requirements 5.1, 5.5 — GPG decryption with private key
|
|
75
|
+
*/
|
|
76
|
+
decrypt(encryptedMessage: string, privateKeyArmored: string, passphrase: string): Promise<Uint8Array>;
|
|
77
|
+
/**
|
|
78
|
+
* Create a detached OpenPGP signature over the given content.
|
|
79
|
+
*
|
|
80
|
+
* @param content - The binary content to sign
|
|
81
|
+
* @param privateKeyArmored - ASCII-armored PGP private key
|
|
82
|
+
* @param passphrase - Passphrase to unlock the private key
|
|
83
|
+
* @returns The detached signature and signer key ID
|
|
84
|
+
* @throws EmailError with GPG_VERIFY_FAILED on signing failure
|
|
85
|
+
*
|
|
86
|
+
* @see Requirements 4.1, 4.2 — Detached OpenPGP signature production
|
|
87
|
+
*/
|
|
88
|
+
sign(content: Uint8Array, privateKeyArmored: string, passphrase: string): Promise<IGpgSignatureResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Verify a detached OpenPGP signature against the given content.
|
|
91
|
+
*
|
|
92
|
+
* @param content - The binary content that was signed
|
|
93
|
+
* @param signature - The detached ASCII-armored OpenPGP signature
|
|
94
|
+
* @param signerPublicKeyArmored - ASCII-armored PGP public key of the expected signer
|
|
95
|
+
* @returns Verification result with valid status, signerKeyId, and reason
|
|
96
|
+
* @throws EmailError with GPG_VERIFY_FAILED on verification errors
|
|
97
|
+
*
|
|
98
|
+
* @see Requirements 5.2, 5.3, 5.4 — GPG signature verification
|
|
99
|
+
*/
|
|
100
|
+
verify(content: Uint8Array, signature: string, signerPublicKeyArmored: string): Promise<IGpgVerificationResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Publish a GPG public key to an HKP keyserver.
|
|
103
|
+
*
|
|
104
|
+
* @param publicKeyArmored - ASCII-armored PGP public key to publish
|
|
105
|
+
* @param keyserverUrl - Base URL of the HKP keyserver (e.g. "https://keys.openpgp.org")
|
|
106
|
+
* @throws EmailError with GPG_KEYSERVER_ERROR on network or server failures
|
|
107
|
+
*
|
|
108
|
+
* @see Requirements 2.1 — Publish GPG public key to keyserver
|
|
109
|
+
*/
|
|
110
|
+
publishToKeyserver(publicKeyArmored: string, keyserverUrl: string): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Search an HKP keyserver for GPG public keys matching an email address.
|
|
113
|
+
*
|
|
114
|
+
* @param email - Email address to search for
|
|
115
|
+
* @param keyserverUrl - Base URL of the HKP keyserver (e.g. "https://keys.openpgp.org")
|
|
116
|
+
* @returns Array of ASCII-armored PGP public key blocks found
|
|
117
|
+
* @throws EmailError with GPG_KEYSERVER_ERROR on network or server failures
|
|
118
|
+
*
|
|
119
|
+
* @see Requirements 2.3 — Search keyserver for public keys by email
|
|
120
|
+
*/
|
|
121
|
+
searchKeyserver(email: string, keyserverUrl: string): Promise<string[]>;
|
|
122
|
+
/**
|
|
123
|
+
* Extract metadata from an OpenPGP key object.
|
|
124
|
+
*
|
|
125
|
+
* @param key - The parsed OpenPGP key
|
|
126
|
+
* @returns Metadata including keyId, fingerprint, dates, userId, and algorithm
|
|
127
|
+
*/
|
|
128
|
+
private extractMetadata;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=gpgKeyManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpgKeyManager.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/gpgKeyManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;GAOG;AACH,qBAAa,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAM;YAER,OAAO;IAMrB;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAiCvB;;;;;;;;OAQG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAenE;;;;;;;;OAQG;IACG,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBhE;;;;;;;OAOG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAoB9C;;;;;;;;;OASG;IACG,OAAO,CACX,OAAO,EAAE,UAAU,EACnB,0BAA0B,EAAE,MAAM,EAAE,GACnC,OAAO,CAAC,oBAAoB,CAAC;IA6BhC;;;;;;;;;;OAUG;IACG,OAAO,CACX,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC;IAuCtB;;;;;;;;;;OAUG;IACG,IAAI,CACR,OAAO,EAAE,UAAU,EACnB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC;IA2C/B;;;;;;;;;;OAUG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAqDlC;;;;;;;;OAQG;IACG,kBAAkB,CACtB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IA2BhB;;;;;;;;;OASG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC;IAsCpB;;;;;OAKG;YAEW,eAAe;CA2B9B"}
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GpgKeyManager = void 0;
|
|
4
|
+
// openpgp is loaded dynamically in each method to avoid pulling in
|
|
5
|
+
// the CJS bundle at import time, which fails in jsdom test environments.
|
|
6
|
+
const emailErrorType_1 = require("../../enumerations/messaging/emailErrorType");
|
|
7
|
+
const emailError_1 = require("../../errors/messaging/emailError");
|
|
8
|
+
/**
|
|
9
|
+
* Manages GPG (OpenPGP) key lifecycle: generation, import, export, and validation.
|
|
10
|
+
*
|
|
11
|
+
* Wraps OpenPGP.js v6 to provide a simplified interface for key operations
|
|
12
|
+
* used by the BrightMail messaging system.
|
|
13
|
+
*
|
|
14
|
+
* @see Requirements 1.1, 1.4, 2.1, 2.2, 2.4, 2.6
|
|
15
|
+
*/
|
|
16
|
+
class GpgKeyManager {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
_openpgp;
|
|
19
|
+
async openpgp() {
|
|
20
|
+
if (!this._openpgp) {
|
|
21
|
+
this._openpgp = await import('openpgp');
|
|
22
|
+
}
|
|
23
|
+
return this._openpgp;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Generate a new OpenPGP keypair.
|
|
27
|
+
*
|
|
28
|
+
* @param name - Display name for the key's user ID
|
|
29
|
+
* @param email - Email address for the key's user ID
|
|
30
|
+
* @param passphrase - Passphrase to protect the private key
|
|
31
|
+
* @returns The generated keypair with metadata
|
|
32
|
+
* @throws EmailError with GPG_KEYGEN_FAILED on generation failure
|
|
33
|
+
*
|
|
34
|
+
* @see Requirement 1.1 — GPG keypair generation
|
|
35
|
+
*/
|
|
36
|
+
async generateKeyPair(name, email, passphrase) {
|
|
37
|
+
try {
|
|
38
|
+
const { privateKey, publicKey } = await (await this.openpgp()).generateKey({
|
|
39
|
+
type: 'curve25519',
|
|
40
|
+
userIDs: [{ name, email }],
|
|
41
|
+
passphrase,
|
|
42
|
+
format: 'armored',
|
|
43
|
+
});
|
|
44
|
+
const publicKeyObj = await (await this.openpgp()).readKey({ armoredKey: publicKey });
|
|
45
|
+
const metadata = await this.extractMetadata(publicKeyObj);
|
|
46
|
+
return {
|
|
47
|
+
publicKeyArmored: publicKey,
|
|
48
|
+
privateKeyArmored: privateKey,
|
|
49
|
+
metadata,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (error instanceof emailError_1.EmailError) {
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_KEYGEN_FAILED, `GPG key generation failed: ${error instanceof Error ? error.message : String(error)}`, { name, email });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Import an ASCII-armored public key, validate structure, and extract metadata.
|
|
61
|
+
*
|
|
62
|
+
* @param armoredKey - ASCII-armored PGP public key block
|
|
63
|
+
* @returns Metadata extracted from the imported key
|
|
64
|
+
* @throws EmailError with GPG_INVALID_KEY if the key is malformed
|
|
65
|
+
*
|
|
66
|
+
* @see Requirement 2.2 — Import and validate ASCII-armored PGP public key
|
|
67
|
+
*/
|
|
68
|
+
async importPublicKey(armoredKey) {
|
|
69
|
+
try {
|
|
70
|
+
const key = await (await this.openpgp()).readKey({ armoredKey });
|
|
71
|
+
return this.extractMetadata(key);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error instanceof emailError_1.EmailError) {
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_INVALID_KEY, `Failed to import GPG public key: ${error instanceof Error ? error.message : String(error)}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Export a public key as ASCII armor, validating it first.
|
|
82
|
+
*
|
|
83
|
+
* @param publicKeyArmored - ASCII-armored PGP public key to export
|
|
84
|
+
* @returns The validated ASCII-armored public key string
|
|
85
|
+
* @throws EmailError with GPG_INVALID_KEY if the key is malformed
|
|
86
|
+
*
|
|
87
|
+
* @see Requirement 2.6 — Export GPG public key in ASCII armor format
|
|
88
|
+
*/
|
|
89
|
+
async exportPublicKey(publicKeyArmored) {
|
|
90
|
+
try {
|
|
91
|
+
const key = await (await this.openpgp()).readKey({ armoredKey: publicKeyArmored });
|
|
92
|
+
return key.armor();
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
if (error instanceof emailError_1.EmailError) {
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_INVALID_KEY, `Failed to export GPG public key: ${error instanceof Error ? error.message : String(error)}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Validate that a string is a well-formed ASCII-armored PGP public key.
|
|
103
|
+
*
|
|
104
|
+
* @param armoredKey - The string to validate
|
|
105
|
+
* @returns true if the string is a valid ASCII-armored PGP public key
|
|
106
|
+
*
|
|
107
|
+
* @see Requirement 2.4 — Reject malformed or empty key imports
|
|
108
|
+
*/
|
|
109
|
+
validatePublicKey(armoredKey) {
|
|
110
|
+
try {
|
|
111
|
+
// openpgp.readKey is async, but for a synchronous check we can
|
|
112
|
+
// do a basic structural validation. For full validation, use importPublicKey.
|
|
113
|
+
if (!armoredKey || typeof armoredKey !== 'string') {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
const trimmed = armoredKey.trim();
|
|
117
|
+
if (!trimmed.includes('-----BEGIN PGP PUBLIC KEY BLOCK-----') ||
|
|
118
|
+
!trimmed.includes('-----END PGP PUBLIC KEY BLOCK-----')) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Encrypt content for one or more recipients using their GPG public keys.
|
|
129
|
+
*
|
|
130
|
+
* @param content - The binary content to encrypt
|
|
131
|
+
* @param recipientPublicKeysArmored - Array of ASCII-armored PGP public keys for each recipient
|
|
132
|
+
* @returns The encrypted message in ASCII-armored OpenPGP format
|
|
133
|
+
* @throws EmailError with GPG_ENCRYPT_FAILED on encryption failure
|
|
134
|
+
*
|
|
135
|
+
* @see Requirements 3.1, 3.4 — GPG encryption per OpenPGP standard (RFC 4880)
|
|
136
|
+
*/
|
|
137
|
+
async encrypt(content, recipientPublicKeysArmored) {
|
|
138
|
+
try {
|
|
139
|
+
const pgp = await this.openpgp();
|
|
140
|
+
const encryptionKeys = await Promise.all(recipientPublicKeysArmored.map((armoredKey) => pgp.readKey({ armoredKey })));
|
|
141
|
+
const message = await pgp.createMessage({ binary: content });
|
|
142
|
+
const encryptedMessage = await pgp.encrypt({
|
|
143
|
+
message,
|
|
144
|
+
encryptionKeys,
|
|
145
|
+
format: 'armored',
|
|
146
|
+
});
|
|
147
|
+
return { encryptedMessage: encryptedMessage };
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
if (error instanceof emailError_1.EmailError) {
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_ENCRYPT_FAILED, `GPG encryption failed: ${error instanceof Error ? error.message : String(error)}`, { recipientCount: recipientPublicKeysArmored.length });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Decrypt an OpenPGP encrypted message using a private key.
|
|
158
|
+
*
|
|
159
|
+
* @param encryptedMessage - The ASCII-armored OpenPGP encrypted message
|
|
160
|
+
* @param privateKeyArmored - The ASCII-armored PGP private key
|
|
161
|
+
* @param passphrase - The passphrase to unlock the private key
|
|
162
|
+
* @returns The decrypted content as a Uint8Array
|
|
163
|
+
* @throws EmailError with GPG_DECRYPT_FAILED on decryption failure
|
|
164
|
+
*
|
|
165
|
+
* @see Requirements 5.1, 5.5 — GPG decryption with private key
|
|
166
|
+
*/
|
|
167
|
+
async decrypt(encryptedMessage, privateKeyArmored, passphrase) {
|
|
168
|
+
try {
|
|
169
|
+
const privateKey = await (await this.openpgp()).readPrivateKey({
|
|
170
|
+
armoredKey: privateKeyArmored,
|
|
171
|
+
});
|
|
172
|
+
const decryptedPrivateKey = await (await this.openpgp()).decryptKey({
|
|
173
|
+
privateKey,
|
|
174
|
+
passphrase,
|
|
175
|
+
});
|
|
176
|
+
const message = await (await this.openpgp()).readMessage({
|
|
177
|
+
armoredMessage: encryptedMessage,
|
|
178
|
+
});
|
|
179
|
+
const { data } = await (await this.openpgp()).decrypt({
|
|
180
|
+
message,
|
|
181
|
+
decryptionKeys: decryptedPrivateKey,
|
|
182
|
+
format: 'binary',
|
|
183
|
+
});
|
|
184
|
+
return data;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
if (error instanceof emailError_1.EmailError) {
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_DECRYPT_FAILED, `GPG decryption failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Create a detached OpenPGP signature over the given content.
|
|
195
|
+
*
|
|
196
|
+
* @param content - The binary content to sign
|
|
197
|
+
* @param privateKeyArmored - ASCII-armored PGP private key
|
|
198
|
+
* @param passphrase - Passphrase to unlock the private key
|
|
199
|
+
* @returns The detached signature and signer key ID
|
|
200
|
+
* @throws EmailError with GPG_VERIFY_FAILED on signing failure
|
|
201
|
+
*
|
|
202
|
+
* @see Requirements 4.1, 4.2 — Detached OpenPGP signature production
|
|
203
|
+
*/
|
|
204
|
+
async sign(content, privateKeyArmored, passphrase) {
|
|
205
|
+
try {
|
|
206
|
+
const privateKey = await (await this.openpgp()).readPrivateKey({
|
|
207
|
+
armoredKey: privateKeyArmored,
|
|
208
|
+
});
|
|
209
|
+
const decryptedKey = await (await this.openpgp()).decryptKey({
|
|
210
|
+
privateKey,
|
|
211
|
+
passphrase,
|
|
212
|
+
});
|
|
213
|
+
const message = await (await this.openpgp()).createMessage({ binary: content });
|
|
214
|
+
const signature = await (await this.openpgp()).sign({
|
|
215
|
+
message,
|
|
216
|
+
signingKeys: decryptedKey,
|
|
217
|
+
detached: true,
|
|
218
|
+
format: 'armored',
|
|
219
|
+
});
|
|
220
|
+
const signerKeyId = decryptedKey.getKeyID().toHex();
|
|
221
|
+
return {
|
|
222
|
+
signature: signature,
|
|
223
|
+
signerKeyId,
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
if (error instanceof emailError_1.EmailError) {
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_VERIFY_FAILED, `GPG signing failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Verify a detached OpenPGP signature against the given content.
|
|
235
|
+
*
|
|
236
|
+
* @param content - The binary content that was signed
|
|
237
|
+
* @param signature - The detached ASCII-armored OpenPGP signature
|
|
238
|
+
* @param signerPublicKeyArmored - ASCII-armored PGP public key of the expected signer
|
|
239
|
+
* @returns Verification result with valid status, signerKeyId, and reason
|
|
240
|
+
* @throws EmailError with GPG_VERIFY_FAILED on verification errors
|
|
241
|
+
*
|
|
242
|
+
* @see Requirements 5.2, 5.3, 5.4 — GPG signature verification
|
|
243
|
+
*/
|
|
244
|
+
async verify(content, signature, signerPublicKeyArmored) {
|
|
245
|
+
try {
|
|
246
|
+
const publicKey = await (await this.openpgp()).readKey({
|
|
247
|
+
armoredKey: signerPublicKeyArmored,
|
|
248
|
+
});
|
|
249
|
+
const message = await (await this.openpgp()).createMessage({ binary: content });
|
|
250
|
+
const sig = await (await this.openpgp()).readSignature({
|
|
251
|
+
armoredSignature: signature,
|
|
252
|
+
});
|
|
253
|
+
const verificationResult = await (await this.openpgp()).verify({
|
|
254
|
+
message,
|
|
255
|
+
signature: sig,
|
|
256
|
+
verificationKeys: publicKey,
|
|
257
|
+
});
|
|
258
|
+
const signerKeyId = publicKey.getKeyID().toHex();
|
|
259
|
+
try {
|
|
260
|
+
await verificationResult.signatures[0].verified;
|
|
261
|
+
return {
|
|
262
|
+
valid: true,
|
|
263
|
+
signerKeyId,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
catch (verifyError) {
|
|
267
|
+
return {
|
|
268
|
+
valid: false,
|
|
269
|
+
signerKeyId,
|
|
270
|
+
reason: verifyError instanceof Error
|
|
271
|
+
? verifyError.message
|
|
272
|
+
: String(verifyError),
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
if (error instanceof emailError_1.EmailError) {
|
|
278
|
+
throw error;
|
|
279
|
+
}
|
|
280
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_VERIFY_FAILED, `GPG verification failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Publish a GPG public key to an HKP keyserver.
|
|
285
|
+
*
|
|
286
|
+
* @param publicKeyArmored - ASCII-armored PGP public key to publish
|
|
287
|
+
* @param keyserverUrl - Base URL of the HKP keyserver (e.g. "https://keys.openpgp.org")
|
|
288
|
+
* @throws EmailError with GPG_KEYSERVER_ERROR on network or server failures
|
|
289
|
+
*
|
|
290
|
+
* @see Requirements 2.1 — Publish GPG public key to keyserver
|
|
291
|
+
*/
|
|
292
|
+
async publishToKeyserver(publicKeyArmored, keyserverUrl) {
|
|
293
|
+
try {
|
|
294
|
+
const response = await fetch(`${keyserverUrl}/pks/add`, {
|
|
295
|
+
method: 'POST',
|
|
296
|
+
headers: {
|
|
297
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
298
|
+
},
|
|
299
|
+
body: `keytext=${encodeURIComponent(publicKeyArmored)}`,
|
|
300
|
+
});
|
|
301
|
+
if (!response.ok) {
|
|
302
|
+
throw new Error(`Keyserver returned HTTP ${response.status}: ${response.statusText}`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
if (error instanceof emailError_1.EmailError) {
|
|
307
|
+
throw error;
|
|
308
|
+
}
|
|
309
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_KEYSERVER_ERROR, `Failed to publish key to keyserver: ${error instanceof Error ? error.message : String(error)}`, { keyserverUrl });
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Search an HKP keyserver for GPG public keys matching an email address.
|
|
314
|
+
*
|
|
315
|
+
* @param email - Email address to search for
|
|
316
|
+
* @param keyserverUrl - Base URL of the HKP keyserver (e.g. "https://keys.openpgp.org")
|
|
317
|
+
* @returns Array of ASCII-armored PGP public key blocks found
|
|
318
|
+
* @throws EmailError with GPG_KEYSERVER_ERROR on network or server failures
|
|
319
|
+
*
|
|
320
|
+
* @see Requirements 2.3 — Search keyserver for public keys by email
|
|
321
|
+
*/
|
|
322
|
+
async searchKeyserver(email, keyserverUrl) {
|
|
323
|
+
try {
|
|
324
|
+
const url = `${keyserverUrl}/pks/lookup?op=get&search=${encodeURIComponent(email)}&options=mr`;
|
|
325
|
+
const response = await fetch(url);
|
|
326
|
+
if (response.status === 404) {
|
|
327
|
+
return [];
|
|
328
|
+
}
|
|
329
|
+
if (!response.ok) {
|
|
330
|
+
throw new Error(`Keyserver returned HTTP ${response.status}: ${response.statusText}`);
|
|
331
|
+
}
|
|
332
|
+
const body = await response.text();
|
|
333
|
+
const keyBlocks = [];
|
|
334
|
+
const regex = /-----BEGIN PGP PUBLIC KEY BLOCK-----[\s\S]*?-----END PGP PUBLIC KEY BLOCK-----/g;
|
|
335
|
+
let match;
|
|
336
|
+
while ((match = regex.exec(body)) !== null) {
|
|
337
|
+
keyBlocks.push(match[0]);
|
|
338
|
+
}
|
|
339
|
+
return keyBlocks;
|
|
340
|
+
}
|
|
341
|
+
catch (error) {
|
|
342
|
+
if (error instanceof emailError_1.EmailError) {
|
|
343
|
+
throw error;
|
|
344
|
+
}
|
|
345
|
+
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_KEYSERVER_ERROR, `Failed to search keyserver: ${error instanceof Error ? error.message : String(error)}`, { email, keyserverUrl });
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Extract metadata from an OpenPGP key object.
|
|
350
|
+
*
|
|
351
|
+
* @param key - The parsed OpenPGP key
|
|
352
|
+
* @returns Metadata including keyId, fingerprint, dates, userId, and algorithm
|
|
353
|
+
*/
|
|
354
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
355
|
+
async extractMetadata(key) {
|
|
356
|
+
const keyId = key.getKeyID().toHex();
|
|
357
|
+
const fingerprint = key.getFingerprint();
|
|
358
|
+
const createdAt = key.getCreationTime();
|
|
359
|
+
const expirationTime = await key.getExpirationTime();
|
|
360
|
+
const userIds = key.getUserIDs();
|
|
361
|
+
const algorithmInfo = key.getAlgorithmInfo();
|
|
362
|
+
let expiresAt = null;
|
|
363
|
+
if (expirationTime instanceof Date) {
|
|
364
|
+
expiresAt = expirationTime;
|
|
365
|
+
}
|
|
366
|
+
// If expirationTime is Infinity or null, expiresAt stays null (no expiration)
|
|
367
|
+
const algorithm = algorithmInfo.curve
|
|
368
|
+
? String(algorithmInfo.curve)
|
|
369
|
+
: `${String(algorithmInfo.algorithm)}${algorithmInfo.bits ? algorithmInfo.bits : ''}`;
|
|
370
|
+
return {
|
|
371
|
+
keyId,
|
|
372
|
+
fingerprint,
|
|
373
|
+
createdAt,
|
|
374
|
+
expiresAt,
|
|
375
|
+
userId: userIds[0] ?? '',
|
|
376
|
+
algorithm,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
exports.GpgKeyManager = GpgKeyManager;
|
|
381
|
+
//# sourceMappingURL=gpgKeyManager.js.map
|