@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.
Files changed (290) hide show
  1. package/package.json +10 -4
  2. package/src/index.d.ts +1 -1
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +2 -1
  5. package/src/index.js.map +1 -1
  6. package/src/lib/constants.d.ts +3 -26
  7. package/src/lib/constants.d.ts.map +1 -1
  8. package/src/lib/constants.js +2 -1
  9. package/src/lib/constants.js.map +1 -1
  10. package/src/lib/db/collection.d.ts +1 -1
  11. package/src/lib/db/collection.d.ts.map +1 -1
  12. package/src/lib/db/collection.js +2 -1
  13. package/src/lib/db/collection.js.map +1 -1
  14. package/src/lib/enumeration-translations/index.d.ts +2 -0
  15. package/src/lib/enumeration-translations/index.d.ts.map +1 -1
  16. package/src/lib/enumeration-translations/index.js +1 -0
  17. package/src/lib/enumeration-translations/index.js.map +1 -1
  18. package/src/lib/enumeration-translations/memberStatusType.d.ts +5 -0
  19. package/src/lib/enumeration-translations/memberStatusType.d.ts.map +1 -0
  20. package/src/lib/enumeration-translations/memberStatusType.js +58 -0
  21. package/src/lib/enumeration-translations/memberStatusType.js.map +1 -0
  22. package/src/lib/enumerations/brightChainStrings.d.ts +61 -0
  23. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  24. package/src/lib/enumerations/brightChainStrings.js +64 -0
  25. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  26. package/src/lib/enumerations/brightchainFeatures.d.ts +1 -0
  27. package/src/lib/enumerations/brightchainFeatures.d.ts.map +1 -1
  28. package/src/lib/enumerations/brightchainFeatures.js +1 -0
  29. package/src/lib/enumerations/brightchainFeatures.js.map +1 -1
  30. package/src/lib/enumerations/communication.d.ts +7 -1
  31. package/src/lib/enumerations/communication.d.ts.map +1 -1
  32. package/src/lib/enumerations/communication.js +6 -0
  33. package/src/lib/enumerations/communication.js.map +1 -1
  34. package/src/lib/enumerations/friendRequestStatus.d.ts +7 -0
  35. package/src/lib/enumerations/friendRequestStatus.d.ts.map +1 -0
  36. package/src/lib/enumerations/friendRequestStatus.js +11 -0
  37. package/src/lib/enumerations/friendRequestStatus.js.map +1 -0
  38. package/src/lib/enumerations/friendsErrorCode.d.ts +10 -0
  39. package/src/lib/enumerations/friendsErrorCode.d.ts.map +1 -0
  40. package/src/lib/enumerations/friendsErrorCode.js +14 -0
  41. package/src/lib/enumerations/friendsErrorCode.js.map +1 -0
  42. package/src/lib/enumerations/friendshipStatus.d.ts +7 -0
  43. package/src/lib/enumerations/friendshipStatus.d.ts.map +1 -0
  44. package/src/lib/enumerations/friendshipStatus.js +11 -0
  45. package/src/lib/enumerations/friendshipStatus.js.map +1 -0
  46. package/src/lib/enumerations/index.d.ts +3 -0
  47. package/src/lib/enumerations/index.d.ts.map +1 -1
  48. package/src/lib/enumerations/index.js +4 -0
  49. package/src/lib/enumerations/index.js.map +1 -1
  50. package/src/lib/enumerations/messaging/emailErrorType.d.ts +15 -2
  51. package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -1
  52. package/src/lib/enumerations/messaging/emailErrorType.js +17 -1
  53. package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -1
  54. package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +4 -2
  55. package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -1
  56. package/src/lib/enumerations/messaging/messageEncryptionScheme.js +3 -1
  57. package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -1
  58. package/src/lib/errors/encryptionErrors.d.ts +71 -0
  59. package/src/lib/errors/encryptionErrors.d.ts.map +1 -0
  60. package/src/lib/errors/encryptionErrors.js +112 -0
  61. package/src/lib/errors/encryptionErrors.js.map +1 -0
  62. package/src/lib/errors/friendsServiceError.d.ts +20 -0
  63. package/src/lib/errors/friendsServiceError.d.ts.map +1 -0
  64. package/src/lib/errors/friendsServiceError.js +48 -0
  65. package/src/lib/errors/friendsServiceError.js.map +1 -0
  66. package/src/lib/errors/index.d.ts +15 -0
  67. package/src/lib/errors/index.d.ts.map +1 -1
  68. package/src/lib/errors/index.js +21 -0
  69. package/src/lib/errors/index.js.map +1 -1
  70. package/src/lib/i18n/i18n-setup.d.ts +2 -2
  71. package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
  72. package/src/lib/i18n/strings/englishUK.d.ts +2 -2
  73. package/src/lib/i18n/strings/englishUK.d.ts.map +1 -1
  74. package/src/lib/i18n/strings/englishUK.js.map +1 -1
  75. package/src/lib/i18n/strings/englishUs.d.ts +2 -2
  76. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  77. package/src/lib/i18n/strings/englishUs.js +65 -1
  78. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  79. package/src/lib/i18n/strings/french.d.ts +2 -2
  80. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  81. package/src/lib/i18n/strings/french.js +78 -13
  82. package/src/lib/i18n/strings/french.js.map +1 -1
  83. package/src/lib/i18n/strings/german.d.ts +2 -2
  84. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  85. package/src/lib/i18n/strings/german.js +77 -12
  86. package/src/lib/i18n/strings/german.js.map +1 -1
  87. package/src/lib/i18n/strings/japanese.d.ts +2 -2
  88. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  89. package/src/lib/i18n/strings/japanese.js +77 -12
  90. package/src/lib/i18n/strings/japanese.js.map +1 -1
  91. package/src/lib/i18n/strings/mandarin.d.ts +2 -2
  92. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  93. package/src/lib/i18n/strings/mandarin.js +77 -12
  94. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  95. package/src/lib/i18n/strings/spanish.d.ts +2 -2
  96. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  97. package/src/lib/i18n/strings/spanish.js +77 -12
  98. package/src/lib/i18n/strings/spanish.js.map +1 -1
  99. package/src/lib/i18n/strings/ukrainian.d.ts +2 -2
  100. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  101. package/src/lib/i18n/strings/ukrainian.js +77 -12
  102. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  103. package/src/lib/index.d.ts +31 -0
  104. package/src/lib/index.d.ts.map +1 -1
  105. package/src/lib/index.js +29 -1
  106. package/src/lib/index.js.map +1 -1
  107. package/src/lib/interfaces/appSubsystemPlugin.d.ts +69 -0
  108. package/src/lib/interfaces/appSubsystemPlugin.d.ts.map +1 -0
  109. package/src/lib/interfaces/appSubsystemPlugin.js +3 -0
  110. package/src/lib/interfaces/appSubsystemPlugin.js.map +1 -0
  111. package/src/lib/interfaces/auth/writeProof.d.ts +2 -0
  112. package/src/lib/interfaces/auth/writeProof.d.ts.map +1 -1
  113. package/src/lib/interfaces/auth/writeProofUtils.d.ts +1 -1
  114. package/src/lib/interfaces/auth/writeProofUtils.d.ts.map +1 -1
  115. package/src/lib/interfaces/auth/writeProofUtils.js +2 -2
  116. package/src/lib/interfaces/auth/writeProofUtils.js.map +1 -1
  117. package/src/lib/interfaces/availability/gossipService.d.ts +99 -1
  118. package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
  119. package/src/lib/interfaces/availability/gossipService.js +4 -0
  120. package/src/lib/interfaces/availability/gossipService.js.map +1 -1
  121. package/src/lib/interfaces/communication/blockContentStore.d.ts +57 -0
  122. package/src/lib/interfaces/communication/blockContentStore.d.ts.map +1 -0
  123. package/src/lib/interfaces/communication/blockContentStore.js +21 -0
  124. package/src/lib/interfaces/communication/blockContentStore.js.map +1 -0
  125. package/src/lib/interfaces/communication/chatStorageProvider.d.ts +77 -0
  126. package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -0
  127. package/src/lib/interfaces/communication/chatStorageProvider.js +25 -0
  128. package/src/lib/interfaces/communication/chatStorageProvider.js.map +1 -0
  129. package/src/lib/interfaces/communication/index.d.ts +4 -0
  130. package/src/lib/interfaces/communication/index.d.ts.map +1 -0
  131. package/src/lib/interfaces/communication/index.js +3 -0
  132. package/src/lib/interfaces/communication/index.js.map +1 -0
  133. package/src/lib/interfaces/communication/server.d.ts +57 -0
  134. package/src/lib/interfaces/communication/server.d.ts.map +1 -0
  135. package/src/lib/interfaces/communication/server.js +14 -0
  136. package/src/lib/interfaces/communication/server.js.map +1 -0
  137. package/src/lib/interfaces/communication.d.ts +62 -5
  138. package/src/lib/interfaces/communication.d.ts.map +1 -1
  139. package/src/lib/interfaces/communication.js +8 -0
  140. package/src/lib/interfaces/communication.js.map +1 -1
  141. package/src/lib/interfaces/communicationEvents.d.ts +59 -1
  142. package/src/lib/interfaces/communicationEvents.d.ts.map +1 -1
  143. package/src/lib/interfaces/constants.d.ts +2 -0
  144. package/src/lib/interfaces/constants.d.ts.map +1 -1
  145. package/src/lib/interfaces/events/communicationEventEmitter.d.ts +9 -0
  146. package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -1
  147. package/src/lib/interfaces/events/communicationEventEmitter.js +9 -0
  148. package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -1
  149. package/src/lib/interfaces/friends/baseFriendRequest.d.ts +13 -0
  150. package/src/lib/interfaces/friends/baseFriendRequest.d.ts.map +1 -0
  151. package/src/lib/interfaces/friends/baseFriendRequest.js +3 -0
  152. package/src/lib/interfaces/friends/baseFriendRequest.js.map +1 -0
  153. package/src/lib/interfaces/friends/baseFriendship.d.ts +11 -0
  154. package/src/lib/interfaces/friends/baseFriendship.d.ts.map +1 -0
  155. package/src/lib/interfaces/friends/baseFriendship.js +3 -0
  156. package/src/lib/interfaces/friends/baseFriendship.js.map +1 -0
  157. package/src/lib/interfaces/friends/friendsService.d.ts +32 -0
  158. package/src/lib/interfaces/friends/friendsService.d.ts.map +1 -0
  159. package/src/lib/interfaces/friends/friendsService.js +3 -0
  160. package/src/lib/interfaces/friends/friendsService.js.map +1 -0
  161. package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts +17 -0
  162. package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts.map +1 -0
  163. package/src/lib/interfaces/friends/friendsSuggestionProvider.js +3 -0
  164. package/src/lib/interfaces/friends/friendsSuggestionProvider.js.map +1 -0
  165. package/src/lib/interfaces/friends/index.d.ts +6 -0
  166. package/src/lib/interfaces/friends/index.d.ts.map +1 -0
  167. package/src/lib/interfaces/friends/index.js +3 -0
  168. package/src/lib/interfaces/friends/index.js.map +1 -0
  169. package/src/lib/interfaces/friends/pagination.d.ts +11 -0
  170. package/src/lib/interfaces/friends/pagination.d.ts.map +1 -0
  171. package/src/lib/interfaces/friends/pagination.js +3 -0
  172. package/src/lib/interfaces/friends/pagination.js.map +1 -0
  173. package/src/lib/interfaces/index.d.ts +6 -1
  174. package/src/lib/interfaces/index.d.ts.map +1 -1
  175. package/src/lib/interfaces/index.js +3 -0
  176. package/src/lib/interfaces/index.js.map +1 -1
  177. package/src/lib/interfaces/messaging/gpgKey.d.ts +93 -0
  178. package/src/lib/interfaces/messaging/gpgKey.d.ts.map +1 -0
  179. package/src/lib/interfaces/messaging/gpgKey.js +12 -0
  180. package/src/lib/interfaces/messaging/gpgKey.js.map +1 -0
  181. package/src/lib/interfaces/messaging/index.d.ts +4 -0
  182. package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
  183. package/src/lib/interfaces/messaging/index.js +4 -0
  184. package/src/lib/interfaces/messaging/index.js.map +1 -1
  185. package/src/lib/interfaces/messaging/keyStore.d.ts +100 -0
  186. package/src/lib/interfaces/messaging/keyStore.d.ts.map +1 -0
  187. package/src/lib/interfaces/messaging/keyStore.js +13 -0
  188. package/src/lib/interfaces/messaging/keyStore.js.map +1 -0
  189. package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts +92 -0
  190. package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts.map +1 -0
  191. package/src/lib/interfaces/messaging/recipientKeyResolver.js +13 -0
  192. package/src/lib/interfaces/messaging/recipientKeyResolver.js.map +1 -0
  193. package/src/lib/interfaces/messaging/smimeCertificate.d.ts +99 -0
  194. package/src/lib/interfaces/messaging/smimeCertificate.d.ts.map +1 -0
  195. package/src/lib/interfaces/messaging/smimeCertificate.js +12 -0
  196. package/src/lib/interfaces/messaging/smimeCertificate.js.map +1 -0
  197. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +8 -0
  198. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
  199. package/src/lib/interfaces/responses/communicationResponses.d.ts +25 -0
  200. package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
  201. package/src/lib/interfaces/storage/documentTypes.d.ts +4 -0
  202. package/src/lib/interfaces/storage/documentTypes.d.ts.map +1 -1
  203. package/src/lib/services/blockService.d.ts +11 -3
  204. package/src/lib/services/blockService.d.ts.map +1 -1
  205. package/src/lib/services/blockService.js +22 -2
  206. package/src/lib/services/blockService.js.map +1 -1
  207. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +108 -0
  208. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -0
  209. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +284 -0
  210. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -0
  211. package/src/lib/services/communication/attachmentUtils.d.ts +20 -0
  212. package/src/lib/services/communication/attachmentUtils.d.ts.map +1 -0
  213. package/src/lib/services/communication/attachmentUtils.js +43 -0
  214. package/src/lib/services/communication/attachmentUtils.js.map +1 -0
  215. package/src/lib/services/communication/channelService.d.ts +143 -14
  216. package/src/lib/services/communication/channelService.d.ts.map +1 -1
  217. package/src/lib/services/communication/channelService.js +562 -41
  218. package/src/lib/services/communication/channelService.js.map +1 -1
  219. package/src/lib/services/communication/conversationService.d.ts +91 -4
  220. package/src/lib/services/communication/conversationService.d.ts.map +1 -1
  221. package/src/lib/services/communication/conversationService.js +269 -7
  222. package/src/lib/services/communication/conversationService.js.map +1 -1
  223. package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts +36 -0
  224. package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts.map +1 -0
  225. package/src/lib/services/communication/eciesKeyEncryptionHandler.js +30 -0
  226. package/src/lib/services/communication/eciesKeyEncryptionHandler.js.map +1 -0
  227. package/src/lib/services/communication/groupService.d.ts +99 -21
  228. package/src/lib/services/communication/groupService.d.ts.map +1 -1
  229. package/src/lib/services/communication/groupService.js +387 -41
  230. package/src/lib/services/communication/groupService.js.map +1 -1
  231. package/src/lib/services/communication/index.d.ts +6 -1
  232. package/src/lib/services/communication/index.d.ts.map +1 -1
  233. package/src/lib/services/communication/index.js +20 -1
  234. package/src/lib/services/communication/index.js.map +1 -1
  235. package/src/lib/services/communication/keyEpochManager.d.ts +41 -0
  236. package/src/lib/services/communication/keyEpochManager.d.ts.map +1 -0
  237. package/src/lib/services/communication/keyEpochManager.js +59 -0
  238. package/src/lib/services/communication/keyEpochManager.js.map +1 -0
  239. package/src/lib/services/communication/rehydrationHelpers.d.ts +32 -0
  240. package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -0
  241. package/src/lib/services/communication/rehydrationHelpers.js +58 -0
  242. package/src/lib/services/communication/rehydrationHelpers.js.map +1 -0
  243. package/src/lib/services/communication/serverService.d.ts +193 -0
  244. package/src/lib/services/communication/serverService.d.ts.map +1 -0
  245. package/src/lib/services/communication/serverService.js +495 -0
  246. package/src/lib/services/communication/serverService.js.map +1 -0
  247. package/src/lib/services/copyOnWrite.service.d.ts +110 -0
  248. package/src/lib/services/copyOnWrite.service.d.ts.map +1 -0
  249. package/src/lib/services/copyOnWrite.service.js +256 -0
  250. package/src/lib/services/copyOnWrite.service.js.map +1 -0
  251. package/src/lib/services/index.d.ts +1 -0
  252. package/src/lib/services/index.d.ts.map +1 -1
  253. package/src/lib/services/index.js +1 -0
  254. package/src/lib/services/index.js.map +1 -1
  255. package/src/lib/services/memberStore.d.ts +17 -1
  256. package/src/lib/services/memberStore.d.ts.map +1 -1
  257. package/src/lib/services/memberStore.js +98 -17
  258. package/src/lib/services/memberStore.js.map +1 -1
  259. package/src/lib/services/messaging/emailEncryptionService.d.ts +162 -0
  260. package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -1
  261. package/src/lib/services/messaging/emailEncryptionService.js +293 -0
  262. package/src/lib/services/messaging/emailEncryptionService.js.map +1 -1
  263. package/src/lib/services/messaging/emailMessageService.d.ts +64 -0
  264. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
  265. package/src/lib/services/messaging/emailMessageService.js +142 -13
  266. package/src/lib/services/messaging/emailMessageService.js.map +1 -1
  267. package/src/lib/services/messaging/gpgKeyManager.d.ts +130 -0
  268. package/src/lib/services/messaging/gpgKeyManager.d.ts.map +1 -0
  269. package/src/lib/services/messaging/gpgKeyManager.js +381 -0
  270. package/src/lib/services/messaging/gpgKeyManager.js.map +1 -0
  271. package/src/lib/services/messaging/index.d.ts +3 -0
  272. package/src/lib/services/messaging/index.d.ts.map +1 -1
  273. package/src/lib/services/messaging/index.js +3 -0
  274. package/src/lib/services/messaging/index.js.map +1 -1
  275. package/src/lib/services/messaging/recipientKeyResolver.d.ts +47 -0
  276. package/src/lib/services/messaging/recipientKeyResolver.d.ts.map +1 -0
  277. package/src/lib/services/messaging/recipientKeyResolver.js +132 -0
  278. package/src/lib/services/messaging/recipientKeyResolver.js.map +1 -0
  279. package/src/lib/services/messaging/smimeCertificateManager.d.ts +207 -0
  280. package/src/lib/services/messaging/smimeCertificateManager.d.ts.map +1 -0
  281. package/src/lib/services/messaging/smimeCertificateManager.js +696 -0
  282. package/src/lib/services/messaging/smimeCertificateManager.js.map +1 -0
  283. package/src/lib/utils/index.d.ts +6 -0
  284. package/src/lib/utils/index.d.ts.map +1 -1
  285. package/src/lib/utils/index.js +9 -0
  286. package/src/lib/utils/index.js.map +1 -1
  287. package/src/lib/utils/sortPair.d.ts +6 -0
  288. package/src/lib/utils/sortPair.d.ts.map +1 -0
  289. package/src/lib/utils/sortPair.js +11 -0
  290. package/src/lib/utils/sortPair.js.map +1 -0
