@digitaldefiance/node-ecies-lib 4.4.9 → 4.4.12

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 (385) hide show
  1. package/package.json +6 -5
  2. package/src/builders/ecies-builder.d.ts +11 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +26 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -0
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +6 -0
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +47 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +99 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +38 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +191 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +6 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +15 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/{index.ts → index.d.ts} +1 -0
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/index.js +6 -0
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +8 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +3 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/enumerations/index.d.ts +2 -0
  31. package/src/enumerations/index.d.ts.map +1 -0
  32. package/src/enumerations/index.js +5 -0
  33. package/src/enumerations/index.js.map +1 -0
  34. package/src/enumerations/pbkdf2-profile.d.ts +9 -0
  35. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  36. package/src/enumerations/pbkdf2-profile.js +13 -0
  37. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  38. package/src/i18n/ecies-i18n-factory.d.ts +28 -0
  39. package/src/i18n/ecies-i18n-factory.d.ts.map +1 -0
  40. package/src/i18n/ecies-i18n-factory.js +89 -0
  41. package/src/i18n/ecies-i18n-factory.js.map +1 -0
  42. package/src/i18n/{index.ts → index.d.ts} +1 -3
  43. package/src/i18n/index.d.ts.map +1 -0
  44. package/src/i18n/index.js +8 -0
  45. package/src/i18n/index.js.map +1 -0
  46. package/src/i18n/node-ecies-i18n-setup.d.ts +5 -0
  47. package/src/i18n/node-ecies-i18n-setup.d.ts.map +1 -0
  48. package/src/i18n/node-ecies-i18n-setup.js +46 -0
  49. package/src/i18n/node-ecies-i18n-setup.js.map +1 -0
  50. package/src/i18n/node-keys.d.ts +57 -0
  51. package/src/i18n/node-keys.d.ts.map +1 -0
  52. package/src/i18n/node-keys.js +67 -0
  53. package/src/i18n/node-keys.js.map +1 -0
  54. package/src/i18n/translations/de.d.ts +3 -0
  55. package/src/i18n/translations/de.d.ts.map +1 -0
  56. package/src/i18n/translations/de.js +57 -0
  57. package/src/i18n/translations/de.js.map +1 -0
  58. package/src/i18n/translations/en-GB.d.ts +3 -0
  59. package/src/i18n/translations/en-GB.d.ts.map +1 -0
  60. package/src/i18n/translations/en-GB.js +61 -0
  61. package/src/i18n/translations/en-GB.js.map +1 -0
  62. package/src/i18n/translations/en-US.d.ts +6 -0
  63. package/src/i18n/translations/en-US.d.ts.map +1 -0
  64. package/src/i18n/translations/en-US.js +65 -0
  65. package/src/i18n/translations/en-US.js.map +1 -0
  66. package/src/i18n/translations/es.d.ts +3 -0
  67. package/src/i18n/translations/es.d.ts.map +1 -0
  68. package/src/i18n/translations/es.js +57 -0
  69. package/src/i18n/translations/es.js.map +1 -0
  70. package/src/i18n/translations/fr.d.ts +3 -0
  71. package/src/i18n/translations/fr.d.ts.map +1 -0
  72. package/src/i18n/translations/fr.js +57 -0
  73. package/src/i18n/translations/fr.js.map +1 -0
  74. package/src/i18n/translations/{index.ts → index.d.ts} +1 -0
  75. package/src/i18n/translations/index.d.ts.map +1 -0
  76. package/src/i18n/translations/index.js +20 -0
  77. package/src/i18n/translations/index.js.map +1 -0
  78. package/src/i18n/translations/ja.d.ts +3 -0
  79. package/src/i18n/translations/ja.d.ts.map +1 -0
  80. package/src/i18n/translations/ja.js +57 -0
  81. package/src/i18n/translations/ja.js.map +1 -0
  82. package/src/i18n/translations/uk.d.ts +3 -0
  83. package/src/i18n/translations/uk.d.ts.map +1 -0
  84. package/src/i18n/translations/uk.js +57 -0
  85. package/src/i18n/translations/uk.js.map +1 -0
  86. package/src/i18n/translations/zh-cn.d.ts +3 -0
  87. package/src/i18n/translations/zh-cn.d.ts.map +1 -0
  88. package/src/i18n/translations/zh-cn.js +57 -0
  89. package/src/i18n/translations/zh-cn.js.map +1 -0
  90. package/src/{index.ts → index.d.ts} +1 -5
  91. package/src/index.d.ts.map +1 -0
  92. package/src/index.js +31 -0
  93. package/src/index.js.map +1 -0
  94. package/src/interfaces/authenticated-cipher.d.ts +12 -0
  95. package/src/interfaces/authenticated-cipher.d.ts.map +1 -0
  96. package/src/interfaces/authenticated-cipher.js +3 -0
  97. package/src/interfaces/authenticated-cipher.js.map +1 -0
  98. package/src/interfaces/authenticated-decipher.d.ts +11 -0
  99. package/src/interfaces/authenticated-decipher.d.ts.map +1 -0
  100. package/src/interfaces/authenticated-decipher.js +3 -0
  101. package/src/interfaces/authenticated-decipher.js.map +1 -0
  102. package/src/interfaces/backend-member-operational.d.ts +48 -0
  103. package/src/interfaces/backend-member-operational.d.ts.map +1 -0
  104. package/src/interfaces/backend-member-operational.js +3 -0
  105. package/src/interfaces/backend-member-operational.js.map +1 -0
  106. package/src/interfaces/checksum-config.d.ts +5 -0
  107. package/src/interfaces/checksum-config.d.ts.map +1 -0
  108. package/src/interfaces/checksum-config.js +3 -0
  109. package/src/interfaces/checksum-config.js.map +1 -0
  110. package/src/interfaces/checksum-consts.d.ts +11 -0
  111. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  112. package/src/interfaces/checksum-consts.js +3 -0
  113. package/src/interfaces/checksum-consts.js.map +1 -0
  114. package/src/interfaces/constants.d.ts +52 -0
  115. package/src/interfaces/constants.d.ts.map +1 -0
  116. package/src/interfaces/constants.js +3 -0
  117. package/src/interfaces/constants.js.map +1 -0
  118. package/src/interfaces/ecies-consts.d.ts +88 -0
  119. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  120. package/src/interfaces/ecies-consts.js +3 -0
  121. package/src/interfaces/ecies-consts.js.map +1 -0
  122. package/src/interfaces/encrypted-chunk.d.ts +12 -0
  123. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  124. package/src/interfaces/encrypted-chunk.js +3 -0
  125. package/src/interfaces/encrypted-chunk.js.map +1 -0
  126. package/src/interfaces/encryption-consts.d.ts +11 -0
  127. package/src/interfaces/encryption-consts.d.ts.map +1 -0
  128. package/src/interfaces/encryption-consts.js +3 -0
  129. package/src/interfaces/encryption-consts.js.map +1 -0
  130. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  131. package/src/interfaces/index.d.ts.map +1 -0
  132. package/src/interfaces/index.js +30 -0
  133. package/src/interfaces/index.js.map +1 -0
  134. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +6 -0
  135. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +1 -0
  136. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +3 -0
  137. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +1 -0
  138. package/src/interfaces/keyring-consts.d.ts +6 -0
  139. package/src/interfaces/keyring-consts.d.ts.map +1 -0
  140. package/src/interfaces/keyring-consts.js +3 -0
  141. package/src/interfaces/keyring-consts.js.map +1 -0
  142. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  143. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  144. package/src/interfaces/member-with-mnemonic.js +3 -0
  145. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  146. package/src/interfaces/member.d.ts +47 -0
  147. package/src/interfaces/member.d.ts.map +1 -0
  148. package/src/interfaces/member.js +3 -0
  149. package/src/interfaces/member.js.map +1 -0
  150. package/src/interfaces/{multi-encrypted-message.ts → multi-encrypted-message.d.ts} +5 -5
  151. package/src/interfaces/multi-encrypted-message.d.ts.map +1 -0
  152. package/src/interfaces/multi-encrypted-message.js +3 -0
  153. package/src/interfaces/multi-encrypted-message.js.map +1 -0
  154. package/src/interfaces/multi-encrypted-parsed-header.d.ts +27 -0
  155. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
  156. package/src/interfaces/multi-encrypted-parsed-header.js +3 -0
  157. package/src/interfaces/multi-encrypted-parsed-header.js.map +1 -0
  158. package/src/interfaces/multi-recipient-chunk.d.ts +26 -0
  159. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  160. package/src/interfaces/multi-recipient-chunk.js +13 -0
  161. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  162. package/src/interfaces/{pbkdf-profiles.ts → pbkdf-profiles.d.ts} +2 -2
  163. package/src/interfaces/pbkdf-profiles.d.ts.map +1 -0
  164. package/src/interfaces/pbkdf-profiles.js +3 -0
  165. package/src/interfaces/pbkdf-profiles.js.map +1 -0
  166. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  167. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  168. package/src/interfaces/pbkdf2-result.js +3 -0
  169. package/src/interfaces/pbkdf2-result.js.map +1 -0
  170. package/src/interfaces/signing-key-private-key-info.d.ts +11 -0
  171. package/src/interfaces/signing-key-private-key-info.d.ts.map +1 -0
  172. package/src/interfaces/signing-key-private-key-info.js +3 -0
  173. package/src/interfaces/signing-key-private-key-info.js.map +1 -0
  174. package/src/interfaces/{simple-keypair-buffer.ts → simple-keypair-buffer.d.ts} +3 -3
  175. package/src/interfaces/simple-keypair-buffer.d.ts.map +1 -0
  176. package/src/interfaces/simple-keypair-buffer.js +3 -0
  177. package/src/interfaces/simple-keypair-buffer.js.map +1 -0
  178. package/src/interfaces/{simple-keypair.ts → simple-keypair.d.ts} +3 -3
  179. package/src/interfaces/simple-keypair.d.ts.map +1 -0
  180. package/src/interfaces/simple-keypair.js +3 -0
  181. package/src/interfaces/simple-keypair.js.map +1 -0
  182. package/src/interfaces/simple-public-key-only-buffer.d.ts +4 -0
  183. package/src/interfaces/simple-public-key-only-buffer.d.ts.map +1 -0
  184. package/src/interfaces/simple-public-key-only-buffer.js +3 -0
  185. package/src/interfaces/simple-public-key-only-buffer.js.map +1 -0
  186. package/src/interfaces/simple-public-key-only.d.ts +4 -0
  187. package/src/interfaces/simple-public-key-only.d.ts.map +1 -0
  188. package/src/interfaces/simple-public-key-only.js +3 -0
  189. package/src/interfaces/simple-public-key-only.js.map +1 -0
  190. package/src/interfaces/single-encrypted-parsed-header.d.ts +35 -0
  191. package/src/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
  192. package/src/interfaces/single-encrypted-parsed-header.js +3 -0
  193. package/src/interfaces/single-encrypted-parsed-header.js.map +1 -0
  194. package/src/interfaces/stream-config.d.ts +6 -0
  195. package/src/interfaces/stream-config.d.ts.map +1 -0
  196. package/src/interfaces/stream-config.js +8 -0
  197. package/src/interfaces/stream-config.js.map +1 -0
  198. package/src/interfaces/stream-progress.d.ts +8 -0
  199. package/src/interfaces/stream-progress.d.ts.map +1 -0
  200. package/src/interfaces/stream-progress.js +3 -0
  201. package/src/interfaces/stream-progress.js.map +1 -0
  202. package/src/interfaces/{wallet-seed.ts → wallet-seed.d.ts} +3 -3
  203. package/src/interfaces/wallet-seed.d.ts.map +1 -0
  204. package/src/interfaces/wallet-seed.js +3 -0
  205. package/src/interfaces/wallet-seed.js.map +1 -0
  206. package/src/interfaces/wrapped-key-consts.d.ts +7 -0
  207. package/src/interfaces/wrapped-key-consts.d.ts.map +1 -0
  208. package/src/interfaces/wrapped-key-consts.js +3 -0
  209. package/src/interfaces/wrapped-key-consts.js.map +1 -0
  210. package/src/lib/crypto-container.d.ts +13 -0
  211. package/src/lib/crypto-container.d.ts.map +1 -0
  212. package/src/lib/crypto-container.js +29 -0
  213. package/src/lib/crypto-container.js.map +1 -0
  214. package/src/lib/{index.ts → index.d.ts} +1 -0
  215. package/src/lib/index.d.ts.map +1 -0
  216. package/src/lib/index.js +7 -0
  217. package/src/lib/index.js.map +1 -0
  218. package/src/lib/invariant-validator.d.ts +62 -0
  219. package/src/lib/invariant-validator.d.ts.map +1 -0
  220. package/src/lib/invariant-validator.js +108 -0
  221. package/src/lib/invariant-validator.js.map +1 -0
  222. package/src/lib/invariants/{index.ts → index.d.ts} +2 -2
  223. package/src/lib/invariants/index.d.ts.map +1 -0
  224. package/src/lib/invariants/index.js +12 -0
  225. package/src/lib/invariants/index.js.map +1 -0
  226. package/src/lib/invariants/recipient-id-consistency.d.ts +22 -0
  227. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  228. package/src/lib/invariants/recipient-id-consistency.js +62 -0
  229. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  230. package/src/member.d.ts +81 -0
  231. package/src/member.d.ts.map +1 -0
  232. package/src/member.js +285 -0
  233. package/src/member.js.map +1 -0
  234. package/src/services/aes-gcm.d.ts +66 -0
  235. package/src/services/aes-gcm.d.ts.map +1 -0
  236. package/src/services/aes-gcm.js +158 -0
  237. package/src/services/aes-gcm.js.map +1 -0
  238. package/src/services/chunk-processor.d.ts +15 -0
  239. package/src/services/chunk-processor.d.ts.map +1 -0
  240. package/src/services/chunk-processor.js +36 -0
  241. package/src/services/chunk-processor.js.map +1 -0
  242. package/src/services/ecies/crypto-core.d.ts +104 -0
  243. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  244. package/src/services/ecies/crypto-core.js +237 -0
  245. package/src/services/ecies/crypto-core.js.map +1 -0
  246. package/src/services/ecies/file.d.ts +30 -0
  247. package/src/services/ecies/file.d.ts.map +1 -0
  248. package/src/services/ecies/file.js +112 -0
  249. package/src/services/ecies/file.js.map +1 -0
  250. package/src/services/ecies/{index.ts → index.d.ts} +1 -0
  251. package/src/services/ecies/index.d.ts.map +1 -0
  252. package/src/services/ecies/index.js +11 -0
  253. package/src/services/ecies/index.js.map +1 -0
  254. package/src/services/ecies/multi-recipient.d.ts +84 -0
  255. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  256. package/src/services/ecies/multi-recipient.js +496 -0
  257. package/src/services/ecies/multi-recipient.js.map +1 -0
  258. package/src/services/ecies/service.d.ts +69 -0
  259. package/src/services/ecies/service.d.ts.map +1 -0
  260. package/src/services/ecies/service.js +144 -0
  261. package/src/services/ecies/service.js.map +1 -0
  262. package/src/services/ecies/signature.d.ts +38 -0
  263. package/src/services/ecies/signature.d.ts.map +1 -0
  264. package/src/services/ecies/signature.js +69 -0
  265. package/src/services/ecies/signature.js.map +1 -0
  266. package/src/services/ecies/single-recipient.d.ts +83 -0
  267. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  268. package/src/services/ecies/single-recipient.js +447 -0
  269. package/src/services/ecies/single-recipient.js.map +1 -0
  270. package/src/services/ecies/utilities.d.ts +33 -0
  271. package/src/services/ecies/utilities.d.ts.map +1 -0
  272. package/src/services/ecies/utilities.js +91 -0
  273. package/src/services/ecies/utilities.js.map +1 -0
  274. package/src/services/encryption-stream.d.ts +33 -0
  275. package/src/services/encryption-stream.d.ts.map +1 -0
  276. package/src/services/encryption-stream.js +207 -0
  277. package/src/services/encryption-stream.js.map +1 -0
  278. package/src/services/{index.ts → index.d.ts} +1 -0
  279. package/src/services/index.d.ts.map +1 -0
  280. package/src/services/index.js +11 -0
  281. package/src/services/index.js.map +1 -0
  282. package/src/services/multi-recipient-processor.d.ts +72 -0
  283. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  284. package/src/services/multi-recipient-processor.js +322 -0
  285. package/src/services/multi-recipient-processor.js.map +1 -0
  286. package/src/services/pbkdf2.d.ts +105 -0
  287. package/src/services/pbkdf2.d.ts.map +1 -0
  288. package/src/services/pbkdf2.js +189 -0
  289. package/src/services/pbkdf2.js.map +1 -0
  290. package/src/services/progress-tracker.d.ts +9 -0
  291. package/src/services/progress-tracker.d.ts.map +1 -0
  292. package/src/services/progress-tracker.js +41 -0
  293. package/src/services/progress-tracker.js.map +1 -0
  294. package/src/test-mocks/index.d.ts +2 -0
  295. package/src/test-mocks/index.d.ts.map +1 -0
  296. package/src/test-mocks/index.js +5 -0
  297. package/src/test-mocks/index.js.map +1 -0
  298. package/src/test-mocks/mock-backend-member.d.ts +71 -0
  299. package/src/test-mocks/mock-backend-member.d.ts.map +1 -0
  300. package/src/test-mocks/mock-backend-member.js +133 -0
  301. package/src/test-mocks/mock-backend-member.js.map +1 -0
  302. package/src/testing.d.ts +2 -0
  303. package/src/testing.d.ts.map +1 -0
  304. package/src/testing.js +6 -0
  305. package/src/testing.js.map +1 -0
  306. package/src/types/id-guards.d.ts +39 -0
  307. package/src/types/id-guards.d.ts.map +1 -0
  308. package/src/types/id-guards.js +91 -0
  309. package/src/types/id-guards.js.map +1 -0
  310. package/src/types/index.d.ts +2 -0
  311. package/src/types/index.d.ts.map +1 -0
  312. package/src/types/index.js +5 -0
  313. package/src/types/index.js.map +1 -0
  314. package/src/{types.ts → types.d.ts} +9 -28
  315. package/src/types.d.ts.map +1 -0
  316. package/src/types.js +6 -0
  317. package/src/types.js.map +1 -0
  318. package/src/utils.d.ts +11 -0
  319. package/src/utils.d.ts.map +1 -0
  320. package/src/utils.js +82 -0
  321. package/src/utils.js.map +1 -0
  322. package/LICENSE +0 -21
  323. package/src/builders/ecies-builder.ts +0 -27
  324. package/src/builders/member-builder.ts +0 -158
  325. package/src/constants.ts +0 -251
  326. package/src/core/errors/crypto-error.ts +0 -10
  327. package/src/core/types/result.ts +0 -3
  328. package/src/enumerations/index.ts +0 -2
  329. package/src/enumerations/pbkdf2-profile.ts +0 -8
  330. package/src/i18n/ecies-i18n-factory.ts +0 -111
  331. package/src/i18n/node-ecies-i18n-setup.ts +0 -56
  332. package/src/i18n/node-keys.ts +0 -69
  333. package/src/i18n/translations/de.ts +0 -54
  334. package/src/i18n/translations/en-GB.ts +0 -83
  335. package/src/i18n/translations/en-US.ts +0 -88
  336. package/src/i18n/translations/es.ts +0 -54
  337. package/src/i18n/translations/fr.ts +0 -54
  338. package/src/i18n/translations/ja.ts +0 -54
  339. package/src/i18n/translations/uk.ts +0 -54
  340. package/src/i18n/translations/zh-cn.ts +0 -54
  341. package/src/interfaces/authenticated-cipher.ts +0 -10
  342. package/src/interfaces/authenticated-decipher.ts +0 -9
  343. package/src/interfaces/backend-member-operational.ts +0 -75
  344. package/src/interfaces/checksum-config.ts +0 -4
  345. package/src/interfaces/checksum-consts.ts +0 -13
  346. package/src/interfaces/constants.ts +0 -54
  347. package/src/interfaces/ecies-consts.ts +0 -99
  348. package/src/interfaces/encrypted-chunk.ts +0 -12
  349. package/src/interfaces/encryption-consts.ts +0 -10
  350. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +0 -7
  351. package/src/interfaces/keyring-consts.ts +0 -5
  352. package/src/interfaces/member.ts +0 -76
  353. package/src/interfaces/multi-encrypted-parsed-header.ts +0 -28
  354. package/src/interfaces/multi-recipient-chunk.ts +0 -35
  355. package/src/interfaces/pbkdf2-result.ts +0 -5
  356. package/src/interfaces/signing-key-private-key-info.ts +0 -12
  357. package/src/interfaces/simple-public-key-only-buffer.ts +0 -3
  358. package/src/interfaces/simple-public-key-only.ts +0 -3
  359. package/src/interfaces/single-encrypted-parsed-header.ts +0 -35
  360. package/src/interfaces/stream-config.ts +0 -9
  361. package/src/interfaces/stream-progress.ts +0 -7
  362. package/src/interfaces/wrapped-key-consts.ts +0 -6
  363. package/src/lib/crypto-container.ts +0 -32
  364. package/src/lib/invariant-validator.ts +0 -124
  365. package/src/lib/invariants/recipient-id-consistency.ts +0 -77
  366. package/src/member.ts +0 -511
  367. package/src/services/aes-gcm.ts +0 -260
  368. package/src/services/chunk-processor.ts +0 -47
  369. package/src/services/ecies/crypto-core.ts +0 -319
  370. package/src/services/ecies/file.ts +0 -171
  371. package/src/services/ecies/multi-recipient.ts +0 -782
  372. package/src/services/ecies/service.ts +0 -316
  373. package/src/services/ecies/signature.ts +0 -91
  374. package/src/services/ecies/single-recipient.ts +0 -743
  375. package/src/services/ecies/utilities.ts +0 -128
  376. package/src/services/encryption-stream.ts +0 -432
  377. package/src/services/multi-recipient-processor.ts +0 -505
  378. package/src/services/pbkdf2.ts +0 -304
  379. package/src/services/progress-tracker.ts +0 -43
  380. package/src/test-mocks/index.ts +0 -1
  381. package/src/test-mocks/mock-backend-member.ts +0 -195
  382. package/src/testing.ts +0 -2
  383. package/src/types/id-guards.ts +0 -91
  384. package/src/types/index.ts +0 -1
  385. package/src/utils.ts +0 -124
