@digitaldefiance/node-ecies-lib 4.4.2 → 4.4.3

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/LICENSE +21 -0
  2. package/package.json +10 -6
  3. package/src/builders/ecies-builder.ts +27 -0
  4. package/src/builders/{index.d.ts → index.ts} +0 -1
  5. package/src/builders/member-builder.ts +158 -0
  6. package/src/constants.ts +251 -0
  7. package/src/core/errors/crypto-error.ts +10 -0
  8. package/src/core/{index.d.ts → index.ts} +0 -1
  9. package/src/core/types/result.ts +3 -0
  10. package/src/enumerations/index.ts +2 -0
  11. package/src/enumerations/pbkdf2-profile.ts +8 -0
  12. package/src/i18n/ecies-i18n-factory.ts +111 -0
  13. package/src/i18n/{index.d.ts → index.ts} +3 -1
  14. package/src/i18n/node-ecies-i18n-setup.ts +56 -0
  15. package/src/i18n/node-keys.ts +69 -0
  16. package/src/i18n/translations/de.ts +54 -0
  17. package/src/i18n/translations/en-GB.ts +83 -0
  18. package/src/i18n/translations/en-US.ts +88 -0
  19. package/src/i18n/translations/es.ts +54 -0
  20. package/src/i18n/translations/fr.ts +54 -0
  21. package/src/i18n/translations/{index.d.ts → index.ts} +0 -1
  22. package/src/i18n/translations/ja.ts +54 -0
  23. package/src/i18n/translations/uk.ts +54 -0
  24. package/src/i18n/translations/zh-cn.ts +54 -0
  25. package/src/{index.d.ts → index.ts} +5 -1
  26. package/src/interfaces/authenticated-cipher.ts +10 -0
  27. package/src/interfaces/authenticated-decipher.ts +9 -0
  28. package/src/interfaces/backend-member-operational.ts +75 -0
  29. package/src/interfaces/checksum-config.ts +4 -0
  30. package/src/interfaces/checksum-consts.ts +13 -0
  31. package/src/interfaces/constants.ts +54 -0
  32. package/src/interfaces/ecies-consts.ts +99 -0
  33. package/src/interfaces/encrypted-chunk.ts +12 -0
  34. package/src/interfaces/encryption-consts.ts +10 -0
  35. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  36. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +7 -0
  37. package/src/interfaces/keyring-consts.ts +5 -0
  38. package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
  39. package/src/interfaces/member.ts +76 -0
  40. package/src/interfaces/{multi-encrypted-message.d.ts → multi-encrypted-message.ts} +5 -5
  41. package/src/interfaces/multi-encrypted-parsed-header.ts +28 -0
  42. package/src/interfaces/multi-recipient-chunk.ts +35 -0
  43. package/src/interfaces/{pbkdf-profiles.d.ts → pbkdf-profiles.ts} +2 -2
  44. package/src/interfaces/pbkdf2-result.ts +5 -0
  45. package/src/interfaces/signing-key-private-key-info.ts +12 -0
  46. package/src/interfaces/{simple-keypair-buffer.d.ts → simple-keypair-buffer.ts} +3 -3
  47. package/src/interfaces/{simple-keypair.d.ts → simple-keypair.ts} +3 -3
  48. package/src/interfaces/simple-public-key-only-buffer.ts +3 -0
  49. package/src/interfaces/simple-public-key-only.ts +3 -0
  50. package/src/interfaces/single-encrypted-parsed-header.ts +35 -0
  51. package/src/interfaces/stream-config.ts +9 -0
  52. package/src/interfaces/stream-progress.ts +7 -0
  53. package/src/interfaces/{wallet-seed.d.ts → wallet-seed.ts} +3 -3
  54. package/src/interfaces/wrapped-key-consts.ts +6 -0
  55. package/src/lib/crypto-container.ts +32 -0
  56. package/src/lib/{index.d.ts → index.ts} +0 -1
  57. package/src/lib/invariant-validator.ts +124 -0
  58. package/src/lib/invariants/{index.d.ts → index.ts} +2 -2
  59. package/src/lib/invariants/recipient-id-consistency.ts +77 -0
  60. package/src/member.ts +511 -0
  61. package/src/services/aes-gcm.ts +260 -0
  62. package/src/services/chunk-processor.ts +47 -0
  63. package/src/services/ecies/crypto-core.ts +319 -0
  64. package/src/services/ecies/file.ts +171 -0
  65. package/src/services/ecies/{index.d.ts → index.ts} +0 -1
  66. package/src/services/ecies/multi-recipient.ts +782 -0
  67. package/src/services/ecies/service.ts +316 -0
  68. package/src/services/ecies/signature.ts +91 -0
  69. package/src/services/ecies/single-recipient.ts +743 -0
  70. package/src/services/ecies/utilities.ts +128 -0
  71. package/src/services/encryption-stream.ts +432 -0
  72. package/src/services/{index.d.ts → index.ts} +0 -1
  73. package/src/services/multi-recipient-processor.ts +505 -0
  74. package/src/services/pbkdf2.ts +304 -0
  75. package/src/services/progress-tracker.ts +43 -0
  76. package/src/test-mocks/index.ts +1 -0
  77. package/src/test-mocks/mock-backend-member.ts +195 -0
  78. package/src/testing.ts +2 -0
  79. package/src/types/id-guards.ts +91 -0
  80. package/src/types/index.ts +1 -0
  81. package/src/{types.d.ts → types.ts} +28 -9
  82. package/src/utils.ts +124 -0
  83. package/src/builders/ecies-builder.d.ts +0 -11
  84. package/src/builders/ecies-builder.d.ts.map +0 -1
  85. package/src/builders/ecies-builder.js +0 -26
  86. package/src/builders/ecies-builder.js.map +0 -1
  87. package/src/builders/index.d.ts.map +0 -1
  88. package/src/builders/index.js +0 -6
  89. package/src/builders/index.js.map +0 -1
  90. package/src/builders/member-builder.d.ts +0 -47
  91. package/src/builders/member-builder.d.ts.map +0 -1
  92. package/src/builders/member-builder.js +0 -99
  93. package/src/builders/member-builder.js.map +0 -1
  94. package/src/constants.d.ts +0 -38
  95. package/src/constants.d.ts.map +0 -1
  96. package/src/constants.js +0 -183
  97. package/src/constants.js.map +0 -1
  98. package/src/core/errors/crypto-error.d.ts +0 -6
  99. package/src/core/errors/crypto-error.d.ts.map +0 -1
  100. package/src/core/errors/crypto-error.js +0 -15
  101. package/src/core/errors/crypto-error.js.map +0 -1
  102. package/src/core/index.d.ts.map +0 -1
  103. package/src/core/index.js +0 -6
  104. package/src/core/index.js.map +0 -1
  105. package/src/core/types/result.d.ts +0 -8
  106. package/src/core/types/result.d.ts.map +0 -1
  107. package/src/core/types/result.js +0 -3
  108. package/src/core/types/result.js.map +0 -1
  109. package/src/enumerations/index.d.ts +0 -2
  110. package/src/enumerations/index.d.ts.map +0 -1
  111. package/src/enumerations/index.js +0 -5
  112. package/src/enumerations/index.js.map +0 -1
  113. package/src/enumerations/pbkdf2-profile.d.ts +0 -9
  114. package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
  115. package/src/enumerations/pbkdf2-profile.js +0 -13
  116. package/src/enumerations/pbkdf2-profile.js.map +0 -1
  117. package/src/i18n/ecies-i18n-factory.d.ts +0 -28
  118. package/src/i18n/ecies-i18n-factory.d.ts.map +0 -1
  119. package/src/i18n/ecies-i18n-factory.js +0 -89
  120. package/src/i18n/ecies-i18n-factory.js.map +0 -1
  121. package/src/i18n/index.d.ts.map +0 -1
  122. package/src/i18n/index.js +0 -8
  123. package/src/i18n/index.js.map +0 -1
  124. package/src/i18n/node-ecies-i18n-setup.d.ts +0 -5
  125. package/src/i18n/node-ecies-i18n-setup.d.ts.map +0 -1
  126. package/src/i18n/node-ecies-i18n-setup.js +0 -46
  127. package/src/i18n/node-ecies-i18n-setup.js.map +0 -1
  128. package/src/i18n/node-keys.d.ts +0 -57
  129. package/src/i18n/node-keys.d.ts.map +0 -1
  130. package/src/i18n/node-keys.js +0 -67
  131. package/src/i18n/node-keys.js.map +0 -1
  132. package/src/i18n/translations/de.d.ts +0 -3
  133. package/src/i18n/translations/de.d.ts.map +0 -1
  134. package/src/i18n/translations/de.js +0 -57
  135. package/src/i18n/translations/de.js.map +0 -1
  136. package/src/i18n/translations/en-GB.d.ts +0 -3
  137. package/src/i18n/translations/en-GB.d.ts.map +0 -1
  138. package/src/i18n/translations/en-GB.js +0 -61
  139. package/src/i18n/translations/en-GB.js.map +0 -1
  140. package/src/i18n/translations/en-US.d.ts +0 -6
  141. package/src/i18n/translations/en-US.d.ts.map +0 -1
  142. package/src/i18n/translations/en-US.js +0 -65
  143. package/src/i18n/translations/en-US.js.map +0 -1
  144. package/src/i18n/translations/es.d.ts +0 -3
  145. package/src/i18n/translations/es.d.ts.map +0 -1
  146. package/src/i18n/translations/es.js +0 -57
  147. package/src/i18n/translations/es.js.map +0 -1
  148. package/src/i18n/translations/fr.d.ts +0 -3
  149. package/src/i18n/translations/fr.d.ts.map +0 -1
  150. package/src/i18n/translations/fr.js +0 -57
  151. package/src/i18n/translations/fr.js.map +0 -1
  152. package/src/i18n/translations/index.d.ts.map +0 -1
  153. package/src/i18n/translations/index.js +0 -20
  154. package/src/i18n/translations/index.js.map +0 -1
  155. package/src/i18n/translations/ja.d.ts +0 -3
  156. package/src/i18n/translations/ja.d.ts.map +0 -1
  157. package/src/i18n/translations/ja.js +0 -57
  158. package/src/i18n/translations/ja.js.map +0 -1
  159. package/src/i18n/translations/uk.d.ts +0 -3
  160. package/src/i18n/translations/uk.d.ts.map +0 -1
  161. package/src/i18n/translations/uk.js +0 -57
  162. package/src/i18n/translations/uk.js.map +0 -1
  163. package/src/i18n/translations/zh-cn.d.ts +0 -3
  164. package/src/i18n/translations/zh-cn.d.ts.map +0 -1
  165. package/src/i18n/translations/zh-cn.js +0 -57
  166. package/src/i18n/translations/zh-cn.js.map +0 -1
  167. package/src/index.d.ts.map +0 -1
  168. package/src/index.js +0 -31
  169. package/src/index.js.map +0 -1
  170. package/src/interfaces/authenticated-cipher.d.ts +0 -12
  171. package/src/interfaces/authenticated-cipher.d.ts.map +0 -1
  172. package/src/interfaces/authenticated-cipher.js +0 -3
  173. package/src/interfaces/authenticated-cipher.js.map +0 -1
  174. package/src/interfaces/authenticated-decipher.d.ts +0 -11
  175. package/src/interfaces/authenticated-decipher.d.ts.map +0 -1
  176. package/src/interfaces/authenticated-decipher.js +0 -3
  177. package/src/interfaces/authenticated-decipher.js.map +0 -1
  178. package/src/interfaces/backend-member-operational.d.ts +0 -48
  179. package/src/interfaces/backend-member-operational.d.ts.map +0 -1
  180. package/src/interfaces/backend-member-operational.js +0 -3
  181. package/src/interfaces/backend-member-operational.js.map +0 -1
  182. package/src/interfaces/checksum-config.d.ts +0 -5
  183. package/src/interfaces/checksum-config.d.ts.map +0 -1
  184. package/src/interfaces/checksum-config.js +0 -3
  185. package/src/interfaces/checksum-config.js.map +0 -1
  186. package/src/interfaces/checksum-consts.d.ts +0 -11
  187. package/src/interfaces/checksum-consts.d.ts.map +0 -1
  188. package/src/interfaces/checksum-consts.js +0 -3
  189. package/src/interfaces/checksum-consts.js.map +0 -1
  190. package/src/interfaces/constants.d.ts +0 -52
  191. package/src/interfaces/constants.d.ts.map +0 -1
  192. package/src/interfaces/constants.js +0 -3
  193. package/src/interfaces/constants.js.map +0 -1
  194. package/src/interfaces/ecies-consts.d.ts +0 -88
  195. package/src/interfaces/ecies-consts.d.ts.map +0 -1
  196. package/src/interfaces/ecies-consts.js +0 -3
  197. package/src/interfaces/ecies-consts.js.map +0 -1
  198. package/src/interfaces/encrypted-chunk.d.ts +0 -12
  199. package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
  200. package/src/interfaces/encrypted-chunk.js +0 -3
  201. package/src/interfaces/encrypted-chunk.js.map +0 -1
  202. package/src/interfaces/encryption-consts.d.ts +0 -11
  203. package/src/interfaces/encryption-consts.d.ts.map +0 -1
  204. package/src/interfaces/encryption-consts.js +0 -3
  205. package/src/interfaces/encryption-consts.js.map +0 -1
  206. package/src/interfaces/index.d.ts.map +0 -1
  207. package/src/interfaces/index.js +0 -30
  208. package/src/interfaces/index.js.map +0 -1
  209. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +0 -6
  210. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +0 -1
  211. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +0 -3
  212. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +0 -1
  213. package/src/interfaces/keyring-consts.d.ts +0 -6
  214. package/src/interfaces/keyring-consts.d.ts.map +0 -1
  215. package/src/interfaces/keyring-consts.js +0 -3
  216. package/src/interfaces/keyring-consts.js.map +0 -1
  217. package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
  218. package/src/interfaces/member-with-mnemonic.js +0 -3
  219. package/src/interfaces/member-with-mnemonic.js.map +0 -1
  220. package/src/interfaces/member.d.ts +0 -47
  221. package/src/interfaces/member.d.ts.map +0 -1
  222. package/src/interfaces/member.js +0 -3
  223. package/src/interfaces/member.js.map +0 -1
  224. package/src/interfaces/multi-encrypted-message.d.ts.map +0 -1
  225. package/src/interfaces/multi-encrypted-message.js +0 -3
  226. package/src/interfaces/multi-encrypted-message.js.map +0 -1
  227. package/src/interfaces/multi-encrypted-parsed-header.d.ts +0 -27
  228. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +0 -1
  229. package/src/interfaces/multi-encrypted-parsed-header.js +0 -3
  230. package/src/interfaces/multi-encrypted-parsed-header.js.map +0 -1
  231. package/src/interfaces/multi-recipient-chunk.d.ts +0 -26
  232. package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
  233. package/src/interfaces/multi-recipient-chunk.js +0 -13
  234. package/src/interfaces/multi-recipient-chunk.js.map +0 -1
  235. package/src/interfaces/pbkdf-profiles.d.ts.map +0 -1
  236. package/src/interfaces/pbkdf-profiles.js +0 -3
  237. package/src/interfaces/pbkdf-profiles.js.map +0 -1
  238. package/src/interfaces/pbkdf2-result.d.ts +0 -6
  239. package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
  240. package/src/interfaces/pbkdf2-result.js +0 -3
  241. package/src/interfaces/pbkdf2-result.js.map +0 -1
  242. package/src/interfaces/signing-key-private-key-info.d.ts +0 -11
  243. package/src/interfaces/signing-key-private-key-info.d.ts.map +0 -1
  244. package/src/interfaces/signing-key-private-key-info.js +0 -3
  245. package/src/interfaces/signing-key-private-key-info.js.map +0 -1
  246. package/src/interfaces/simple-keypair-buffer.d.ts.map +0 -1
  247. package/src/interfaces/simple-keypair-buffer.js +0 -3
  248. package/src/interfaces/simple-keypair-buffer.js.map +0 -1
  249. package/src/interfaces/simple-keypair.d.ts.map +0 -1
  250. package/src/interfaces/simple-keypair.js +0 -3
  251. package/src/interfaces/simple-keypair.js.map +0 -1
  252. package/src/interfaces/simple-public-key-only-buffer.d.ts +0 -4
  253. package/src/interfaces/simple-public-key-only-buffer.d.ts.map +0 -1
  254. package/src/interfaces/simple-public-key-only-buffer.js +0 -3
  255. package/src/interfaces/simple-public-key-only-buffer.js.map +0 -1
  256. package/src/interfaces/simple-public-key-only.d.ts +0 -4
  257. package/src/interfaces/simple-public-key-only.d.ts.map +0 -1
  258. package/src/interfaces/simple-public-key-only.js +0 -3
  259. package/src/interfaces/simple-public-key-only.js.map +0 -1
  260. package/src/interfaces/single-encrypted-parsed-header.d.ts +0 -35
  261. package/src/interfaces/single-encrypted-parsed-header.d.ts.map +0 -1
  262. package/src/interfaces/single-encrypted-parsed-header.js +0 -3
  263. package/src/interfaces/single-encrypted-parsed-header.js.map +0 -1
  264. package/src/interfaces/stream-config.d.ts +0 -6
  265. package/src/interfaces/stream-config.d.ts.map +0 -1
  266. package/src/interfaces/stream-config.js +0 -8
  267. package/src/interfaces/stream-config.js.map +0 -1
  268. package/src/interfaces/stream-progress.d.ts +0 -8
  269. package/src/interfaces/stream-progress.d.ts.map +0 -1
  270. package/src/interfaces/stream-progress.js +0 -3
  271. package/src/interfaces/stream-progress.js.map +0 -1
  272. package/src/interfaces/wallet-seed.d.ts.map +0 -1
  273. package/src/interfaces/wallet-seed.js +0 -3
  274. package/src/interfaces/wallet-seed.js.map +0 -1
  275. package/src/interfaces/wrapped-key-consts.d.ts +0 -7
  276. package/src/interfaces/wrapped-key-consts.d.ts.map +0 -1
  277. package/src/interfaces/wrapped-key-consts.js +0 -3
  278. package/src/interfaces/wrapped-key-consts.js.map +0 -1
  279. package/src/lib/crypto-container.d.ts +0 -13
  280. package/src/lib/crypto-container.d.ts.map +0 -1
  281. package/src/lib/crypto-container.js +0 -29
  282. package/src/lib/crypto-container.js.map +0 -1
  283. package/src/lib/index.d.ts.map +0 -1
  284. package/src/lib/index.js +0 -7
  285. package/src/lib/index.js.map +0 -1
  286. package/src/lib/invariant-validator.d.ts +0 -62
  287. package/src/lib/invariant-validator.d.ts.map +0 -1
  288. package/src/lib/invariant-validator.js +0 -108
  289. package/src/lib/invariant-validator.js.map +0 -1
  290. package/src/lib/invariants/index.d.ts.map +0 -1
  291. package/src/lib/invariants/index.js +0 -12
  292. package/src/lib/invariants/index.js.map +0 -1
  293. package/src/lib/invariants/recipient-id-consistency.d.ts +0 -22
  294. package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
  295. package/src/lib/invariants/recipient-id-consistency.js +0 -62
  296. package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
  297. package/src/member.d.ts +0 -81
  298. package/src/member.d.ts.map +0 -1
  299. package/src/member.js +0 -285
  300. package/src/member.js.map +0 -1
  301. package/src/services/aes-gcm.d.ts +0 -66
  302. package/src/services/aes-gcm.d.ts.map +0 -1
  303. package/src/services/aes-gcm.js +0 -158
  304. package/src/services/aes-gcm.js.map +0 -1
  305. package/src/services/chunk-processor.d.ts +0 -15
  306. package/src/services/chunk-processor.d.ts.map +0 -1
  307. package/src/services/chunk-processor.js +0 -36
  308. package/src/services/chunk-processor.js.map +0 -1
  309. package/src/services/ecies/crypto-core.d.ts +0 -104
  310. package/src/services/ecies/crypto-core.d.ts.map +0 -1
  311. package/src/services/ecies/crypto-core.js +0 -237
  312. package/src/services/ecies/crypto-core.js.map +0 -1
  313. package/src/services/ecies/file.d.ts +0 -30
  314. package/src/services/ecies/file.d.ts.map +0 -1
  315. package/src/services/ecies/file.js +0 -112
  316. package/src/services/ecies/file.js.map +0 -1
  317. package/src/services/ecies/index.d.ts.map +0 -1
  318. package/src/services/ecies/index.js +0 -11
  319. package/src/services/ecies/index.js.map +0 -1
  320. package/src/services/ecies/multi-recipient.d.ts +0 -84
  321. package/src/services/ecies/multi-recipient.d.ts.map +0 -1
  322. package/src/services/ecies/multi-recipient.js +0 -496
  323. package/src/services/ecies/multi-recipient.js.map +0 -1
  324. package/src/services/ecies/service.d.ts +0 -69
  325. package/src/services/ecies/service.d.ts.map +0 -1
  326. package/src/services/ecies/service.js +0 -144
  327. package/src/services/ecies/service.js.map +0 -1
  328. package/src/services/ecies/signature.d.ts +0 -38
  329. package/src/services/ecies/signature.d.ts.map +0 -1
  330. package/src/services/ecies/signature.js +0 -69
  331. package/src/services/ecies/signature.js.map +0 -1
  332. package/src/services/ecies/single-recipient.d.ts +0 -83
  333. package/src/services/ecies/single-recipient.d.ts.map +0 -1
  334. package/src/services/ecies/single-recipient.js +0 -447
  335. package/src/services/ecies/single-recipient.js.map +0 -1
  336. package/src/services/ecies/utilities.d.ts +0 -33
  337. package/src/services/ecies/utilities.d.ts.map +0 -1
  338. package/src/services/ecies/utilities.js +0 -91
  339. package/src/services/ecies/utilities.js.map +0 -1
  340. package/src/services/encryption-stream.d.ts +0 -33
  341. package/src/services/encryption-stream.d.ts.map +0 -1
  342. package/src/services/encryption-stream.js +0 -207
  343. package/src/services/encryption-stream.js.map +0 -1
  344. package/src/services/index.d.ts.map +0 -1
  345. package/src/services/index.js +0 -11
  346. package/src/services/index.js.map +0 -1
  347. package/src/services/multi-recipient-processor.d.ts +0 -72
  348. package/src/services/multi-recipient-processor.d.ts.map +0 -1
  349. package/src/services/multi-recipient-processor.js +0 -322
  350. package/src/services/multi-recipient-processor.js.map +0 -1
  351. package/src/services/pbkdf2.d.ts +0 -105
  352. package/src/services/pbkdf2.d.ts.map +0 -1
  353. package/src/services/pbkdf2.js +0 -189
  354. package/src/services/pbkdf2.js.map +0 -1
  355. package/src/services/progress-tracker.d.ts +0 -9
  356. package/src/services/progress-tracker.d.ts.map +0 -1
  357. package/src/services/progress-tracker.js +0 -41
  358. package/src/services/progress-tracker.js.map +0 -1
  359. package/src/test-mocks/index.d.ts +0 -2
  360. package/src/test-mocks/index.d.ts.map +0 -1
  361. package/src/test-mocks/index.js +0 -5
  362. package/src/test-mocks/index.js.map +0 -1
  363. package/src/test-mocks/mock-backend-member.d.ts +0 -71
  364. package/src/test-mocks/mock-backend-member.d.ts.map +0 -1
  365. package/src/test-mocks/mock-backend-member.js +0 -133
  366. package/src/test-mocks/mock-backend-member.js.map +0 -1
  367. package/src/testing.d.ts +0 -2
  368. package/src/testing.d.ts.map +0 -1
  369. package/src/testing.js +0 -6
  370. package/src/testing.js.map +0 -1
  371. package/src/types/id-guards.d.ts +0 -39
  372. package/src/types/id-guards.d.ts.map +0 -1
  373. package/src/types/id-guards.js +0 -91
  374. package/src/types/id-guards.js.map +0 -1
  375. package/src/types/index.d.ts +0 -2
  376. package/src/types/index.d.ts.map +0 -1
  377. package/src/types/index.js +0 -5
  378. package/src/types/index.js.map +0 -1
  379. package/src/types.d.ts.map +0 -1
  380. package/src/types.js +0 -6
  381. package/src/types.js.map +0 -1
  382. package/src/utils.d.ts +0 -11
  383. package/src/utils.d.ts.map +0 -1
  384. package/src/utils.js +0 -82
  385. package/src/utils.js.map +0 -1