@@ -39,6 +39,22 @@ const crossPlatformCrypto_1 = require("../../utils/crossPlatformCrypto");
39
39
  * @see Requirements 16.1, 16.3, 16.4, 16.5, 16.6, 16.7, 16.8
40
40
  */
41
41
  class EmailEncryptionService {
42
+ _gpgKeyManager;
43
+ _smimeCertificateManager;
44
+ async getGpgKeyManager() {
45
+ if (!this._gpgKeyManager) {
46
+ const { GpgKeyManager } = await import('./gpgKeyManager.js');
47
+ this._gpgKeyManager = new GpgKeyManager();
48
+ }
49
+ return this._gpgKeyManager;
50
+ }
51
+ async getSmimeCertificateManager() {
52
+ if (!this._smimeCertificateManager) {
53
+ const { SmimeCertificateManager } = await import('./smimeCertificateManager.js');
54
+ this._smimeCertificateManager = new SmimeCertificateManager();
55
+ }
56
+ return this._smimeCertificateManager;
57
+ }
42
58
  // ─── ECIES Content Encryption (Requirement 16.1, 16.3) ─────────────
43
59
  /**
44
60
  * Encrypts email content using ECIES for a single recipient.
@@ -404,6 +420,283 @@ class EmailEncryptionService {
404
420
  async decryptSmime(encryptedContent, metadata, recipientAddress, recipientPrivateKey, signerPrivateKey) {
405
421
  return this.decryptAndVerify(encryptedContent, metadata, recipientAddress, recipientPrivateKey, signerPrivateKey);
406
422
  }
423
+ // ─── GPG Encryption / Decryption (Requirements 3.1, 3.3, 3.4, 5.1, 5.5, 14.1) ─
424
+ /**
425
+ * Encrypts email content using OpenPGP for multiple recipients.
426
+ *
427
+ * Delegates to GpgKeyManager.encrypt() and wraps the result in
428
+ * IPerRecipientEncryptionResult with scheme set to GPG.
429
+ * Optionally signs the content before encryption if sender key is provided.
430
+ *
431
+ * @param content - Plaintext email content
432
+ * @param recipientPublicKeysArmored - Map of recipient email to ASCII-armored GPG public key
433
+ * @param senderPrivateKeyArmored - Optional sender's GPG private key for signing
434
+ * @param senderPassphrase - Optional passphrase for the sender's private key
435
+ * @returns Encrypted content and GPG metadata
436
+ * @throws {EmailError} PRIVATE_KEY_MISSING if signing requested but key missing
437
+ * @throws {EmailError} GPG_ENCRYPT_FAILED on encryption failure
438
+ *
439
+ * @see Requirements 3.1, 3.3, 3.4, 14.1
440
+ */
441
+ async encryptGpg(content, recipientPublicKeysArmored, senderPrivateKeyArmored, senderPassphrase) {
442
+ try {
443
+ // If sender key is provided but passphrase is missing, throw
444
+ if (senderPrivateKeyArmored && !senderPassphrase) {
445
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'Passphrase is required when sender private key is provided for GPG signing');
446
+ }
447
+ // Sign before encrypt if sender key is provided (Requirement 4.2)
448
+ let gpgSignature;
449
+ let gpgSignerKeyId;
450
+ if (senderPrivateKeyArmored && senderPassphrase) {
451
+ const signResult = await (await this.getGpgKeyManager()).sign(content, senderPrivateKeyArmored, senderPassphrase);
452
+ gpgSignature = signResult.signature;
453
+ gpgSignerKeyId = signResult.signerKeyId;
454
+ }
455
+ // Convert Map values to array for GpgKeyManager.encrypt()
456
+ const armoredKeys = Array.from(recipientPublicKeysArmored.values());
457
+ const encryptionResult = await (await this.getGpgKeyManager()).encrypt(content, armoredKeys);
458
+ // The GPG encrypted message is a string; encode as Uint8Array for the result
459
+ const encoder = new TextEncoder();
460
+ const encryptedContent = encoder.encode(encryptionResult.encryptedMessage);
461
+ return {
462
+ encryptedContent,
463
+ encryptionMetadata: {
464
+ scheme: messageEncryptionScheme_1.MessageEncryptionScheme.GPG,
465
+ isSigned: !!gpgSignature,
466
+ gpgEncryptedMessage: encryptionResult.encryptedMessage,
467
+ gpgSignature,
468
+ gpgSignerKeyId,
469
+ },
470
+ };
471
+ }
472
+ catch (error) {
473
+ if (error instanceof emailError_1.EmailError)
474
+ throw error;
475
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_ENCRYPT_FAILED, `GPG encryption failed: ${error instanceof Error ? error.message : String(error)}`, { recipientCount: recipientPublicKeysArmored.size });
476
+ }
477
+ }
478
+ /**
479
+ * Decrypts an OpenPGP encrypted message using a GPG private key.
480
+ *
481
+ * Delegates to GpgKeyManager.decrypt(). The encryptedContent is expected
482
+ * to be the UTF-8 encoded ASCII-armored OpenPGP message.
483
+ *
484
+ * @param encryptedContent - The encrypted content (UTF-8 encoded armored message)
485
+ * @param privateKeyArmored - ASCII-armored GPG private key
486
+ * @param passphrase - Passphrase to unlock the private key
487
+ * @returns Decrypted plaintext content
488
+ * @throws {EmailError} PRIVATE_KEY_MISSING if private key is not provided
489
+ * @throws {EmailError} GPG_DECRYPT_FAILED on decryption failure
490
+ *
491
+ * @see Requirements 5.1, 5.5
492
+ */
493
+ async decryptGpg(encryptedContent, privateKeyArmored, passphrase) {
494
+ if (!privateKeyArmored) {
495
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'GPG private key is required for decryption');
496
+ }
497
+ try {
498
+ // Decode the Uint8Array back to the ASCII-armored string
499
+ const decoder = new TextDecoder();
500
+ const armoredMessage = decoder.decode(encryptedContent);
501
+ return await (await this.getGpgKeyManager()).decrypt(armoredMessage, privateKeyArmored, passphrase);
502
+ }
503
+ catch (error) {
504
+ if (error instanceof emailError_1.EmailError)
505
+ throw error;
506
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_DECRYPT_FAILED, `GPG decryption failed: ${error instanceof Error ? error.message : String(error)}`);
507
+ }
508
+ }
509
+ // ─── GPG Signing / Verification (Requirements 4.1, 4.2, 4.4, 5.2, 5.3, 5.4) ─
510
+ /**
511
+ * Signs email content with a GPG private key (detached signature).
512
+ *
513
+ * Delegates to GpgKeyManager.sign() and adapts the result to ISignatureResult.
514
+ *
515
+ * @param content - The email content to sign
516
+ * @param privateKeyArmored - ASCII-armored GPG private key
517
+ * @param passphrase - Passphrase to unlock the private key
518
+ * @returns Signature result with signature bytes and signer public key placeholder
519
+ * @throws {EmailError} PRIVATE_KEY_MISSING if private key is not provided
520
+ * @throws {EmailError} GPG_VERIFY_FAILED on signing failure
521
+ *
522
+ * @see Requirements 4.1, 4.2
523
+ */
524
+ async signGpg(content, privateKeyArmored, passphrase) {
525
+ if (!privateKeyArmored) {
526
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'GPG private key is required for signing');
527
+ }
528
+ try {
529
+ const gpgResult = await (await this.getGpgKeyManager()).sign(content, privateKeyArmored, passphrase);
530
+ // Adapt IGpgSignatureResult to ISignatureResult
531
+ const encoder = new TextEncoder();
532
+ return {
533
+ signature: encoder.encode(gpgResult.signature),
534
+ signerPublicKey: encoder.encode(gpgResult.signerKeyId),
535
+ };
536
+ }
537
+ catch (error) {
538
+ if (error instanceof emailError_1.EmailError)
539
+ throw error;
540
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.GPG_VERIFY_FAILED, `GPG signing failed: ${error instanceof Error ? error.message : String(error)}`);
541
+ }
542
+ }
543
+ /**
544
+ * Verifies a GPG detached signature against the given content.
545
+ *
546
+ * Delegates to GpgKeyManager.verify() and returns a boolean.
547
+ *
548
+ * @param content - The email content that was signed
549
+ * @param signature - The detached signature bytes (UTF-8 encoded armored signature)
550
+ * @param signerPublicKeyArmored - ASCII-armored GPG public key of the expected signer
551
+ * @returns true if the signature is valid, false otherwise
552
+ *
553
+ * @see Requirements 5.2, 5.3, 5.4
554
+ */
555
+ async verifyGpg(content, signature, signerPublicKeyArmored) {
556
+ try {
557
+ // Decode the signature Uint8Array back to the ASCII-armored string
558
+ const decoder = new TextDecoder();
559
+ const armoredSignature = decoder.decode(signature);
560
+ const result = await (await this.getGpgKeyManager()).verify(content, armoredSignature, signerPublicKeyArmored);
561
+ return result.valid;
562
+ }
563
+ catch {
564
+ return false;
565
+ }
566
+ }
567
+ // ─── Real S/MIME CMS Encryption / Decryption (Requirements 7.1, 7.3, 7.4, 9.1, 9.5) ─
568
+ /**
569
+ * Encrypts email content using real CMS/PKCS#7 enveloped-data for multiple recipients.
570
+ *
571
+ * Delegates to SmimeCertificateManager.encrypt() for RFC 5751 CMS encryption.
572
+ * Optionally signs the content before encryption if sender cert+key are provided.
573
+ *
574
+ * @param content - Plaintext email content
575
+ * @param recipientCertificatesPem - Map of recipient email to PEM-encoded X.509 certificate
576
+ * @param senderCertPem - Optional sender's S/MIME certificate PEM for signing
577
+ * @param senderPrivateKeyPem - Optional sender's S/MIME private key PEM for signing
578
+ * @returns Encrypted content and S/MIME metadata
579
+ * @throws {EmailError} PRIVATE_KEY_MISSING if signing requested but key missing
580
+ * @throws {EmailError} SMIME_ENCRYPT_FAILED on encryption failure
581
+ *
582
+ * @see Requirements 7.1, 7.3, 7.4, 8.2
583
+ */
584
+ async encryptSmimeReal(content, recipientCertificatesPem, senderCertPem, senderPrivateKeyPem) {
585
+ try {
586
+ // If sender cert is provided but private key is missing, throw
587
+ if (senderCertPem && !senderPrivateKeyPem) {
588
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'Private key is required when sender certificate is provided for S/MIME signing');
589
+ }
590
+ // Sign before encrypt if sender cert+key are provided (Requirement 8.2)
591
+ let cmsSignature;
592
+ let smimeSignerSubject;
593
+ if (senderCertPem && senderPrivateKeyPem) {
594
+ const signResult = await (await this.getSmimeCertificateManager()).sign(content, senderCertPem, senderPrivateKeyPem);
595
+ cmsSignature = signResult.signature;
596
+ smimeSignerSubject = signResult.signerCertSubject;
597
+ }
598
+ // Convert Map values to array for SmimeCertificateManager.encrypt()
599
+ const certPems = Array.from(recipientCertificatesPem.values());
600
+ const encryptionResult = await (await this.getSmimeCertificateManager()).encrypt(content, certPems);
601
+ return {
602
+ encryptedContent: encryptionResult.encryptedContent,
603
+ encryptionMetadata: {
604
+ scheme: messageEncryptionScheme_1.MessageEncryptionScheme.S_MIME,
605
+ isSigned: !!cmsSignature,
606
+ cmsEncryptedContent: encryptionResult.encryptedContent,
607
+ cmsSignature,
608
+ smimeSignerSubject,
609
+ },
610
+ };
611
+ }
612
+ catch (error) {
613
+ if (error instanceof emailError_1.EmailError)
614
+ throw error;
615
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.SMIME_ENCRYPT_FAILED, `S/MIME CMS encryption failed: ${error instanceof Error ? error.message : String(error)}`, { recipientCount: recipientCertificatesPem.size });
616
+ }
617
+ }
618
+ /**
619
+ * Decrypts CMS/PKCS#7 enveloped-data content using a recipient's certificate and private key.
620
+ *
621
+ * Delegates to SmimeCertificateManager.decrypt() for RFC 5751 CMS decryption.
622
+ *
623
+ * @param encryptedContent - DER-encoded CMS/PKCS#7 enveloped-data
624
+ * @param certificatePem - PEM-encoded X.509 certificate of the recipient
625
+ * @param privateKeyPem - PEM-encoded PKCS#8 private key of the recipient
626
+ * @returns Decrypted plaintext content
627
+ * @throws {EmailError} PRIVATE_KEY_MISSING if private key is not provided
628
+ * @throws {EmailError} SMIME_DECRYPT_FAILED on decryption failure
629
+ *
630
+ * @see Requirements 9.1, 9.5
631
+ */
632
+ async decryptSmimeReal(encryptedContent, certificatePem, privateKeyPem) {
633
+ if (!privateKeyPem) {
634
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'S/MIME private key is required for decryption');
635
+ }
636
+ try {
637
+ return await (await this.getSmimeCertificateManager()).decrypt(encryptedContent, certificatePem, privateKeyPem);
638
+ }
639
+ catch (error) {
640
+ if (error instanceof emailError_1.EmailError)
641
+ throw error;
642
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.SMIME_DECRYPT_FAILED, `S/MIME CMS decryption failed: ${error instanceof Error ? error.message : String(error)}`);
643
+ }
644
+ }
645
+ // ─── S/MIME CMS Signing / Verification (Requirements 8.1, 8.2, 8.4, 9.2, 9.3, 9.4) ─
646
+ /**
647
+ * Signs email content with an S/MIME certificate and private key (CMS detached signature).
648
+ *
649
+ * Delegates to SmimeCertificateManager.sign() and adapts the result to ISignatureResult.
650
+ *
651
+ * @param content - The email content to sign
652
+ * @param certificatePem - PEM-encoded X.509 certificate of the signer
653
+ * @param privateKeyPem - PEM-encoded PKCS#8 private key of the signer
654
+ * @returns Signature result with CMS signature bytes and signer public key (encoded subject)
655
+ * @throws {EmailError} PRIVATE_KEY_MISSING if private key is not provided
656
+ * @throws {EmailError} SMIME_VERIFY_FAILED on signing failure
657
+ *
658
+ * @see Requirements 8.1, 8.4
659
+ */
660
+ async signSmime(content, certificatePem, privateKeyPem) {
661
+ if (!privateKeyPem) {
662
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.PRIVATE_KEY_MISSING, 'S/MIME private key is required for signing');
663
+ }
664
+ try {
665
+ const smimeResult = await (await this.getSmimeCertificateManager()).sign(content, certificatePem, privateKeyPem);
666
+ // Adapt ISmimeSignatureResult to ISignatureResult
667
+ const encoder = new TextEncoder();
668
+ return {
669
+ signature: smimeResult.signature,
670
+ signerPublicKey: encoder.encode(smimeResult.signerCertSubject),
671
+ };
672
+ }
673
+ catch (error) {
674
+ if (error instanceof emailError_1.EmailError)
675
+ throw error;
676
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.SMIME_VERIFY_FAILED, `S/MIME CMS signing failed: ${error instanceof Error ? error.message : String(error)}`);
677
+ }
678
+ }
679
+ /**
680
+ * Verifies an S/MIME CMS detached signature against the given content.
681
+ *
682
+ * Delegates to SmimeCertificateManager.verify() and returns a boolean.
683
+ *
684
+ * @param content - The email content that was signed
685
+ * @param signature - The DER-encoded CMS detached signature
686
+ * @param signerCertificatePem - PEM-encoded X.509 certificate of the expected signer
687
+ * @returns true if the signature is valid, false otherwise
688
+ *
689
+ * @see Requirements 9.2, 9.3, 9.4
690
+ */
691
+ async verifySmime(content, signature, signerCertificatePem) {
692
+ try {
693
+ const result = await (await this.getSmimeCertificateManager()).verify(content, signature, signerCertificatePem);
694
+ return result.valid;
695
+ }
696
+ catch {
697
+ return false;
698
+ }
699
+ }
407
700
  }
