@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,99 +0,0 @@
1
- export interface IECIESConsts {
2
- /** The elliptic curve to use for all ECDSA operations */
3
- CURVE_NAME: string;
4
-
5
- /** The primary key derivation path for HD wallets */
6
- PRIMARY_KEY_DERIVATION_PATH: string;
7
-
8
- /** Length of ECDSA signatures in bytes */
9
- SIGNATURE_SIZE: number;
10
-
11
- /** Length of raw public keys in bytes (without 0x04 prefix) */
12
- RAW_PUBLIC_KEY_LENGTH: number;
13
-
14
- /** Length of public keys in bytes (with 0x04 prefix) */
15
- PUBLIC_KEY_LENGTH: number; // RAW_PUBLIC_KEY_LENGTH + 1
16
-
17
- PUBLIC_KEY_MAGIC: number;
18
-
19
- /** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
20
- MNEMONIC_STRENGTH: number;
21
-
22
- /** Symmetric encryption algorithm configuration */
23
- SYMMETRIC: {
24
- ALGORITHM: string;
25
- KEY_BITS: number;
26
- KEY_SIZE: number; // KEY_BITS / 8
27
- MODE: string;
28
- };
29
-
30
- /**
31
- * Length of the initialization vector
32
- */
33
- IV_SIZE: number;
34
- /**
35
- * Length of the authentication tag
36
- */
37
- AUTH_TAG_SIZE: number;
38
-
39
- /**
40
- * Maximum length of the data that can be encrypted
41
- */
42
- MAX_RAW_DATA_SIZE: number;
43
-
44
- SIMPLE: {
45
- /**
46
- * Length of the type (1) + public key (65) + IV (16) + auth tag (16)
47
- */
48
- FIXED_OVERHEAD_SIZE: number;
49
- /**
50
- * Length of the data length (0 for simple encryption)
51
- */
52
- DATA_LENGTH_SIZE: number;
53
- };
54
-
55
- /**
56
- * ECIES single recipient
57
- */
58
- SINGLE: {
59
- /**
60
- * Length of the IV + auth tag + data length + crc16
61
- */
62
- FIXED_OVERHEAD_SIZE: number;
63
- /**
64
- * Length of the data length
65
- */
66
- DATA_LENGTH_SIZE: number;
67
- };
68
-
69
- /**
70
- * ECIES multiple recipient
71
- */
72
- MULTIPLE: {
73
- /**
74
- * Length of the IV + auth tag + data length + recipient count for the overall message
75
- */
76
- FIXED_OVERHEAD_SIZE: number;
77
- /**
78
- * Length of the encrypted key for each recipient
79
- */
80
- ENCRYPTED_KEY_SIZE: number;
81
- /**
82
- * Maximum number of recipients for a single message
83
- * This is limited by the size of the value used to store the recipient count in the header
84
- */
85
- MAX_RECIPIENTS: number;
86
- /**
87
- * Length of the recipient ID
88
- */
89
- RECIPIENT_ID_SIZE: number;
90
- /**
91
- * Length of the recipient count
92
- */
93
- RECIPIENT_COUNT_SIZE: number;
94
- /**
95
- * Length of the data length
96
- */
97
- DATA_LENGTH_SIZE: number;
98
- };
99
- }
@@ -1,12 +0,0 @@
1
- export interface IChunkMetadata {
2
- totalChunks?: number;
3
- originalSize?: number;
4
- recipientCount?: number;
5
- }
6
-
7
- export interface IEncryptedChunk {
8
- index: number;
9
- data: Buffer;
10
- isLast: boolean;
11
- metadata?: IChunkMetadata;
12
- }
@@ -1,10 +0,0 @@
1
- export interface IEncryptionConsts {
2
- /**
3
- * The size of the encryption type in bytes
4
- */
5
- ENCRYPTION_TYPE_SIZE: number;
6
- /**
7
- * The size of the recipient ID in bytes
8
- */
9
- RECIPIENT_ID_SIZE: number;
10
- }
@@ -1,7 +0,0 @@
1
- import type { ISimplePublicKeyOnlyBuffer } from './simple-public-key-only-buffer';
2
-
3
- export interface IKeyPairBufferWithUnEncryptedPrivateKey
4
- extends ISimplePublicKeyOnlyBuffer {
5
- publicKey: Buffer;
6
- privateKey: Buffer;
7
- }
@@ -1,5 +0,0 @@
1
- export interface IKeyringConsts {
2
- ALGORITHM: string;
3
- KEY_BITS: number;
4
- MODE: string;
5
- }
@@ -1,76 +0,0 @@
1
- import type {
2
- EmailString,
3
- MemberType,
4
- SecureBuffer,
5
- SecureString,
6
- } from '@digitaldefiance/ecies-lib';
7
- import type { Wallet } from '@ethereumjs/wallet';
8
- import type { Types } from '@digitaldefiance/mongoose-types';
9
- import type { SignatureBuffer } from '../types';
10
- import type { IEncryptedChunk } from './encrypted-chunk';
11
- import type { IStreamProgress } from './stream-progress';
12
-
13
- /**
14
- * Interface representing a member with cryptographic capabilities.
15
- * This interface defines the contract for member operations without
16
- * referencing concrete class implementations.
17
- */
18
- export interface IMember<
19
- TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer
20
- > {
21
- // Required properties
22
- readonly id: TID;
23
- readonly type: MemberType;
24
- readonly name: string;
25
- readonly email: EmailString;
26
- readonly publicKey: Buffer;
27
- readonly creatorId: TID;
28
- readonly dateCreated: Date;
29
- readonly dateUpdated: Date;
30
-
31
- // Optional private data properties
32
- readonly privateKey: SecureBuffer | undefined;
33
- readonly wallet: Wallet;
34
-
35
- // State properties
36
- readonly hasPrivateKey: boolean;
37
-
38
- // Key management methods
39
- unloadPrivateKey(): void;
40
- unloadWallet(): void;
41
- unloadWalletAndPrivateKey(): void;
42
- loadWallet(mnemonic: SecureString): void;
43
- loadPrivateKey(privateKey: SecureBuffer): void;
44
-
45
- // Cryptographic methods
46
- sign(data: Buffer): SignatureBuffer;
47
- signData(data: Buffer): SignatureBuffer;
48
- verify(signature: SignatureBuffer, data: Buffer): boolean;
49
- verifySignature(data: Buffer, signature: Buffer, publicKey: Buffer): boolean;
50
-
51
- // Encryption/Decryption methods
52
- encryptDataStream(
53
- source: AsyncIterable<Buffer>,
54
- options?: {
55
- recipientPublicKey?: Buffer;
56
- onProgress?: (progress: IStreamProgress) => void;
57
- signal?: AbortSignal;
58
- }
59
- ): AsyncGenerator<IEncryptedChunk, void, unknown>;
60
-
61
- decryptDataStream(
62
- source: AsyncIterable<Buffer>,
63
- options?: {
64
- onProgress?: (progress: IStreamProgress) => void;
65
- signal?: AbortSignal;
66
- }
67
- ): AsyncGenerator<Buffer, void, unknown>;
68
-
69
- encryptData(data: string | Buffer, recipientPublicKey?: Buffer): Buffer;
70
-
71
- decryptData(encryptedData: Buffer): Buffer;
72
-
73
- // Serialization methods
74
- toJson(): string;
75
- dispose(): void;
76
- }
@@ -1,28 +0,0 @@
1
- import { Types } from '@digitaldefiance/mongoose-types';
2
-
3
- export interface IMultiEncryptedParsedHeader {
4
- /**
5
- * The length of the data before encryption
6
- */
7
- readonly dataLength: number;
8
- /**
9
- * The number of recipients
10
- */
11
- readonly recipientCount: number;
12
- /**
13
- * The IDs of the recipients
14
- */
15
- readonly recipientIds: Buffer[];
16
- /**
17
- * An encrypted version of the symmetric key for each recipient
18
- */
19
- readonly recipientKeys: Buffer[];
20
- /**
21
- * The size of the header, up to the encrypted message start (excludes encrypted message IV+auth tag)
22
- */
23
- readonly headerSize: number;
24
- /**
25
- * The ephemeral public key used for encryption
26
- */
27
- readonly ephemeralPublicKey?: Buffer;
28
- }
@@ -1,35 +0,0 @@
1
- export interface IMultiRecipientChunkHeader {
2
- chunkIndex: number;
3
- flags: number;
4
- recipientCount: number;
5
- magic?: number;
6
- version?: number;
7
- originalSize?: number;
8
- encryptedSize?: number;
9
- }
10
-
11
- export interface IMultiRecipientChunk {
12
- header: IMultiRecipientChunkHeader;
13
- data: Buffer;
14
- isLast?: boolean;
15
- recipientCount?: number;
16
- index?: number;
17
- }
18
-
19
- export interface IMultiRecipientConstants {
20
- MAGIC: number;
21
- VERSION: number;
22
- HEADER_SIZE: number;
23
- KEY_SIZE_BYTES: number;
24
- FLAG_IS_LAST: number;
25
- MAX_RECIPIENTS: number;
26
- }
27
-
28
- export const getMultiRecipientConstants = (recipientIdSize: number): IMultiRecipientConstants => ({
29
- MAGIC: 0x45434945, // 'ECIE'
30
- VERSION: 1,
31
- HEADER_SIZE: 64, // Fixed header size before recipient list
32
- KEY_SIZE_BYTES: 2, // Size of the key size field
33
- FLAG_IS_LAST: 1,
34
- MAX_RECIPIENTS: 65535,
35
- });
@@ -1,5 +0,0 @@
1
- export interface IPbkdf2Result {
2
- salt: Buffer;
3
- hash: Buffer;
4
- iterations: number;
5
- }
@@ -1,12 +0,0 @@
1
- import type { ec } from 'elliptic';
2
- import type { IKeyPairBufferWithUnEncryptedPrivateKey } from './keypair-buffer-with-un-encrypted-private-key';
3
-
4
- export interface ISigningKeyPrivateKeyInfo
5
- extends IKeyPairBufferWithUnEncryptedPrivateKey {
6
- keyPair: ec.KeyPair;
7
- publicKey: Buffer;
8
- privateKey: Buffer;
9
- seedHex: string;
10
- entropy: string;
11
- mnemonic: string;
12
- }
@@ -1,3 +0,0 @@
1
- export interface ISimplePublicKeyOnlyBuffer {
2
- publicKey: Buffer;
3
- }
@@ -1,3 +0,0 @@
1
- export interface ISimplePublicKeyOnly {
2
- publicKey: string;
3
- }
@@ -1,35 +0,0 @@
1
- import { EciesEncryptionTypeEnum } from '@digitaldefiance/ecies-lib';
2
-
3
- /**
4
- * Interface for encrypted messages
5
- */
6
- export interface ISingleEncryptedParsedHeader {
7
- /**
8
- * The optional preamble, if specified/relevant
9
- */
10
- readonly preamble?: Buffer;
11
- /**
12
- * The encryption type used to encrypt the data
13
- */
14
- readonly encryptionType: EciesEncryptionTypeEnum;
15
- /**
16
- * The ephemeral public key used to encrypt the data
17
- */
18
- readonly ephemeralPublicKey: Buffer;
19
- /**
20
- * The initialization vector used to encrypt the data
21
- */
22
- readonly iv: Buffer;
23
- /**
24
- * The authentication tag used to encrypt the data
25
- */
26
- readonly authTag: Buffer;
27
- /**
28
- * The length of the encrypted data
29
- */
30
- readonly dataLength: number;
31
- /**
32
- * The size of the encrypted data header
33
- */
34
- readonly headerSize: number;
35
- }
@@ -1,9 +0,0 @@
1
- export interface IStreamConfig {
2
- chunkSize: number;
3
- includeChecksums: boolean;
4
- }
5
-
6
- export const DEFAULT_STREAM_CONFIG: IStreamConfig = {
7
- chunkSize: 65536, // 64KB
8
- includeChecksums: false,
9
- };
@@ -1,7 +0,0 @@
1
- export interface IStreamProgress {
2
- processedBytes: number;
3
- totalBytes: number;
4
- percentComplete: number;
5
- throughputBytesPerSec: number;
6
- estimatedTimeRemainingMs: number;
7
- }
@@ -1,6 +0,0 @@
1
- export interface IWrappedKeyConsts {
2
- SALT_SIZE: number;
3
- IV_SIZE: number;
4
- MASTER_KEY_SIZE: number;
5
- MIN_ITERATIONS: number;
6
- }
@@ -1,32 +0,0 @@
1
- import { ECIESService } from '../services/ecies';
2
- import { Pbkdf2Service } from '../services/pbkdf2';
3
- import { AESGCMService } from '../services/aes-gcm';
4
- import { IConstants } from '../interfaces/constants';
5
- import { Constants } from '../constants';
6
-
7
- export enum CryptoServiceKey {
8
- ECIES = 'ecies',
9
- PBKDF2 = 'pbkdf2',
10
- AES_GCM = 'aes-gcm',
11
- }
12
-
13
- export class CryptoContainer {
14
- private services = new Map<CryptoServiceKey, unknown>();
15
-
16
- private constructor(config: IConstants) {
17
- this.services.set(CryptoServiceKey.ECIES, new ECIESService(undefined, config.ECIES));
18
- this.services.set(
19
- CryptoServiceKey.PBKDF2,
20
- new Pbkdf2Service(config.PBKDF2_PROFILES, config.ECIES, config.PBKDF2)
21
- );
22
- this.services.set(CryptoServiceKey.AES_GCM, new AESGCMService(config));
23
- }
24
-
25
- static create(config: IConstants = Constants): CryptoContainer {
26
- return new CryptoContainer(config);
27
- }
28
-
29
- get<T>(key: CryptoServiceKey): T {
30
- return this.services.get(key) as T;
31
- }
32
- }
@@ -1,124 +0,0 @@
1
- import {
2
- InvariantValidator as BaseInvariantValidator,
3
- IInvariant
4
- } from '@digitaldefiance/ecies-lib';
5
- import { TranslatableGenericError } from '@digitaldefiance/i18n-lib';
6
- import { IConstants } from '../interfaces/constants';
7
- import { RecipientIdConsistencyInvariant } from './invariants/recipient-id-consistency';
8
- import { NodeEciesStringKey, NodeEciesComponentId } from '../i18n/node-keys';
9
- import { getNodeEciesI18nEngine } from '../i18n/node-ecies-i18n-setup';
10
-
11
- /**
12
- * Node.js-specific invariant validator.
13
- *
14
- * Extends the base ecies-lib validator with Node.js-specific invariants.
15
- * Validates configuration consistency to prevent bugs like the 12 vs 32-byte
16
- * recipient ID discrepancy.
17
- *
18
- * @example
19
- * ```typescript
20
- * import { InvariantValidator } from '@digitaldefiance/node-ecies-lib';
21
- * import { MyCustomInvariant } from './my-invariants';
22
- *
23
- * // Register a custom invariant
24
- * InvariantValidator.registerInvariant(new MyCustomInvariant());
25
- *
26
- * // Validate configuration
27
- * InvariantValidator.validateAll(config); // throws if any invariant fails
28
- * ```
29
- */
30
- export class InvariantValidator {
31
- /**
32
- * Node-specific invariants registered by default.
33
- */
34
- private static readonly NODE_DEFAULT_INVARIANTS: IInvariant[] = [
35
- new RecipientIdConsistencyInvariant(),
36
- ];
37
-
38
- private static customInvariants: IInvariant[] = [];
39
-
40
- /**
41
- * Register a custom invariant to be checked during validation.
42
- *
43
- * @param invariant - The invariant to register
44
- */
45
- static registerInvariant(invariant: IInvariant): void {
46
- this.customInvariants.push(invariant);
47
- // Also register with base validator for consistency
48
- BaseInvariantValidator.registerInvariant(invariant);
49
- }
50
-
51
- /**
52
- * Unregister a custom invariant by name.
53
- *
54
- * @param name - The name of the invariant to unregister
55
- * @returns true if the invariant was found and removed, false otherwise
56
- */
57
- static unregisterInvariant(name: string): boolean {
58
- const index = this.customInvariants.findIndex((inv) => inv.name === name);
59
- if (index === -1) {
60
- return false;
61
- }
62
- this.customInvariants.splice(index, 1);
63
- return true;
64
- }
65
-
66
- /**
67
- * Get all registered invariants (default + custom).
68
- */
69
- static getAllInvariants(): readonly IInvariant[] {
70
- return [...this.NODE_DEFAULT_INVARIANTS, ...this.customInvariants];
71
- }
72
-
73
- /**
74
- * Validate all registered invariants against a configuration.
75
- *
76
- * This checks both:
77
- * - Base ecies-lib invariants (via BaseInvariantValidator)
78
- * - Node-specific invariants
79
- *
80
- * @param config - The configuration to validate
81
- * @throws Error if any invariant check fails
82
- */
83
- static validateAll(config: IConstants): void {
84
- const failures: string[] = [];
85
-
86
- // First, validate base ecies-lib invariants, excluding the one we are replacing
87
- const baseInvariants = BaseInvariantValidator.getAllInvariants();
88
- for (const invariant of baseInvariants) {
89
- if (invariant.name === 'RecipientIdConsistency') {
90
- continue;
91
- }
92
- if (!invariant.check(config)) {
93
- failures.push(invariant.errorMessage(config));
94
- }
95
- }
96
-
97
- // Then validate Node-specific invariants
98
- for (const invariant of this.getAllInvariants()) {
99
- if (!invariant.check(config)) {
100
- failures.push(invariant.errorMessage(config));
101
- }
102
- }
103
-
104
- if (failures.length > 0) {
105
- const engine = getNodeEciesI18nEngine();
106
- throw TranslatableGenericError.withEngine(
107
- engine,
108
- NodeEciesComponentId,
109
- NodeEciesStringKey.Error_Invariant_ConfigurationValidationFailedTemplate,
110
- { failures: failures.join('\n\n') },
111
- undefined,
112
- { invariantCount: failures.length }
113
- );
114
- }
115
- }
116
-
117
- /**
118
- * Clear all custom invariants.
119
- * Default invariants are not affected.
120
- */
121
- static clearCustomInvariants(): void {
122
- this.customInvariants = [];
123
- }
124
- }
@@ -1,77 +0,0 @@
1
- import { BaseInvariant } from '@digitaldefiance/ecies-lib';
2
- import { IConstants } from '../../interfaces/constants';
3
- import { NodeEciesStringKey } from '../../i18n/node-keys';
4
- import { getNodeEciesTranslation } from '../../i18n/ecies-i18n-factory';
5
-
6
- /**
7
- * Node.js-specific recipient ID consistency invariant.
8
- *
9
- * Extends the base ecies-lib invariant to also validate node-specific
10
- * ENCRYPTION.RECIPIENT_ID_SIZE constant.
11
- *
12
- * This invariant would have caught the 12 vs 32 byte discrepancy.
13
- *
14
- * Checks:
15
- * - MEMBER_ID_LENGTH === idProvider.byteLength
16
- * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
17
- * - ENCRYPTION.RECIPIENT_ID_SIZE === idProvider.byteLength (Node-specific)
18
- * - All values must be in sync
19
- */
20
- export class RecipientIdConsistencyInvariant extends BaseInvariant {
21
- constructor() {
22
- super(
23
- 'NodeRecipientIdConsistency',
24
- 'All recipient ID size configurations must match the ID provider byte length (including Node-specific ENCRYPTION constant)'
25
- );
26
- }
27
-
28
- check(config: IConstants): boolean {
29
- const baseChecks =
30
- config.MEMBER_ID_LENGTH === config.idProvider.byteLength &&
31
- config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
32
-
33
- // ENCRYPTION is node-specific and may not exist in all configs
34
- if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
35
- return baseChecks && config.ENCRYPTION.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
36
- }
37
-
38
- return baseChecks;
39
- }
40
-
41
- errorMessage(config: IConstants): string {
42
- const issues: string[] = [];
43
-
44
- if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
45
- issues.push(
46
- getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_MemberIdLengthMismatchTemplate, {
47
- actual: config.MEMBER_ID_LENGTH,
48
- expected: config.idProvider.byteLength,
49
- })
50
- );
51
- }
52
-
53
- if (config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
54
- issues.push(
55
- getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_EciesMultipleRecipientIdSizeMismatchTemplate, {
56
- actual: config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE,
57
- expected: config.idProvider.byteLength,
58
- })
59
- );
60
- }
61
-
62
- if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
63
- if (config.ENCRYPTION.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
64
- issues.push(
65
- getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_EncryptionRecipientIdSizeMismatchTemplate, {
66
- actual: config.ENCRYPTION.RECIPIENT_ID_SIZE,
67
- expected: config.idProvider.byteLength,
68
- })
69
- );
70
- }
71
- }
72
-
73
- return getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_NodeRecipientIdConsistency_FailedTemplate, {
74
- issues: issues.join('\n '),
75
- });
76
- }
77
- }