@@ -0,0 +1,171 @@
1
+ import * as fs from 'fs';
2
+ import { ECIESService } from './service';
3
+
4
+ interface ChunkedFileHeader {
5
+ version: number;
6
+ chunkSize: number;
7
+ totalChunks: number;
8
+ originalSize: number;
9
+ }
10
+
11
+ export class EciesFileService {
12
+ protected readonly eciesService: ECIESService;
13
+ protected readonly userPrivateKey: Buffer;
14
+ protected readonly config: { chunkSize: number; headerSize: number };
15
+
16
+ constructor(
17
+ eciesService: ECIESService,
18
+ userPrivateKey: Buffer,
19
+ config: { chunkSize: number; headerSize: number } = {
20
+ chunkSize: 1024 * 1024, // 1MB chunks
21
+ headerSize: 20,
22
+ },
23
+ ) {
24
+ this.eciesService = eciesService;
25
+ this.userPrivateKey = userPrivateKey;
26
+ this.config = Object.freeze(config);
27
+ }
28
+
29
+ decryptFile(encryptedData: Buffer): Buffer {
30
+ const { header, chunks } = this.parseEncryptedFile(encryptedData);
31
+ const decryptedChunks: Buffer[] = [];
32
+
33
+ for (const chunk of chunks) {
34
+ const decrypted = this.eciesService.decryptSimpleOrSingleWithHeader(
35
+ false,
36
+ this.userPrivateKey,
37
+ chunk,
38
+ );
39
+ decryptedChunks.push(decrypted);
40
+ }
41
+
42
+ const result = Buffer.alloc(header.originalSize);
43
+ let offset = 0;
44
+ for (const chunk of decryptedChunks) {
45
+ const copyLength = Math.min(chunk.length, header.originalSize - offset);
46
+ chunk.copy(result, offset, 0, copyLength);
47
+ offset += copyLength;
48
+ }
49
+ return result;
50
+ }
51
+
52
+ encryptFileFromPath(filePath: string, recipientPublicKey: Buffer): Buffer {
53
+ const stats = fs.statSync(filePath);
54
+ const totalChunks = Math.ceil(stats.size / this.config.chunkSize);
55
+ const header: ChunkedFileHeader = {
56
+ version: 1,
57
+ chunkSize: this.config.chunkSize,
58
+ totalChunks,
59
+ originalSize: stats.size,
60
+ };
61
+
62
+ const headerBytes = this.serializeHeader(header);
63
+ const encryptedHeader = this.eciesService.encryptSimpleOrSingle(
64
+ false,
65
+ recipientPublicKey,
66
+ headerBytes,
67
+ );
68
+
69
+ const chunks: Buffer[] = [encryptedHeader];
70
+ const fd = fs.openSync(filePath, 'r');
71
+
72
+ try {
73
+ for (let i = 0; i < totalChunks; i++) {
74
+ const offset = i * this.config.chunkSize;
75
+ const chunkSize = Math.min(this.config.chunkSize, stats.size - offset);
76
+ const chunkData = Buffer.alloc(chunkSize);
77
+ fs.readSync(fd, chunkData, 0, chunkSize, offset);
78
+
79
+ const encryptedChunk = this.eciesService.encryptSimpleOrSingle(
80
+ false,
81
+ recipientPublicKey,
82
+ chunkData,
83
+ );
84
+ chunks.push(encryptedChunk);
85
+ }
86
+ } finally {
87
+ fs.closeSync(fd);
88
+ }
89
+
90
+ return Buffer.concat(chunks);
91
+ }
92
+
93
+ decryptFileToPath(encryptedData: Buffer, outputPath: string): void {
94
+ const { header, chunks } = this.parseEncryptedFile(encryptedData);
95
+ const fd = fs.openSync(outputPath, 'w');
96
+ let offset = 0;
97
+
98
+ try {
99
+ for (const chunk of chunks) {
100
+ const decrypted = this.eciesService.decryptSimpleOrSingleWithHeader(
101
+ false,
102
+ this.userPrivateKey,
103
+ chunk,
104
+ );
105
+ const writeLength = Math.min(
106
+ decrypted.length,
107
+ header.originalSize - offset,
108
+ );
109
+ fs.writeSync(fd, decrypted, 0, writeLength, offset);
110
+ offset += writeLength;
111
+ }
112
+ } finally {
113
+ fs.closeSync(fd);
114
+ }
115
+ }
116
+
117
+ protected serializeHeader(header: ChunkedFileHeader): Buffer {
118
+ const buffer = Buffer.alloc(this.config.headerSize);
119
+ buffer.writeUInt32BE(header.version, 0);
120
+ buffer.writeUInt32BE(header.chunkSize, 4);
121
+ buffer.writeUInt32BE(header.totalChunks, 8);
122
+ buffer.writeUInt32BE(header.originalSize, 12);
123
+ return buffer;
124
+ }
125
+
126
+ protected deserializeHeader(data: Buffer): ChunkedFileHeader {
127
+ return {
128
+ version: data.readUInt32BE(0),
129
+ chunkSize: data.readUInt32BE(4),
130
+ totalChunks: data.readUInt32BE(8),
131
+ originalSize: data.readUInt32BE(12),
132
+ };
133
+ }
134
+
135
+ protected parseEncryptedFile(encryptedData: Buffer): {
136
+ header: ChunkedFileHeader;
137
+ chunks: Buffer[];
138
+ } {
139
+ const headerLength = this.eciesService.computeEncryptedLengthFromDataLength(
140
+ this.config.headerSize,
141
+ 'single',
142
+ );
143
+
144
+ const encryptedHeader = encryptedData.subarray(0, headerLength);
145
+ const decryptedHeaderBytes =
146
+ this.eciesService.decryptSimpleOrSingleWithHeader(
147
+ false,
148
+ this.userPrivateKey,
149
+ encryptedHeader,
150
+ );
151
+
152
+ const header = this.deserializeHeader(decryptedHeaderBytes);
153
+ const chunks: Buffer[] = [];
154
+ let offset = headerLength;
155
+
156
+ for (let i = 0; i < header.totalChunks; i++) {
157
+ const chunkLength =
158
+ this.eciesService.computeEncryptedLengthFromDataLength(
159
+ i === header.totalChunks - 1
160
+ ? header.originalSize % header.chunkSize || header.chunkSize
161
+ : header.chunkSize,
162
+ 'single',
163
+ );
164
+
165
+ chunks.push(encryptedData.subarray(offset, offset + chunkLength));
166
+ offset += chunkLength;
167
+ }
168
+
169
+ return { header, chunks };
170
+ }
171
+ }
@@ -5,4 +5,3 @@ export * from './service';
5
5
  export * from './signature';
6
6
  export * from './single-recipient';
7
7
  export * from './utilities';
8
- //# sourceMappingURL=index.d.ts.map