408
701
  exports.EmailEncryptionService = EmailEncryptionService;
409
702
  //# sourceMappingURL=emailEncryptionService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emailEncryptionService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailEncryptionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emailEncryptionService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailEncryptionService.ts"],"names":[],"mappings":"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"}
@@ -184,6 +184,52 @@ export interface IEmailInput {
184
184
  * @see Requirement 16.5
185
185
  */
186
186
  senderPublicKey?: Uint8Array;
187
+ /**
188
+ * GPG public keys for recipients (armored).
189
+ * Maps recipient address to their ASCII-armored GPG public key.
190
+ * Required when encryptionScheme is GPG.
191
+ *
192
+ * @see Requirement 3.3
193
+ */
194
+ recipientGpgKeys?: Map<string, string>;
195
+ /**
196
+ * S/MIME certificates for recipients (PEM).
197
+ * Maps recipient address to their PEM-encoded S/MIME certificate.
198
+ * Required when encryptionScheme is S_MIME.
199
+ *
200
+ * @see Requirement 7.3
201
+ */
202
+ recipientSmimeCerts?: Map<string, string>;
203
+ /**
204
+ * Sender's GPG private key (armored) for signing.
205
+ *
206
+ * @see Requirement 4.4
207
+ */
208
+ senderGpgPrivateKey?: string;
209
+ /**
210
+ * Passphrase for the sender's GPG private key.
211
+ *
212
+ * @see Requirement 4.4
213
+ */
214
+ senderGpgPassphrase?: string;
215
+ /**
216
+ * Sender's S/MIME certificate (PEM) for signing.
217
+ *
218
+ * @see Requirement 8.4
219
+ */
220
+ senderSmimeCert?: string;
221
+ /**
222
+ * Sender's S/MIME private key (PEM) for signing.
223
+ *
224
+ * @see Requirement 8.4
225
+ */
226
+ senderSmimePrivateKey?: string;
227
+ /**
228
+ * Whether to sign the message (GPG or S/MIME depending on scheme).
229
+ *
230
+ * @see Requirement 4.4, 8.4
231
+ */
232
+ signMessage?: boolean;
187
233
  }
