@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
@@ -1,128 +0,0 @@
1
- import {
2
- EciesEncryptionType,
3
- ECIESError,
4
- ECIESErrorTypeEnum,
5
- IConstants as IBaseConstants,
6
- IECIESConstants,
7
- } from '@digitaldefiance/ecies-lib';
8
- import { getNodeRuntimeConfiguration } from '../../constants';
9
-
10
- /**
11
- * Utility functions for ECIES operations
12
- */
13
- export class EciesUtilities {
14
- /**
15
- * Computes the encrypted length from the data length.
16
- * @param dataLength - The length of the data.
17
- * @param encryptionMode - The encryption mode (simple, single, multiple).
18
- * @param recipientCount - The number of recipients for multiple encryption mode.
19
- * @param constants - The constants to use for calculations.
20
- * @returns The encrypted length details.
21
- */
22
- public computeEncryptedLengthFromDataLength(
23
- dataLength: number,
24
- encryptionMode: EciesEncryptionType,
25
- recipientCount?: number,
26
- constants: IBaseConstants = getNodeRuntimeConfiguration()
27
- ): number {
28
- if (dataLength < 0) {
29
- throw new ECIESError(ECIESErrorTypeEnum.InvalidDataLength);
30
- }
31
- const eciesDefaults: IECIESConstants = constants.ECIES;
32
-
33
- switch (encryptionMode) {
34
- case 'simple':
35
- // type (1) + public key (65) + IV (16) + auth tag (16) = 98
36
- return dataLength + eciesDefaults.SIMPLE.FIXED_OVERHEAD_SIZE;
37
- case 'single':
38
- // type (1) + public key (65) + IV (16) + auth tag (16) + data length (4) + crc16 (2) = 104
39
- return dataLength + eciesDefaults.SINGLE.FIXED_OVERHEAD_SIZE;
40
- case 'multiple':
41
- // Calculate multiple recipient overhead without instantiating service
42
- return (
43
- dataLength +
44
- this.calculateMultipleRecipientOverhead(
45
- recipientCount ?? 1,
46
- true,
47
- eciesDefaults
48
- )
49
- );
50
- default:
51
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
52
- }
53
- }
54
-
55
- /**
56
- * Calculates the overhead for multiple recipient encryption.
57
- * This is a pure calculation that doesn't require service instantiation.
58
- * Matches the logic in EciesMultiRecipient.calculateECIESMultipleRecipientOverhead.
59
- * @param recipientCount - The number of recipients.
60
- * @param includeMessageOverhead - Whether to include message overhead.
61
- * @param eciesConstants - The ECIES constants to use.
62
- * @returns The overhead in bytes.
63
- */
64
- private calculateMultipleRecipientOverhead(
65
- recipientCount: number,
66
- includeMessageOverhead: boolean,
67
- eciesConstants: IECIESConstants
68
- ): number {
69
- if (recipientCount < 1) {
70
- throw new ECIESError(ECIESErrorTypeEnum.InvalidRecipientCount);
71
- }
72
-
73
- // Calculate encrypted keys size (default assumption: all keys use Simple encryption type)
74
- const encryptedKeysSize =
75
- recipientCount * eciesConstants.MULTIPLE.ENCRYPTED_KEY_SIZE;
76
-
77
- // Base overhead calculation
78
- const baseOverhead =
79
- eciesConstants.VERSION_SIZE +
80
- eciesConstants.CIPHER_SUITE_SIZE +
81
- eciesConstants.ENCRYPTION_TYPE_SIZE +
82
- eciesConstants.MULTIPLE.DATA_LENGTH_SIZE +
83
- eciesConstants.MULTIPLE.RECIPIENT_COUNT_SIZE +
84
- recipientCount * eciesConstants.MULTIPLE.RECIPIENT_ID_SIZE + // recipient ids (dynamic based on ID provider)
85
- encryptedKeysSize; // actual encrypted keys size
86
-
87
- return includeMessageOverhead
88
- ? baseOverhead + eciesConstants.MULTIPLE.FIXED_OVERHEAD_SIZE
89
- : baseOverhead;
90
- }
91
-
92
- /**
93
- * Computes the decrypted length from the encrypted data length.
94
- * @param encryptedDataLength - The length of the encrypted data.
95
- * @param padding - Optional padding value.
96
- * @returns The decrypted length.
97
- */
98
- public computeDecryptedLengthFromEncryptedDataLength(
99
- encryptedDataLength: number,
100
- padding?: number,
101
- constants: IBaseConstants = getNodeRuntimeConfiguration()
102
- ): number {
103
- if (encryptedDataLength < 0) {
104
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptedDataLength);
105
- }
106
-
107
- const { ECIES: eciesDefaults } = constants;
108
- const overhead = eciesDefaults.SINGLE.FIXED_OVERHEAD_SIZE;
109
- const actualPadding = padding !== undefined ? padding : 0;
110
-
111
- const decryptedLength = encryptedDataLength - overhead - actualPadding;
112
- if (decryptedLength < 0) {
113
- throw new ECIESError(
114
- ECIESErrorTypeEnum.InvalidEncryptedDataLength,
115
- undefined,
116
- undefined,
117
- {
118
- encryptedDataLength: String(encryptedDataLength),
119
- overhead: String(overhead),
120
- padding: String(actualPadding),
121
- computedLength: String(decryptedLength),
122
- }
123
- );
124
- }
125
-
126
- return decryptedLength;
127
- }
128
- }
@@ -1,432 +0,0 @@
1
- import {
2
- NodeEciesComponentId,
3
- NodeEciesStringKey,
4
- } from '../i18n/ecies-i18n-factory';
5
- import { getNodeEciesI18nEngine } from '../i18n/node-ecies-i18n-setup';
6
- import { IEncryptedChunk } from '../interfaces/encrypted-chunk';
7
- import { IMultiRecipientChunk } from '../interfaces/multi-recipient-chunk';
8
- import {
9
- DEFAULT_STREAM_CONFIG,
10
- IStreamConfig,
11
- } from '../interfaces/stream-config';
12
- import { IStreamProgress } from '../interfaces/stream-progress';
13
- import { ChunkProcessor } from './chunk-processor';
14
- import { ECIESService } from './ecies/service';
15
- import { MultiRecipientProcessor } from './multi-recipient-processor';
16
- import { ProgressTracker } from './progress-tracker';
17
-
18
- export interface IEncryptStreamOptions {
19
- chunkSize?: number;
20
- signal?: AbortSignal;
21
- includeChecksums?: boolean;
22
- onProgress?: (progress: IStreamProgress) => void;
23
- }
24
-
25
- export interface IDecryptStreamOptions {
26
- signal?: AbortSignal;
27
- onProgress?: (progress: IStreamProgress) => void;
28
- }
29
-
30
- export class EncryptionStream {
31
- private readonly processor: ChunkProcessor;
32
- private readonly multiRecipientProcessor: MultiRecipientProcessor;
33
- private readonly engine = getNodeEciesI18nEngine();
34
-
35
- constructor(
36
- private readonly ecies: ECIESService,
37
- private readonly config: IStreamConfig = DEFAULT_STREAM_CONFIG,
38
- processor?: ChunkProcessor,
39
- multiRecipientProcessor?: MultiRecipientProcessor
40
- ) {
41
- // Use injected dependencies or create defaults
42
- this.processor = processor ?? new ChunkProcessor(ecies);
43
- this.multiRecipientProcessor =
44
- multiRecipientProcessor ??
45
- new MultiRecipientProcessor(ecies.core, ecies.core.consts);
46
- }
47
-
48
- public async *encryptStream(
49
- source: AsyncIterable<Buffer>,
50
- publicKey: Buffer,
51
- options: IEncryptStreamOptions = {}
52
- ): AsyncGenerator<IEncryptedChunk, void, unknown> {
53
- if (!publicKey || (publicKey.length !== 65 && publicKey.length !== 33)) {
54
- throw new Error(
55
- this.engine.translate(
56
- NodeEciesComponentId,
57
- NodeEciesStringKey.Error_Stream_InvalidPublicKeyLength
58
- )
59
- );
60
- }
61
-
62
- const chunkSize = options.chunkSize ?? this.config.chunkSize;
63
- const includeChecksums =
64
- options.includeChecksums ?? this.config.includeChecksums;
65
- const signal = options.signal;
66
- const onProgress = options.onProgress;
67
-
68
- let buffer = Buffer.alloc(0);
69
- let chunkIndex = 0;
70
- let lastYieldedChunk: IEncryptedChunk | null = null;
71
- let tracker: ProgressTracker | undefined;
72
- const maxSingleChunk = 100 * 1024 * 1024;
73
-
74
- for await (const data of source) {
75
- if (signal?.aborted) {
76
- throw new Error(
77
- this.engine.translate(
78
- NodeEciesComponentId,
79
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
80
- )
81
- );
82
- }
83
-
84
- if (data.length > maxSingleChunk) {
85
- throw new Error(
86
- this.engine.translate(
87
- NodeEciesComponentId,
88
- NodeEciesStringKey.Error_Stream_BufferOverflow
89
- )
90
- );
91
- }
92
-
93
- buffer = Buffer.concat([buffer, data]);
94
-
95
- if (!tracker && onProgress) {
96
- tracker = new ProgressTracker();
97
- }
98
-
99
- while (buffer.length >= chunkSize) {
100
- if (signal?.aborted) {
101
- throw new Error(
102
- this.engine.translate(
103
- NodeEciesComponentId,
104
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
105
- )
106
- );
107
- }
108
-
109
- const chunkData = buffer.subarray(0, chunkSize);
110
- buffer = buffer.subarray(chunkSize);
111
-
112
- const encryptedChunk = await this.processor.encryptChunk(
113
- chunkData,
114
- publicKey,
115
- chunkIndex++,
116
- false,
117
- includeChecksums
118
- );
119
-
120
- lastYieldedChunk = encryptedChunk;
121
- yield encryptedChunk;
122
-
123
- if (tracker && onProgress) {
124
- onProgress(tracker.update(chunkSize));
125
- }
126
- }
127
- }
128
-
129
- if (buffer.length > 0) {
130
- if (signal?.aborted) {
131
- throw new Error(
132
- this.engine.translate(
133
- NodeEciesComponentId,
134
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
135
- )
136
- );
137
- }
138
-
139
- const encryptedChunk = await this.processor.encryptChunk(
140
- buffer,
141
- publicKey,
142
- chunkIndex,
143
- true,
144
- includeChecksums
145
- );
146
-
147
- yield encryptedChunk;
148
-
149
- if (tracker && onProgress) {
150
- onProgress(tracker.update(buffer.length));
151
- }
152
- } else if (chunkIndex === 0) {
153
- return;
154
- } else if (lastYieldedChunk) {
155
- lastYieldedChunk.isLast = true;
156
- }
157
- }
158
-
159
- public async *encryptStreamMultiple(
160
- source: AsyncIterable<Buffer>,
161
- recipients: Array<{ id: Buffer; publicKey: Buffer }>,
162
- options: IEncryptStreamOptions = {}
163
- ): AsyncGenerator<IMultiRecipientChunk, void, unknown> {
164
- if (recipients.length === 0) {
165
- throw new Error(
166
- this.engine.translate(
167
- NodeEciesComponentId,
168
- NodeEciesStringKey.Error_Stream_AtLeastOneRecipientRequired
169
- )
170
- );
171
- }
172
- if (recipients.length > 65535) {
173
- throw new Error(
174
- this.engine.translate(
175
- NodeEciesComponentId,
176
- NodeEciesStringKey.Error_Stream_MaxRecipientsExceeded
177
- )
178
- );
179
- }
180
-
181
- for (const recipient of recipients) {
182
- if (
183
- !recipient.publicKey ||
184
- (recipient.publicKey.length !== 65 && recipient.publicKey.length !== 33)
185
- ) {
186
- throw new Error(
187
- this.engine.translate(
188
- NodeEciesComponentId,
189
- NodeEciesStringKey.Error_Stream_InvalidRecipientPublicKeyLength
190
- )
191
- );
192
- }
193
- if (
194
- !recipient.id ||
195
- recipient.id.length !==
196
- this.ecies.core.consts.MULTIPLE.RECIPIENT_ID_SIZE
197
- ) {
198
- throw new Error(
199
- this.engine.translate(
200
- NodeEciesComponentId,
201
- NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength
202
- )
203
- );
204
- }
205
- }
206
-
207
- const chunkSize = options.chunkSize ?? this.config.chunkSize;
208
- const signal = options.signal;
209
- const onProgress = options.onProgress;
210
-
211
- const symmetricKey = Buffer.from(require('crypto').randomBytes(32));
212
-
213
- let buffer = Buffer.alloc(0);
214
- let chunkIndex = 0;
215
- let tracker: ProgressTracker | undefined;
216
- const maxSingleChunk = 100 * 1024 * 1024;
217
-
218
- for await (const data of source) {
219
- if (signal?.aborted) {
220
- throw new Error(
221
- this.engine.translate(
222
- NodeEciesComponentId,
223
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
224
- )
225
- );
226
- }
227
-
228
- if (data.length > maxSingleChunk) {
229
- throw new Error(
230
- this.engine.translate(
231
- NodeEciesComponentId,
232
- NodeEciesStringKey.Error_Stream_BufferOverflow
233
- )
234
- );
235
- }
236
-
237
- buffer = Buffer.concat([buffer, data]);
238
-
239
- if (!tracker && onProgress) {
240
- tracker = new ProgressTracker();
241
- }
242
-
243
- while (buffer.length >= chunkSize) {
244
- if (signal?.aborted) {
245
- throw new Error(
246
- this.engine.translate(
247
- NodeEciesComponentId,
248
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
249
- )
250
- );
251
- }
252
-
253
- const chunkData = buffer.subarray(0, chunkSize);
254
- buffer = buffer.subarray(chunkSize);
255
-
256
- const encryptedChunk = await this.multiRecipientProcessor.encryptChunk(
257
- chunkData,
258
- recipients,
259
- chunkIndex++,
260
- false,
261
- symmetricKey
262
- );
263
-
264
- yield encryptedChunk;
265
-
266
- if (tracker && onProgress) {
267
- onProgress(tracker.update(chunkSize));
268
- }
269
- }
270
- }
271
-
272
- if (buffer.length > 0) {
273
- if (signal?.aborted) {
274
- throw new Error(
275
- this.engine.translate(
276
- NodeEciesComponentId,
277
- NodeEciesStringKey.Error_Stream_EncryptionCancelled
278
- )
279
- );
280
- }
281
-
282
- const encryptedChunk = await this.multiRecipientProcessor.encryptChunk(
283
- buffer,
284
- recipients,
285
- chunkIndex,
286
- true,
287
- symmetricKey
288
- );
289
-
290
- yield encryptedChunk;
291
-
292
- if (tracker && onProgress) {
293
- onProgress(tracker.update(buffer.length));
294
- }
295
- }
296
- }
297
-
298
- public async *decryptStream(
299
- source: AsyncIterable<Buffer>,
300
- privateKey: Buffer,
301
- options: IDecryptStreamOptions = {}
302
- ): AsyncGenerator<Buffer, void, unknown> {
303
- if (!privateKey || privateKey.length !== 32) {
304
- throw new Error(
305
- this.engine.translate(
306
- NodeEciesComponentId,
307
- NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength
308
- )
309
- );
310
- }
311
-
312
- const signal = options.signal;
313
- const onProgress = options.onProgress;
314
- let expectedIndex = 0;
315
- let tracker: ProgressTracker | undefined;
316
-
317
- if (onProgress) {
318
- tracker = new ProgressTracker();
319
- }
320
-
321
- for await (const chunkData of source) {
322
- if (signal?.aborted) {
323
- throw new Error(
324
- this.engine.translate(
325
- NodeEciesComponentId,
326
- NodeEciesStringKey.Error_Stream_DecryptionCancelled
327
- )
328
- );
329
- }
330
-
331
- const { data, header } = await this.processor.decryptChunk(
332
- chunkData,
333
- privateKey
334
- );
335
-
336
- if (header.index !== expectedIndex) {
337
- throw new Error(
338
- this.engine.translate(
339
- NodeEciesComponentId,
340
- NodeEciesStringKey.Error_Stream_ChunkSequenceError
341
- )
342
- );
343
- }
344
-
345
- expectedIndex++;
346
- yield data;
347
-
348
- if (tracker && onProgress) {
349
- onProgress(tracker.update(data.length));
350
- }
351
-
352
- const isLast = (header.flags & 0x01) !== 0;
353
- if (isLast) {
354
- break;
355
- }
356
- }
357
- }
358
-
359
- public async *decryptStreamMultiple(
360
- source: AsyncIterable<Buffer>,
361
- recipientId: Buffer,
362
- privateKey: Buffer,
363
- options: IDecryptStreamOptions = {}
364
- ): AsyncGenerator<Buffer, void, unknown> {
365
- if (
366
- !recipientId ||
367
- recipientId.length !== this.ecies.core.consts.MULTIPLE.RECIPIENT_ID_SIZE
368
- ) {
369
- throw new Error(
370
- this.engine.translate(
371
- NodeEciesComponentId,
372
- NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength
373
- )
374
- );
375
- }
376
- if (!privateKey || privateKey.length !== 32) {
377
- throw new Error(
378
- this.engine.translate(
379
- NodeEciesComponentId,
380
- NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength
381
- )
382
- );
383
- }
384
-
385
- const signal = options.signal;
386
- const onProgress = options.onProgress;
387
- let expectedIndex = 0;
388
- let tracker: ProgressTracker | undefined;
389
-
390
- if (onProgress) {
391
- tracker = new ProgressTracker();
392
- }
393
-
394
- for await (const chunkData of source) {
395
- if (signal?.aborted) {
396
- throw new Error(
397
- this.engine.translate(
398
- NodeEciesComponentId,
399
- NodeEciesStringKey.Error_Stream_DecryptionCancelled
400
- )
401
- );
402
- }
403
-
404
- const { data, header } = await this.multiRecipientProcessor.decryptChunk(
405
- chunkData,
406
- recipientId,
407
- privateKey
408
- );
409
-
410
- if (header.chunkIndex !== expectedIndex) {
411
- throw new Error(
412
- this.engine.translate(
413
- NodeEciesComponentId,
414
- NodeEciesStringKey.Error_Stream_ChunkSequenceError
415
- )
416
- );
417
- }
418
-
419
- expectedIndex++;
420
- yield data;
421
-
422
- if (tracker && onProgress) {
423
- onProgress(tracker.update(data.length));
424
- }
425
-
426
- const isLast = (header.flags & 0x01) !== 0;
427
- if (isLast) {
428
- break;
429
- }
430
- }
431
- }
432
- }