package/src/member.ts DELETED
@@ -1,511 +0,0 @@
1
- import {
2
- EmailString,
3
- IMemberStorageData,
4
- MemberErrorType,
5
- MemberType,
6
- SecureBuffer,
7
- SecureString,
8
- } from '@digitaldefiance/ecies-lib';
9
- import { Wallet } from '@ethereumjs/wallet';
10
- import { secp256k1 } from 'ethereum-cryptography/secp256k1';
11
- import {
12
- getNodeEciesTranslation,
13
- NodeEciesStringKey,
14
- } from './i18n/ecies-i18n-factory';
15
-
16
- /**
17
- * Custom error classes that work with the plugin i18n system
18
- */
19
- export class NodeMemberError extends Error {
20
- constructor(message: string, public readonly type: MemberErrorType) {
21
- super(message);
22
- this.name = 'NodeMemberError';
23
- }
24
- }
25
-
26
- import { IEncryptedChunk } from './interfaces/encrypted-chunk';
27
- import { IMember } from './interfaces/member';
28
- import { IStreamProgress } from './interfaces/stream-progress';
29
- import { ECIESService } from './services/ecies/service';
30
- import { EncryptionStream } from './services/encryption-stream';
31
- // Removed: import { ServiceProvider } from './services/service.provider';
32
- import { Types } from '@digitaldefiance/mongoose-types';
33
- import { Constants } from './constants';
34
- import { IBackendMemberOperational } from './interfaces/backend-member-operational';
35
- import { SignatureBuffer, toBuffer, toUint8Array } from './types';
36
-
37
- /**
38
- * A member of an ECIES interchange
39
- */
40
- export class Member<
41
- TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer
42
- > implements IMember<TID>, IBackendMemberOperational<TID>
43
- {
44
- private readonly _eciesService: ECIESService;
45
- private readonly _id: TID;
46
- private readonly _type: MemberType;
47
- private readonly _name: string;
48
- private readonly _email: EmailString;
49
- private readonly _publicKey: Buffer;
50
- private readonly _creatorId: TID;
51
- private readonly _dateCreated: Date;
52
- private readonly _dateUpdated: Date;
53
- private _privateKey?: SecureBuffer;
54
- private _wallet?: Wallet;
55
-
56
- constructor(
57
- // Add injected services as parameters
58
- eciesService: ECIESService,
59
- // Original parameters
60
- type: MemberType,
61
- name: string,
62
- email: EmailString,
63
- publicKey: Buffer,
64
- privateKey?: SecureBuffer,
65
- wallet?: Wallet,
66
- id?: TID,
67
- dateCreated?: Date,
68
- dateUpdated?: Date,
69
- creatorId?: TID
70
- ) {
71
- // Assign injected services
72
- this._eciesService = eciesService;
73
- // Assign original parameters
74
- this._type = type;
75
- this._id = id ?? (toBuffer(Constants.idProvider.generate()) as TID);
76
- this._name = name;
77
- if (!this._name || this._name.length == 0) {
78
- throw new NodeMemberError(
79
- getNodeEciesTranslation(
80
- NodeEciesStringKey.Error_Member_MissingMemberName
81
- ),
82
- MemberErrorType.MissingMemberName
83
- );
84
- }
85
- if (this._name.trim() != this._name) {
86
- throw new NodeMemberError(
87
- getNodeEciesTranslation(
88
- NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace
89
- ),
90
- MemberErrorType.InvalidMemberNameWhitespace
91
- );
92
- }
93
- this._email = email;
94
- this._publicKey = publicKey;
95
- this._privateKey = privateKey;
96
- this._wallet = wallet;
97
-
98
- // don't create a new date object with nearly identical values to the existing one
99
- let _now: null | Date = null;
100
- const now = function () {
101
- if (!_now) {
102
- _now = new Date();
103
- }
104
- return _now;
105
- };
106
- this._dateCreated = dateCreated ?? now();
107
- this._dateUpdated = dateUpdated ?? now();
108
- this._creatorId = creatorId ?? this._id;
109
- }
110
-
111
- // Required getters
112
- public get id(): TID {
113
- return this._id;
114
- }
115
- public get type(): MemberType {
116
- return this._type;
117
- }
118
- public get name(): string {
119
- return this._name;
120
- }
121
- public get email(): EmailString {
122
- return this._email;
123
- }
124
- public get publicKey(): Buffer {
125
- return this._publicKey;
126
- }
127
- public get creatorId(): TID {
128
- return this._creatorId;
129
- }
130
- public get dateCreated(): Date {
131
- return this._dateCreated;
132
- }
133
- public get dateUpdated(): Date {
134
- return this._dateUpdated;
135
- }
136
-
137
- // Optional private data getters
138
- public get privateKey(): SecureBuffer | undefined {
139
- return this._privateKey;
140
- }
141
- public get wallet(): Wallet {
142
- if (!this._wallet) {
143
- throw new NodeMemberError(
144
- getNodeEciesTranslation(NodeEciesStringKey.Error_Member_NoWallet),
145
- MemberErrorType.NoWallet
146
- );
147
- }
148
- return this._wallet;
149
- }
150
-
151
- // State getters
152
- public get hasPrivateKey(): boolean {
153
- return this._privateKey !== undefined;
154
- }
155
-
156
- public unloadPrivateKey(): void {
157
- // Do not dispose here; tests expect the same SecureBuffer instance to remain usable
158
- // when reloaded into another member in the same process.
159
- this._privateKey = undefined;
160
- }
161
-
162
- public unloadWallet(): void {
163
- this._wallet = undefined;
164
- }
165
-
166
- public unloadWalletAndPrivateKey(): void {
167
- this.unloadWallet();
168
- this.unloadPrivateKey();
169
- }
170
-
171
- public loadWallet(mnemonic: SecureString): void {
172
- if (this._wallet) {
173
- throw new NodeMemberError(
174
- getNodeEciesTranslation(
175
- NodeEciesStringKey.Error_Member_WalletAlreadyLoaded
176
- ),
177
- MemberErrorType.WalletAlreadyLoaded
178
- );
179
- }
180
- const { wallet } = this._eciesService.walletAndSeedFromMnemonic(mnemonic);
181
- const privateKey = wallet.getPrivateKey();
182
- const publicKey = secp256k1.getPublicKey(privateKey, true);
183
- const publicKeyWithPrefix = Buffer.from(publicKey);
184
-
185
- if (
186
- publicKeyWithPrefix.toString('hex') !== this._publicKey.toString('hex')
187
- ) {
188
- throw new NodeMemberError(
189
- getNodeEciesTranslation(
190
- NodeEciesStringKey.Error_Member_InvalidMnemonic
191
- ),
192
- MemberErrorType.InvalidMnemonic
193
- );
194
- }
195
- this._wallet = wallet;
196
- this._privateKey = new SecureBuffer(privateKey);
197
- }
198
-
199
- /**
200
- * Loads the private key and optionally the voting private key.
201
- *
202
- * @param privateKey The private key to load.
203
- * @param votingPrivateKey The voting private key to load.
204
- */
205
- public loadPrivateKey(privateKey: SecureBuffer): void {
206
- this._privateKey = privateKey;
207
- }
208
-
209
- public sign(data: Buffer): SignatureBuffer {
210
- if (!this._privateKey) {
211
- throw new NodeMemberError(
212
- getNodeEciesTranslation(
213
- NodeEciesStringKey.Error_Member_MissingPrivateKey
214
- ),
215
- MemberErrorType.MissingPrivateKey
216
- );
217
- }
218
- return this._eciesService.signMessage(
219
- Buffer.from(this._privateKey.value),
220
- data
221
- );
222
- }
223
-
224
- public signData(data: Buffer): SignatureBuffer {
225
- if (!this._privateKey) {
226
- throw new NodeMemberError(
227
- getNodeEciesTranslation(
228
- NodeEciesStringKey.Error_Member_MissingPrivateKey
229
- ),
230
- MemberErrorType.MissingPrivateKey
231
- );
232
- }
233
- return this._eciesService.signMessage(
234
- Buffer.from(this._privateKey.value),
235
- data
236
- );
237
- }
238
-
239
- public verify(signature: SignatureBuffer, data: Buffer): boolean {
240
- return this._eciesService.verifyMessage(this._publicKey, data, signature);
241
- }
242
-
243
- public verifySignature(
244
- data: Buffer,
245
- signature: Buffer,
246
- publicKey: Buffer
247
- ): boolean {
248
- return this._eciesService.verifyMessage(
249
- publicKey,
250
- data,
251
- signature as SignatureBuffer
252
- );
253
- }
254
-
255
- private static readonly MAX_ENCRYPTION_SIZE = 1024 * 1024 * 10; // 10MB limit
256
- private static readonly VALID_STRING_REGEX = /^[\x20-\x7E\n\r\t]*$/; // Printable ASCII + common whitespace
257
-
258
- public encryptData(
259
- data: string | Buffer,
260
- recipientPublicKey?: Buffer
261
- ): Buffer {
262
- // Validate input
263
- if (!data) {
264
- throw new NodeMemberError(
265
- getNodeEciesTranslation(
266
- NodeEciesStringKey.Error_Member_MissingEncryptionData
267
- ),
268
- MemberErrorType.MissingEncryptionData
269
- );
270
- }
271
-
272
- // Check size limit
273
- const dataSize = Buffer.isBuffer(data)
274
- ? data.length
275
- : Buffer.byteLength(data);
276
- if (dataSize > Member.MAX_ENCRYPTION_SIZE) {
277
- throw new NodeMemberError(
278
- getNodeEciesTranslation(
279
- NodeEciesStringKey.Error_Member_EncryptionDataTooLarge
280
- ),
281
- MemberErrorType.EncryptionDataTooLarge
282
- );
283
- }
284
-
285
- // Create buffer from data
286
- const bufferData = Buffer.isBuffer(data) ? data : Buffer.from(data);
287
-
288
- // Use recipient public key or self public key
289
- const targetPublicKey = recipientPublicKey || this._publicKey;
290
-
291
- return this._eciesService.encryptSimpleOrSingle(
292
- false,
293
- targetPublicKey,
294
- bufferData
295
- );
296
- }
297
-
298
- public decryptData(encryptedData: Buffer): Buffer {
299
- if (!this._privateKey) {
300
- throw new NodeMemberError(
301
- getNodeEciesTranslation(
302
- NodeEciesStringKey.Error_Member_MissingPrivateKey
303
- ),
304
- MemberErrorType.MissingPrivateKey
305
- );
306
- }
307
- // decryptSingleWithHeader now returns the Buffer directly
308
- return this._eciesService.decryptSimpleOrSingleWithHeader(
309
- false,
310
- Buffer.from(this._privateKey.value),
311
- encryptedData
312
- );
313
- }
314
-
315
- public toJson(): string {
316
- const storage: IMemberStorageData = {
317
- id: Constants.idProvider.serialize(
318
- toUint8Array(this._id as Buffer | Uint8Array | string)
319
- ),
320
- type: this._type,
321
- name: this._name,
322
- email: this._email.toString(),
323
- publicKey: this._publicKey.toString('base64'),
324
- creatorId: Constants.idProvider.serialize(
325
- toUint8Array(this._creatorId as Buffer | Uint8Array | string)
326
- ),
327
- dateCreated: this._dateCreated.toISOString(),
328
- dateUpdated: this._dateUpdated.toISOString(),
329
- };
330
- return JSON.stringify(storage);
331
- }
332
-
333
- public dispose(): void {
334
- // Ensure secret material is zeroized when disposing
335
- try {
336
- this._privateKey?.dispose();
337
- } finally {
338
- this.unloadWalletAndPrivateKey();
339
- }
340
- }
341
-
342
- public async *encryptDataStream(
343
- source: AsyncIterable<Buffer>,
344
- options?: {
345
- recipientPublicKey?: Buffer;
346
- onProgress?: (progress: IStreamProgress) => void;
347
- signal?: AbortSignal;
348
- }
349
- ): AsyncGenerator<IEncryptedChunk, void, unknown> {
350
- const targetPublicKey = options?.recipientPublicKey || this._publicKey;
351
- const stream = new EncryptionStream(this._eciesService);
352
-
353
- for await (const chunk of stream.encryptStream(source, targetPublicKey, {
354
- onProgress: options?.onProgress,
355
- signal: options?.signal,
356
- })) {
357
- yield chunk;
358
- }
359
- }
360
-
361
- public async *decryptDataStream(
362
- source: AsyncIterable<Buffer>,
363
- options?: {
364
- onProgress?: (progress: IStreamProgress) => void;
365
- signal?: AbortSignal;
366
- }
367
- ): AsyncGenerator<Buffer, void, unknown> {
368
- if (!this._privateKey) {
369
- throw new NodeMemberError(
370
- getNodeEciesTranslation(
371
- NodeEciesStringKey.Error_Member_MissingPrivateKey
372
- ),
373
- MemberErrorType.MissingPrivateKey
374
- );
375
- }
376
-
377
- const stream = new EncryptionStream(this._eciesService);
378
-
379
- for await (const chunk of stream.decryptStream(
380
- source,
381
- Buffer.from(this._privateKey.value),
382
- {
383
- onProgress: options?.onProgress,
384
- signal: options?.signal,
385
- }
386
- )) {
387
- yield chunk;
388
- }
389
- }
390
-
391
- public static fromJson(
392
- json: string,
393
- // Add injected services as parameters
394
- eciesService: ECIESService
395
- ): Member {
396
- const storage: IMemberStorageData = JSON.parse(json);
397
- const email = new EmailString(storage.email);
398
-
399
- // Pass injected services to constructor
400
- const dateCreated = new Date(storage.dateCreated);
401
- return new Member(
402
- eciesService,
403
- storage.type,
404
- storage.name,
405
- email,
406
- Buffer.from(storage.publicKey, 'base64'),
407
- undefined,
408
- undefined,
409
- Buffer.from(Constants.idProvider.deserialize(storage.id)),
410
- dateCreated,
411
- new Date(storage.dateUpdated),
412
- Buffer.from(Constants.idProvider.deserialize(storage.creatorId))
413
- );
414
- }
415
-
416
- public static fromMnemonic(
417
- mnemonic: SecureString,
418
- eciesService: ECIESService,
419
- memberType = MemberType.User,
420
- name = 'Test User',
421
- email = new EmailString('test@example.com')
422
- ): Member {
423
- const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
424
- const privateKey = wallet.getPrivateKey();
425
- const publicKey = secp256k1.getPublicKey(privateKey, true);
426
- const publicKeyWithPrefix = Buffer.from(publicKey);
427
-
428
- return new Member(
429
- eciesService,
430
- memberType,
431
- name,
432
- email,
433
- publicKeyWithPrefix,
434
- new SecureBuffer(privateKey),
435
- wallet
436
- );
437
- }
438
-
439
- public static newMember(
440
- // Add injected services as parameters
441
- eciesService: ECIESService,
442
- // Original parameters
443
- type: MemberType,
444
- name: string,
445
- email: EmailString,
446
- forceMnemonic?: SecureString,
447
- createdBy?: Buffer
448
- ): { member: Member; mnemonic: SecureString } {
449
- // Validate inputs first
450
- if (!name || name.length == 0) {
451
- throw new NodeMemberError(
452
- getNodeEciesTranslation(
453
- NodeEciesStringKey.Error_Member_MissingMemberName
454
- ),
455
- MemberErrorType.MissingMemberName
456
- );
457
- }
458
- if (name.trim() != name) {
459
- throw new NodeMemberError(
460
- getNodeEciesTranslation(
461
- NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace
462
- ),
463
- MemberErrorType.InvalidMemberNameWhitespace
464
- );
465
- }
466
- if (!email || email.toString().length == 0) {
467
- throw new NodeMemberError(
468
- getNodeEciesTranslation(NodeEciesStringKey.Error_Member_MissingEmail),
469
- MemberErrorType.MissingEmail
470
- );
471
- }
472
- if (email.toString().trim() != email.toString()) {
473
- throw new NodeMemberError(
474
- getNodeEciesTranslation(
475
- NodeEciesStringKey.Error_Member_InvalidEmailWhitespace
476
- ),
477
- MemberErrorType.InvalidEmailWhitespace
478
- );
479
- }
480
-
481
- // Use injected services
482
- const mnemonic = forceMnemonic ?? eciesService.generateNewMnemonic();
483
- const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
484
-
485
- // Get private key from wallet
486
- const privateKey = wallet.getPrivateKey();
487
- // Get public key with 0x04 prefix
488
- const publicKey = secp256k1.getPublicKey(privateKey, true);
489
- const publicKeyWithPrefix = Buffer.from(publicKey);
490
-
491
- const newId = Buffer.from(Constants.idProvider.generate());
492
- const dateCreated = new Date();
493
- return {
494
- // Pass injected services to constructor
495
- member: new Member(
496
- eciesService,
497
- type,
498
- name,
499
- email,
500
- publicKeyWithPrefix,
501
- new SecureBuffer(privateKey),
502
- wallet,
503
- newId,
504
- dateCreated,
505
- dateCreated,
506
- createdBy ?? newId
507
- ),
508
- mnemonic,
509
- };
510
- }
511
- }