188
234
  /**
189
235
  * Input for an attachment to be included in an email.
@@ -696,6 +742,24 @@ export declare class EmailMessageService {
696
742
  * @see Requirement 3.3 - Ensure global uniqueness with timestamp, random, and node ID
697
743
  */
698
744
  generateMessageId(): string;
745
+ /**
746
+ * Wraps message content and a detached signature into a multipart/signed
747
+ * MIME structure per RFC 3156 (GPG) or RFC 5751 (S/MIME).
748
+ *
749
+ * The resulting IMimePart has:
750
+ * - Content-Type: multipart/signed with protocol, micalg, and boundary params
751
+ * - Two child parts: the original body part and the signature part
752
+ *
753
+ * @param bodyPart - The original message body MIME part
754
+ * @param signature - The detached signature (ASCII-armored string for GPG, Uint8Array for S/MIME)
755
+ * @param scheme - GPG or S_MIME to determine protocol and micalg values
756
+ * @returns An IMimePart representing the multipart/signed structure
757
+ *
758
+ * @see RFC 3156 - MIME Security with OpenPGP (GPG)
759
+ * @see RFC 5751 - S/MIME 3.2 Message Specification
760
+ * @see Requirements 4.4, 8.4
761
+ */
762
+ private assembleMultipartSigned;
699
763
  /**
700
764
  * Returns the current service configuration.
701
765
  *
@@ -1 +1 @@
1
- {"version":3,"file":"emailMessageService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emailMessageService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
@@ -269,21 +269,91 @@ class EmailMessageService {
269
269
  }
270
270
  }
271
271
  else if (email.encryptionScheme === messageEncryptionScheme_1.MessageEncryptionScheme.S_MIME) {
272
- // S/MIME encryption: requires both recipient keys and sender keys
273
- if (!email.recipientPublicKeys ||
274
- email.recipientPublicKeys.size === 0) {
275
- throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.ENCRYPTION_FAILED, 'Recipient public keys are required for S/MIME encryption');
272
+ // Real S/MIME CMS encryption (RFC 5751)
273
+ // Sign before encrypt per Requirement 8.2
274
+ if (email.signMessage &&
275
+ email.senderSmimeCert &&
276
+ email.senderSmimePrivateKey) {
277
+ const signResult = await encryptionService.signSmime(bodyContent, email.senderSmimeCert, email.senderSmimePrivateKey);
278
+ // Build a body MIME part for the multipart/signed assembly
279
+ const bodyMimePart = {
280
+ contentType: contentType,
281
+ body: bodyContent,
282
+ size: bodyContent.length,
283
+ };
284
+ const signedPart = this.assembleMultipartSigned(bodyMimePart, signResult.signature, messageEncryptionScheme_1.MessageEncryptionScheme.S_MIME);
285
+ metadata.parts = [signedPart];
286
+ metadata.isSigned = true;
287
+ metadata.contentSignature = signResult.signature;
288
+ metadata.signerPublicKey = signResult.signerPublicKey;
276
289
  }
277
- if (!email.senderPrivateKey || !email.senderPublicKey) {
278
- throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.ENCRYPTION_FAILED, 'Sender private and public keys are required for S/MIME encryption');
290
+ // Encrypt if recipient S/MIME certs are provided
291
+ if (email.recipientSmimeCerts && email.recipientSmimeCerts.size > 0) {
292
+ const result = await encryptionService.encryptSmimeReal(bodyContent, email.recipientSmimeCerts, email.senderSmimeCert, email.senderSmimePrivateKey);
293
+ metadata.encryptedKeys = result.encryptionMetadata.encryptedKeys;
294
+ metadata.encryptionIv = result.encryptionMetadata.iv;
295
+ metadata.encryptionAuthTag = result.encryptionMetadata.authTag;
296
+ if (result.encryptionMetadata.isSigned) {
297
+ metadata.isSigned = result.encryptionMetadata.isSigned;
298
+ metadata.contentSignature = result.encryptionMetadata.signature;
299
+ metadata.signerPublicKey =
300
+ result.encryptionMetadata.signerPublicKey;
301
+ }
302
+ }
303
+ else if (!email.signMessage) {
304
+ // Fallback to legacy S/MIME stub if no real certs provided
305
+ if (!email.recipientPublicKeys ||
306
+ email.recipientPublicKeys.size === 0) {
307
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.ENCRYPTION_FAILED, 'Recipient public keys or S/MIME certificates are required for S/MIME encryption');
308
+ }
309
+ if (!email.senderPrivateKey || !email.senderPublicKey) {
310
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.ENCRYPTION_FAILED, 'Sender private and public keys are required for S/MIME encryption');
311
+ }
312
+ const result = await encryptionService.encryptSmime(bodyContent, email.recipientPublicKeys, email.senderPrivateKey, email.senderPublicKey);
313
+ metadata.encryptedKeys = result.encryptionMetadata.encryptedKeys;
314
+ metadata.encryptionIv = result.encryptionMetadata.iv;
315
+ metadata.encryptionAuthTag = result.encryptionMetadata.authTag;
316
+ metadata.isSigned = result.encryptionMetadata.isSigned;
317
+ metadata.contentSignature = result.encryptionMetadata.signature;
318
+ metadata.signerPublicKey =
319
+ result.encryptionMetadata.signerPublicKey;
320
+ }
321
+ }
322
+ else if (email.encryptionScheme === messageEncryptionScheme_1.MessageEncryptionScheme.GPG) {
323
+ // GPG encryption (RFC 4880) with optional signing (RFC 3156)
324
+ // Sign before encrypt per Requirement 4.2
325
+ if (email.signMessage &&
326
+ email.senderGpgPrivateKey &&
327
+ email.senderGpgPassphrase) {
328
+ const signResult = await encryptionService.signGpg(bodyContent, email.senderGpgPrivateKey, email.senderGpgPassphrase);
329
+ // Build a body MIME part for the multipart/signed assembly
330
+ const bodyMimePart = {
331
+ contentType: contentType,
332
+ body: bodyContent,
333
+ size: bodyContent.length,
334
+ };
335
+ const signedPart = this.assembleMultipartSigned(bodyMimePart, signResult.signature, messageEncryptionScheme_1.MessageEncryptionScheme.GPG);
336
+ metadata.parts = [signedPart];
337
+ metadata.isSigned = true;
338
+ metadata.contentSignature = signResult.signature;
339
+ metadata.signerPublicKey = signResult.signerPublicKey;
340
+ }
341
+ // Encrypt if recipient GPG keys are provided
342
+ if (email.recipientGpgKeys && email.recipientGpgKeys.size > 0) {
343
+ const result = await encryptionService.encryptGpg(bodyContent, email.recipientGpgKeys, email.senderGpgPrivateKey, email.senderGpgPassphrase);
344
+ metadata.encryptedKeys = result.encryptionMetadata.encryptedKeys;
345
+ metadata.encryptionIv = result.encryptionMetadata.iv;
346
+ metadata.encryptionAuthTag = result.encryptionMetadata.authTag;
347
+ if (result.encryptionMetadata.isSigned) {
348
+ metadata.isSigned = result.encryptionMetadata.isSigned;
349
+ metadata.contentSignature = result.encryptionMetadata.signature;
350
+ metadata.signerPublicKey =
351
+ result.encryptionMetadata.signerPublicKey;
352
+ }
353
+ }
354
+ else {
355
+ throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.ENCRYPTION_FAILED, 'Recipient GPG public keys are required for GPG encryption');
279
356
  }
280
- const result = await encryptionService.encryptSmime(bodyContent, email.recipientPublicKeys, email.senderPrivateKey, email.senderPublicKey);
281
- metadata.encryptedKeys = result.encryptionMetadata.encryptedKeys;
282
- metadata.encryptionIv = result.encryptionMetadata.iv;
283
- metadata.encryptionAuthTag = result.encryptionMetadata.authTag;
284
- metadata.isSigned = result.encryptionMetadata.isSigned;
285
- metadata.contentSignature = result.encryptionMetadata.signature;
286
- metadata.signerPublicKey = result.encryptionMetadata.signerPublicKey;
287
357
  }
288
358
  }
289
359
  catch (err) {
@@ -1100,6 +1170,65 @@ class EmailMessageService {
1100
1170
  const idRight = this.config.nodeId;
1101
1171
  return `<${idLeft}@${idRight}>`;
1102
1172
  }
1173
+ // ─── Multipart/Signed Assembly (RFC 3156, RFC 5751) ─────────────────
1174
+ /**
1175
+ * Wraps message content and a detached signature into a multipart/signed
1176
+ * MIME structure per RFC 3156 (GPG) or RFC 5751 (S/MIME).
1177
+ *
1178
+ * The resulting IMimePart has:
1179
+ * - Content-Type: multipart/signed with protocol, micalg, and boundary params
1180
+ * - Two child parts: the original body part and the signature part
1181
+ *
1182
+ * @param bodyPart - The original message body MIME part
1183
+ * @param signature - The detached signature (ASCII-armored string for GPG, Uint8Array for S/MIME)
1184
+ * @param scheme - GPG or S_MIME to determine protocol and micalg values
1185
+ * @returns An IMimePart representing the multipart/signed structure
1186
+ *
1187
+ * @see RFC 3156 - MIME Security with OpenPGP (GPG)
1188
+ * @see RFC 5751 - S/MIME 3.2 Message Specification
1189
+ * @see Requirements 4.4, 8.4
1190
+ */
1191
+ assembleMultipartSigned(bodyPart, signature, scheme) {
1192
+ // Generate a unique boundary string
1193
+ const randomBytes = (0, platformCrypto_1.getRandomBytes)(16);
1194
+ const boundaryId = Array.from(randomBytes)
1195
+ .map((b) => b.toString(16).padStart(2, '0'))
1196
+ .join('');
1197
+ const boundary = `----=_SignatureBoundary_${boundaryId}`;
1198
+ // Determine protocol and micalg based on scheme
1199
+ const isGpg = scheme === messageEncryptionScheme_1.MessageEncryptionScheme.GPG;
1200
+ const protocol = isGpg
1201
+ ? 'application/pgp-signature'
1202
+ : 'application/pkcs7-signature';
1203
+ const micalg = isGpg ? 'pgp-sha256' : 'sha-256';
1204
+ // Build the signature part
1205
+ const signatureBytes = typeof signature === 'string'
1206
+ ? new TextEncoder().encode(signature)
1207
+ : signature;
1208
+ const signaturePart = {
1209
+ contentType: (0, mimePart_1.createContentType)('application', isGpg ? 'pgp-signature' : 'pkcs7-signature', new Map([['name', isGpg ? 'signature.asc' : 'smime.p7s']])),
1210
+ contentDisposition: {
1211
+ type: 'attachment',
1212
+ filename: isGpg ? 'signature.asc' : 'smime.p7s',
1213
+ },
1214
+ contentTransferEncoding: isGpg
1215
+ ? mimePart_1.ContentTransferEncoding.SevenBit
1216
+ : mimePart_1.ContentTransferEncoding.Base64,
1217
+ body: signatureBytes,
1218
+ size: signatureBytes.length,
1219
+ };
1220
+ // Build the multipart/signed container
1221
+ const multipartSigned = {
1222
+ contentType: (0, mimePart_1.createContentType)('multipart', 'signed', new Map([
1223
+ ['protocol', protocol],
1224
+ ['micalg', micalg],
1225
+ ['boundary', boundary],
1226
+ ])),
1227
+ parts: [bodyPart, signaturePart],
1228
+ size: bodyPart.size + signaturePart.size,
1229
+ };
1230
+ return multipartSigned;
1231
+ }
1103
1232
  // ─── Configuration Access ───────────────────────────────────────────
1104
1233
  /**
1105
1234
  * Returns the current service configuration.