@digitaldefiance/node-ecies-lib 4.4.1 → 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 (386) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/package.json +11 -7
  4. package/src/builders/ecies-builder.ts +27 -0
  5. package/src/builders/{index.d.ts → index.ts} +0 -1
  6. package/src/builders/member-builder.ts +158 -0
  7. package/src/constants.ts +251 -0
  8. package/src/core/errors/crypto-error.ts +10 -0
  9. package/src/core/{index.d.ts → index.ts} +0 -1
  10. package/src/core/types/result.ts +3 -0
  11. package/src/enumerations/index.ts +2 -0
  12. package/src/enumerations/pbkdf2-profile.ts +8 -0
  13. package/src/i18n/ecies-i18n-factory.ts +111 -0
  14. package/src/i18n/{index.d.ts → index.ts} +3 -1
  15. package/src/i18n/node-ecies-i18n-setup.ts +56 -0
  16. package/src/i18n/node-keys.ts +69 -0
  17. package/src/i18n/translations/de.ts +54 -0
  18. package/src/i18n/translations/en-GB.ts +83 -0
  19. package/src/i18n/translations/en-US.ts +88 -0
  20. package/src/i18n/translations/es.ts +54 -0
  21. package/src/i18n/translations/fr.ts +54 -0
  22. package/src/i18n/translations/{index.d.ts → index.ts} +0 -1
  23. package/src/i18n/translations/ja.ts +54 -0
  24. package/src/i18n/translations/uk.ts +54 -0
  25. package/src/i18n/translations/zh-cn.ts +54 -0
  26. package/src/{index.d.ts → index.ts} +5 -1
  27. package/src/interfaces/authenticated-cipher.ts +10 -0
  28. package/src/interfaces/authenticated-decipher.ts +9 -0
  29. package/src/interfaces/backend-member-operational.ts +75 -0
  30. package/src/interfaces/checksum-config.ts +4 -0
  31. package/src/interfaces/checksum-consts.ts +13 -0
  32. package/src/interfaces/constants.ts +54 -0
  33. package/src/interfaces/ecies-consts.ts +99 -0
  34. package/src/interfaces/encrypted-chunk.ts +12 -0
  35. package/src/interfaces/encryption-consts.ts +10 -0
  36. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  37. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +7 -0
  38. package/src/interfaces/keyring-consts.ts +5 -0
  39. package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
  40. package/src/interfaces/member.ts +76 -0
  41. package/src/interfaces/{multi-encrypted-message.d.ts → multi-encrypted-message.ts} +5 -5
  42. package/src/interfaces/multi-encrypted-parsed-header.ts +28 -0
  43. package/src/interfaces/multi-recipient-chunk.ts +35 -0
  44. package/src/interfaces/{pbkdf-profiles.d.ts → pbkdf-profiles.ts} +2 -2
  45. package/src/interfaces/pbkdf2-result.ts +5 -0
  46. package/src/interfaces/signing-key-private-key-info.ts +12 -0
  47. package/src/interfaces/{simple-keypair-buffer.d.ts → simple-keypair-buffer.ts} +3 -3
  48. package/src/interfaces/{simple-keypair.d.ts → simple-keypair.ts} +3 -3
  49. package/src/interfaces/simple-public-key-only-buffer.ts +3 -0
  50. package/src/interfaces/simple-public-key-only.ts +3 -0
  51. package/src/interfaces/single-encrypted-parsed-header.ts +35 -0
  52. package/src/interfaces/stream-config.ts +9 -0
  53. package/src/interfaces/stream-progress.ts +7 -0
  54. package/src/interfaces/{wallet-seed.d.ts → wallet-seed.ts} +3 -3
  55. package/src/interfaces/wrapped-key-consts.ts +6 -0
  56. package/src/lib/crypto-container.ts +32 -0
  57. package/src/lib/{index.d.ts → index.ts} +0 -1
  58. package/src/lib/invariant-validator.ts +124 -0
  59. package/src/lib/invariants/{index.d.ts → index.ts} +2 -2
  60. package/src/lib/invariants/recipient-id-consistency.ts +77 -0
  61. package/src/member.ts +511 -0
  62. package/src/services/aes-gcm.ts +260 -0
  63. package/src/services/chunk-processor.ts +47 -0
  64. package/src/services/ecies/crypto-core.ts +319 -0
  65. package/src/services/ecies/file.ts +171 -0
  66. package/src/services/ecies/{index.d.ts → index.ts} +0 -1
  67. package/src/services/ecies/multi-recipient.ts +782 -0
  68. package/src/services/ecies/service.ts +316 -0
  69. package/src/services/ecies/signature.ts +91 -0
  70. package/src/services/ecies/single-recipient.ts +743 -0
  71. package/src/services/ecies/utilities.ts +128 -0
  72. package/src/services/encryption-stream.ts +432 -0
  73. package/src/services/{index.d.ts → index.ts} +0 -1
  74. package/src/services/multi-recipient-processor.ts +505 -0
  75. package/src/services/pbkdf2.ts +304 -0
  76. package/src/services/progress-tracker.ts +43 -0
  77. package/src/test-mocks/index.ts +1 -0
  78. package/src/test-mocks/mock-backend-member.ts +195 -0
  79. package/src/testing.ts +2 -0
  80. package/src/types/id-guards.ts +91 -0
  81. package/src/types/index.ts +1 -0
  82. package/src/{types.d.ts → types.ts} +28 -9
  83. package/src/utils.ts +124 -0
  84. package/src/builders/ecies-builder.d.ts +0 -11
  85. package/src/builders/ecies-builder.d.ts.map +0 -1
  86. package/src/builders/ecies-builder.js +0 -26
  87. package/src/builders/ecies-builder.js.map +0 -1
  88. package/src/builders/index.d.ts.map +0 -1
  89. package/src/builders/index.js +0 -6
  90. package/src/builders/index.js.map +0 -1
  91. package/src/builders/member-builder.d.ts +0 -47
  92. package/src/builders/member-builder.d.ts.map +0 -1
  93. package/src/builders/member-builder.js +0 -99
  94. package/src/builders/member-builder.js.map +0 -1
  95. package/src/constants.d.ts +0 -38
  96. package/src/constants.d.ts.map +0 -1
  97. package/src/constants.js +0 -183
  98. package/src/constants.js.map +0 -1
  99. package/src/core/errors/crypto-error.d.ts +0 -6
  100. package/src/core/errors/crypto-error.d.ts.map +0 -1
  101. package/src/core/errors/crypto-error.js +0 -15
  102. package/src/core/errors/crypto-error.js.map +0 -1
  103. package/src/core/index.d.ts.map +0 -1
  104. package/src/core/index.js +0 -6
  105. package/src/core/index.js.map +0 -1
  106. package/src/core/types/result.d.ts +0 -8
  107. package/src/core/types/result.d.ts.map +0 -1
  108. package/src/core/types/result.js +0 -3
  109. package/src/core/types/result.js.map +0 -1
  110. package/src/enumerations/index.d.ts +0 -2
  111. package/src/enumerations/index.d.ts.map +0 -1
  112. package/src/enumerations/index.js +0 -5
  113. package/src/enumerations/index.js.map +0 -1
  114. package/src/enumerations/pbkdf2-profile.d.ts +0 -9
  115. package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
  116. package/src/enumerations/pbkdf2-profile.js +0 -13
  117. package/src/enumerations/pbkdf2-profile.js.map +0 -1
  118. package/src/i18n/ecies-i18n-factory.d.ts +0 -28
  119. package/src/i18n/ecies-i18n-factory.d.ts.map +0 -1
  120. package/src/i18n/ecies-i18n-factory.js +0 -89
  121. package/src/i18n/ecies-i18n-factory.js.map +0 -1
  122. package/src/i18n/index.d.ts.map +0 -1
  123. package/src/i18n/index.js +0 -8
  124. package/src/i18n/index.js.map +0 -1
  125. package/src/i18n/node-ecies-i18n-setup.d.ts +0 -5
  126. package/src/i18n/node-ecies-i18n-setup.d.ts.map +0 -1
  127. package/src/i18n/node-ecies-i18n-setup.js +0 -46
  128. package/src/i18n/node-ecies-i18n-setup.js.map +0 -1
  129. package/src/i18n/node-keys.d.ts +0 -57
  130. package/src/i18n/node-keys.d.ts.map +0 -1
  131. package/src/i18n/node-keys.js +0 -67
  132. package/src/i18n/node-keys.js.map +0 -1
  133. package/src/i18n/translations/de.d.ts +0 -3
  134. package/src/i18n/translations/de.d.ts.map +0 -1
  135. package/src/i18n/translations/de.js +0 -57
  136. package/src/i18n/translations/de.js.map +0 -1
  137. package/src/i18n/translations/en-GB.d.ts +0 -3
  138. package/src/i18n/translations/en-GB.d.ts.map +0 -1
  139. package/src/i18n/translations/en-GB.js +0 -61
  140. package/src/i18n/translations/en-GB.js.map +0 -1
  141. package/src/i18n/translations/en-US.d.ts +0 -6
  142. package/src/i18n/translations/en-US.d.ts.map +0 -1
  143. package/src/i18n/translations/en-US.js +0 -65
  144. package/src/i18n/translations/en-US.js.map +0 -1
  145. package/src/i18n/translations/es.d.ts +0 -3
  146. package/src/i18n/translations/es.d.ts.map +0 -1
  147. package/src/i18n/translations/es.js +0 -57
  148. package/src/i18n/translations/es.js.map +0 -1
  149. package/src/i18n/translations/fr.d.ts +0 -3
  150. package/src/i18n/translations/fr.d.ts.map +0 -1
  151. package/src/i18n/translations/fr.js +0 -57
  152. package/src/i18n/translations/fr.js.map +0 -1
  153. package/src/i18n/translations/index.d.ts.map +0 -1
  154. package/src/i18n/translations/index.js +0 -20
  155. package/src/i18n/translations/index.js.map +0 -1
  156. package/src/i18n/translations/ja.d.ts +0 -3
  157. package/src/i18n/translations/ja.d.ts.map +0 -1
  158. package/src/i18n/translations/ja.js +0 -57
  159. package/src/i18n/translations/ja.js.map +0 -1
  160. package/src/i18n/translations/uk.d.ts +0 -3
  161. package/src/i18n/translations/uk.d.ts.map +0 -1
  162. package/src/i18n/translations/uk.js +0 -57
  163. package/src/i18n/translations/uk.js.map +0 -1
  164. package/src/i18n/translations/zh-cn.d.ts +0 -3
  165. package/src/i18n/translations/zh-cn.d.ts.map +0 -1
  166. package/src/i18n/translations/zh-cn.js +0 -57
  167. package/src/i18n/translations/zh-cn.js.map +0 -1
  168. package/src/index.d.ts.map +0 -1
  169. package/src/index.js +0 -31
  170. package/src/index.js.map +0 -1
  171. package/src/interfaces/authenticated-cipher.d.ts +0 -12
  172. package/src/interfaces/authenticated-cipher.d.ts.map +0 -1
  173. package/src/interfaces/authenticated-cipher.js +0 -3
  174. package/src/interfaces/authenticated-cipher.js.map +0 -1
  175. package/src/interfaces/authenticated-decipher.d.ts +0 -11
  176. package/src/interfaces/authenticated-decipher.d.ts.map +0 -1
  177. package/src/interfaces/authenticated-decipher.js +0 -3
  178. package/src/interfaces/authenticated-decipher.js.map +0 -1
  179. package/src/interfaces/backend-member-operational.d.ts +0 -48
  180. package/src/interfaces/backend-member-operational.d.ts.map +0 -1
  181. package/src/interfaces/backend-member-operational.js +0 -3
  182. package/src/interfaces/backend-member-operational.js.map +0 -1
  183. package/src/interfaces/checksum-config.d.ts +0 -5
  184. package/src/interfaces/checksum-config.d.ts.map +0 -1
  185. package/src/interfaces/checksum-config.js +0 -3
  186. package/src/interfaces/checksum-config.js.map +0 -1
  187. package/src/interfaces/checksum-consts.d.ts +0 -11
  188. package/src/interfaces/checksum-consts.d.ts.map +0 -1
  189. package/src/interfaces/checksum-consts.js +0 -3
  190. package/src/interfaces/checksum-consts.js.map +0 -1
  191. package/src/interfaces/constants.d.ts +0 -52
  192. package/src/interfaces/constants.d.ts.map +0 -1
  193. package/src/interfaces/constants.js +0 -3
  194. package/src/interfaces/constants.js.map +0 -1
  195. package/src/interfaces/ecies-consts.d.ts +0 -88
  196. package/src/interfaces/ecies-consts.d.ts.map +0 -1
  197. package/src/interfaces/ecies-consts.js +0 -3
  198. package/src/interfaces/ecies-consts.js.map +0 -1
  199. package/src/interfaces/encrypted-chunk.d.ts +0 -12
  200. package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
  201. package/src/interfaces/encrypted-chunk.js +0 -3
  202. package/src/interfaces/encrypted-chunk.js.map +0 -1
  203. package/src/interfaces/encryption-consts.d.ts +0 -11
  204. package/src/interfaces/encryption-consts.d.ts.map +0 -1
  205. package/src/interfaces/encryption-consts.js +0 -3
  206. package/src/interfaces/encryption-consts.js.map +0 -1
  207. package/src/interfaces/index.d.ts.map +0 -1
  208. package/src/interfaces/index.js +0 -30
  209. package/src/interfaces/index.js.map +0 -1
  210. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +0 -6
  211. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +0 -1
  212. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +0 -3
  213. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +0 -1
  214. package/src/interfaces/keyring-consts.d.ts +0 -6
  215. package/src/interfaces/keyring-consts.d.ts.map +0 -1
  216. package/src/interfaces/keyring-consts.js +0 -3
  217. package/src/interfaces/keyring-consts.js.map +0 -1
  218. package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
  219. package/src/interfaces/member-with-mnemonic.js +0 -3
  220. package/src/interfaces/member-with-mnemonic.js.map +0 -1
  221. package/src/interfaces/member.d.ts +0 -47
  222. package/src/interfaces/member.d.ts.map +0 -1
  223. package/src/interfaces/member.js +0 -3
  224. package/src/interfaces/member.js.map +0 -1
  225. package/src/interfaces/multi-encrypted-message.d.ts.map +0 -1
  226. package/src/interfaces/multi-encrypted-message.js +0 -3
  227. package/src/interfaces/multi-encrypted-message.js.map +0 -1
  228. package/src/interfaces/multi-encrypted-parsed-header.d.ts +0 -27
  229. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +0 -1
  230. package/src/interfaces/multi-encrypted-parsed-header.js +0 -3
  231. package/src/interfaces/multi-encrypted-parsed-header.js.map +0 -1
  232. package/src/interfaces/multi-recipient-chunk.d.ts +0 -26
  233. package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
  234. package/src/interfaces/multi-recipient-chunk.js +0 -13
  235. package/src/interfaces/multi-recipient-chunk.js.map +0 -1
  236. package/src/interfaces/pbkdf-profiles.d.ts.map +0 -1
  237. package/src/interfaces/pbkdf-profiles.js +0 -3
  238. package/src/interfaces/pbkdf-profiles.js.map +0 -1
  239. package/src/interfaces/pbkdf2-result.d.ts +0 -6
  240. package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
  241. package/src/interfaces/pbkdf2-result.js +0 -3
  242. package/src/interfaces/pbkdf2-result.js.map +0 -1
  243. package/src/interfaces/signing-key-private-key-info.d.ts +0 -11
  244. package/src/interfaces/signing-key-private-key-info.d.ts.map +0 -1
  245. package/src/interfaces/signing-key-private-key-info.js +0 -3
  246. package/src/interfaces/signing-key-private-key-info.js.map +0 -1
  247. package/src/interfaces/simple-keypair-buffer.d.ts.map +0 -1
  248. package/src/interfaces/simple-keypair-buffer.js +0 -3
  249. package/src/interfaces/simple-keypair-buffer.js.map +0 -1
  250. package/src/interfaces/simple-keypair.d.ts.map +0 -1
  251. package/src/interfaces/simple-keypair.js +0 -3
  252. package/src/interfaces/simple-keypair.js.map +0 -1
  253. package/src/interfaces/simple-public-key-only-buffer.d.ts +0 -4
  254. package/src/interfaces/simple-public-key-only-buffer.d.ts.map +0 -1
  255. package/src/interfaces/simple-public-key-only-buffer.js +0 -3
  256. package/src/interfaces/simple-public-key-only-buffer.js.map +0 -1
  257. package/src/interfaces/simple-public-key-only.d.ts +0 -4
  258. package/src/interfaces/simple-public-key-only.d.ts.map +0 -1
  259. package/src/interfaces/simple-public-key-only.js +0 -3
  260. package/src/interfaces/simple-public-key-only.js.map +0 -1
  261. package/src/interfaces/single-encrypted-parsed-header.d.ts +0 -35
  262. package/src/interfaces/single-encrypted-parsed-header.d.ts.map +0 -1
  263. package/src/interfaces/single-encrypted-parsed-header.js +0 -3
  264. package/src/interfaces/single-encrypted-parsed-header.js.map +0 -1
  265. package/src/interfaces/stream-config.d.ts +0 -6
  266. package/src/interfaces/stream-config.d.ts.map +0 -1
  267. package/src/interfaces/stream-config.js +0 -8
  268. package/src/interfaces/stream-config.js.map +0 -1
  269. package/src/interfaces/stream-progress.d.ts +0 -8
  270. package/src/interfaces/stream-progress.d.ts.map +0 -1
  271. package/src/interfaces/stream-progress.js +0 -3
  272. package/src/interfaces/stream-progress.js.map +0 -1
  273. package/src/interfaces/wallet-seed.d.ts.map +0 -1
  274. package/src/interfaces/wallet-seed.js +0 -3
  275. package/src/interfaces/wallet-seed.js.map +0 -1
  276. package/src/interfaces/wrapped-key-consts.d.ts +0 -7
  277. package/src/interfaces/wrapped-key-consts.d.ts.map +0 -1
  278. package/src/interfaces/wrapped-key-consts.js +0 -3
  279. package/src/interfaces/wrapped-key-consts.js.map +0 -1
  280. package/src/lib/crypto-container.d.ts +0 -13
  281. package/src/lib/crypto-container.d.ts.map +0 -1
  282. package/src/lib/crypto-container.js +0 -29
  283. package/src/lib/crypto-container.js.map +0 -1
  284. package/src/lib/index.d.ts.map +0 -1
  285. package/src/lib/index.js +0 -7
  286. package/src/lib/index.js.map +0 -1
  287. package/src/lib/invariant-validator.d.ts +0 -62
  288. package/src/lib/invariant-validator.d.ts.map +0 -1
  289. package/src/lib/invariant-validator.js +0 -108
  290. package/src/lib/invariant-validator.js.map +0 -1
  291. package/src/lib/invariants/index.d.ts.map +0 -1
  292. package/src/lib/invariants/index.js +0 -12
  293. package/src/lib/invariants/index.js.map +0 -1
  294. package/src/lib/invariants/recipient-id-consistency.d.ts +0 -22
  295. package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
  296. package/src/lib/invariants/recipient-id-consistency.js +0 -62
  297. package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
  298. package/src/member.d.ts +0 -81
  299. package/src/member.d.ts.map +0 -1
  300. package/src/member.js +0 -285
  301. package/src/member.js.map +0 -1
  302. package/src/services/aes-gcm.d.ts +0 -66
  303. package/src/services/aes-gcm.d.ts.map +0 -1
  304. package/src/services/aes-gcm.js +0 -158
  305. package/src/services/aes-gcm.js.map +0 -1
  306. package/src/services/chunk-processor.d.ts +0 -15
  307. package/src/services/chunk-processor.d.ts.map +0 -1
  308. package/src/services/chunk-processor.js +0 -36
  309. package/src/services/chunk-processor.js.map +0 -1
  310. package/src/services/ecies/crypto-core.d.ts +0 -104
  311. package/src/services/ecies/crypto-core.d.ts.map +0 -1
  312. package/src/services/ecies/crypto-core.js +0 -237
  313. package/src/services/ecies/crypto-core.js.map +0 -1
  314. package/src/services/ecies/file.d.ts +0 -30
  315. package/src/services/ecies/file.d.ts.map +0 -1
  316. package/src/services/ecies/file.js +0 -112
  317. package/src/services/ecies/file.js.map +0 -1
  318. package/src/services/ecies/index.d.ts.map +0 -1
  319. package/src/services/ecies/index.js +0 -11
  320. package/src/services/ecies/index.js.map +0 -1
  321. package/src/services/ecies/multi-recipient.d.ts +0 -84
  322. package/src/services/ecies/multi-recipient.d.ts.map +0 -1
  323. package/src/services/ecies/multi-recipient.js +0 -496
  324. package/src/services/ecies/multi-recipient.js.map +0 -1
  325. package/src/services/ecies/service.d.ts +0 -69
  326. package/src/services/ecies/service.d.ts.map +0 -1
  327. package/src/services/ecies/service.js +0 -144
  328. package/src/services/ecies/service.js.map +0 -1
  329. package/src/services/ecies/signature.d.ts +0 -38
  330. package/src/services/ecies/signature.d.ts.map +0 -1
  331. package/src/services/ecies/signature.js +0 -69
  332. package/src/services/ecies/signature.js.map +0 -1
  333. package/src/services/ecies/single-recipient.d.ts +0 -83
  334. package/src/services/ecies/single-recipient.d.ts.map +0 -1
  335. package/src/services/ecies/single-recipient.js +0 -447
  336. package/src/services/ecies/single-recipient.js.map +0 -1
  337. package/src/services/ecies/utilities.d.ts +0 -33
  338. package/src/services/ecies/utilities.d.ts.map +0 -1
  339. package/src/services/ecies/utilities.js +0 -91
  340. package/src/services/ecies/utilities.js.map +0 -1
  341. package/src/services/encryption-stream.d.ts +0 -33
  342. package/src/services/encryption-stream.d.ts.map +0 -1
  343. package/src/services/encryption-stream.js +0 -207
  344. package/src/services/encryption-stream.js.map +0 -1
  345. package/src/services/index.d.ts.map +0 -1
  346. package/src/services/index.js +0 -11
  347. package/src/services/index.js.map +0 -1
  348. package/src/services/multi-recipient-processor.d.ts +0 -72
  349. package/src/services/multi-recipient-processor.d.ts.map +0 -1
  350. package/src/services/multi-recipient-processor.js +0 -322
  351. package/src/services/multi-recipient-processor.js.map +0 -1
  352. package/src/services/pbkdf2.d.ts +0 -105
  353. package/src/services/pbkdf2.d.ts.map +0 -1
  354. package/src/services/pbkdf2.js +0 -189
  355. package/src/services/pbkdf2.js.map +0 -1
  356. package/src/services/progress-tracker.d.ts +0 -9
  357. package/src/services/progress-tracker.d.ts.map +0 -1
  358. package/src/services/progress-tracker.js +0 -41
  359. package/src/services/progress-tracker.js.map +0 -1
  360. package/src/test-mocks/index.d.ts +0 -2
  361. package/src/test-mocks/index.d.ts.map +0 -1
  362. package/src/test-mocks/index.js +0 -5
  363. package/src/test-mocks/index.js.map +0 -1
  364. package/src/test-mocks/mock-backend-member.d.ts +0 -71
  365. package/src/test-mocks/mock-backend-member.d.ts.map +0 -1
  366. package/src/test-mocks/mock-backend-member.js +0 -133
  367. package/src/test-mocks/mock-backend-member.js.map +0 -1
  368. package/src/testing.d.ts +0 -2
  369. package/src/testing.d.ts.map +0 -1
  370. package/src/testing.js +0 -6
  371. package/src/testing.js.map +0 -1
  372. package/src/types/id-guards.d.ts +0 -39
  373. package/src/types/id-guards.d.ts.map +0 -1
  374. package/src/types/id-guards.js +0 -91
  375. package/src/types/id-guards.js.map +0 -1
  376. package/src/types/index.d.ts +0 -2
  377. package/src/types/index.d.ts.map +0 -1
  378. package/src/types/index.js +0 -5
  379. package/src/types/index.js.map +0 -1
  380. package/src/types.d.ts.map +0 -1
  381. package/src/types.js +0 -6
  382. package/src/types.js.map +0 -1
  383. package/src/utils.d.ts +0 -11
  384. package/src/utils.d.ts.map +0 -1
  385. package/src/utils.js +0 -82
  386. package/src/utils.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ import { NodeEciesStringKey } from '../node-keys';
2
+
3
+ export const mandarinTranslations: Record<NodeEciesStringKey, string> = {
4
+ [NodeEciesStringKey.Error_LengthError_LengthIsInvalidType]: '长度编码类型无效',
5
+ [NodeEciesStringKey.Error_Member_MissingMemberName]: '需要成员名称',
6
+ [NodeEciesStringKey.Error_Member_InvalidMemberNameWhitespace]: '成员名称不能有前导或尾随空格',
7
+ [NodeEciesStringKey.Error_Member_NoWallet]: '没有可用的钱包',
8
+ [NodeEciesStringKey.Error_Member_WalletAlreadyLoaded]: '钱包已加载',
9
+ [NodeEciesStringKey.Error_Member_InvalidMnemonic]: '无效的助记词',
10
+ [NodeEciesStringKey.Error_Member_MissingPrivateKey]: '缺少私钥',
11
+ [NodeEciesStringKey.Error_Member_MissingEncryptionData]: '缺少加密数据',
12
+ [NodeEciesStringKey.Error_Member_EncryptionDataTooLarge]: '加密数据过大',
13
+ [NodeEciesStringKey.Error_Member_MissingEmail]: '需要电子邮件地址',
14
+ [NodeEciesStringKey.Error_Member_InvalidEmailWhitespace]: '电子邮件地址不能有前导或尾随空格',
15
+ [NodeEciesStringKey.Error_InvalidPublicKey]: '收到空或未定义的公钥',
16
+ [NodeEciesStringKey.Error_InvalidPublicKeyFormat]: '无效的公钥格式或长度',
17
+ [NodeEciesStringKey.Error_MessageLengthExceedsMaximumAllowedSize]: '消息长度超过最大允许长度',
18
+ [NodeEciesStringKey.Error_InvalidEncryptionTypeOrNumberOfRecipients]: '无效的加密类型或接收者数量',
19
+ [NodeEciesStringKey.Error_EncryptedDataLengthMismatch]: '加密数据长度不匹配',
20
+ [NodeEciesStringKey.Error_EphemeralPublicKeyLengthMismatch]: '临时公钥在规范化后长度不正确',
21
+ [NodeEciesStringKey.Error_EncryptedDataIsEmpty]: '加密数据为空',
22
+ [NodeEciesStringKey.Error_CombinedDataTooShort]: '组合数据太短,无法包含所需组件',
23
+ [NodeEciesStringKey.Error_BufferIsTooShort]: '缓冲区太短,无法读取长度类型',
24
+ [NodeEciesStringKey.Error_BufferIsTooShortToReadFullLengthValue]: '缓冲区太短,无法读取完整的长度值',
25
+ [NodeEciesStringKey.Error_LengthExceedsMaximumSafeInteger]: '长度超过最大安全整数值',
26
+ [NodeEciesStringKey.Error_BufferIsTooShortForDeclaredDataLength]: '缓冲区太短,无法读取声明的数据长度',
27
+ [NodeEciesStringKey.Error_InvalidChecksumConstants]: '无效的校验和常量',
28
+ [NodeEciesStringKey.Error_InvalidAESKeyLength]: 'AES密钥必须为16、24或32字节',
29
+ [NodeEciesStringKey.Error_CannotEncryptEmptyData]: '无法加密空或未定义的数据',
30
+ [NodeEciesStringKey.Error_CannotDecryptEmptyData]: '无法解密空或未定义的数据',
31
+ [NodeEciesStringKey.Error_InvalidIVLength]: 'IV必须为16字节',
32
+ [NodeEciesStringKey.Error_MessageTooLarge]: '消息超过最大大小2GB',
33
+ [NodeEciesStringKey.Error_EncryptedSizeExceedsExpected]: '加密数据大小超过预期最大值',
34
+ [NodeEciesStringKey.Error_Pbkdf2_InvalidSaltLength]: '无效的盐长度',
35
+ [NodeEciesStringKey.Error_Pbkdf2_InvalidHashLength]: '无效的哈希长度',
36
+ [NodeEciesStringKey.Error_Builder_ECIESServiceMustBeSetBeforeGeneratingMnemonic]: '在生成助记词之前必须设置ECIESService',
37
+ [NodeEciesStringKey.Error_Builder_ECIESServiceIsRequired]: '需要ECIESService',
38
+ [NodeEciesStringKey.Error_Builder_TypeNameAndEmailAreRequired]: '需要类型、名称和电子邮件',
39
+ [NodeEciesStringKey.Error_Stream_InvalidPublicKeyLength]: '无效的公钥:必须为33(压缩)或65(未压缩)字节',
40
+ [NodeEciesStringKey.Error_Stream_EncryptionCancelled]: '加密已取消',
41
+ [NodeEciesStringKey.Error_Stream_BufferOverflow]: '缓冲区溢出:源块超过最大大小',
42
+ [NodeEciesStringKey.Error_Stream_AtLeastOneRecipientRequired]: '至少需要一个接收者',
43
+ [NodeEciesStringKey.Error_Stream_MaxRecipientsExceeded]: '最多支持65535个接收者',
44
+ [NodeEciesStringKey.Error_Stream_InvalidRecipientPublicKeyLength]: '无效的接收者公钥:必须为33(压缩)或65(未压缩)字节',
45
+ [NodeEciesStringKey.Error_Stream_InvalidRecipientIdLength]: '无效的接收者ID:必须为32字节',
46
+ [NodeEciesStringKey.Error_Stream_InvalidPrivateKeyLength]: '无效的私钥:必须为32字节',
47
+ [NodeEciesStringKey.Error_Stream_DecryptionCancelled]: '解密已取消',
48
+ [NodeEciesStringKey.Error_Stream_ChunkSequenceError]: '块序列错误',
49
+ [NodeEciesStringKey.Error_Invariant_ConfigurationValidationFailedTemplate]: 'Node.js configuration validation failed:\n{failures}',
50
+ [NodeEciesStringKey.Error_Invariant_NodeRecipientIdConsistency_FailedTemplate]: "Invariant 'NodeRecipientIdConsistency' failed:\n {issues}",
51
+ [NodeEciesStringKey.Error_Invariant_MemberIdLengthMismatchTemplate]: 'MEMBER_ID_LENGTH ({actual}) !== idProvider.byteLength ({expected})',
52
+ [NodeEciesStringKey.Error_Invariant_EciesMultipleRecipientIdSizeMismatchTemplate]: 'ECIES.MULTIPLE.RECIPIENT_ID_SIZE ({actual}) !== idProvider.byteLength ({expected})',
53
+ [NodeEciesStringKey.Error_Invariant_EncryptionRecipientIdSizeMismatchTemplate]: 'ENCRYPTION.RECIPIENT_ID_SIZE ({actual}) !== idProvider.byteLength ({expected})',
54
+ };
@@ -1,6 +1,9 @@
1
+ // V2 Architecture exports
1
2
  export * from './builders';
2
3
  export * from './core';
3
4
  export * from './lib';
5
+
6
+ // Existing exports (backward compatibility)
4
7
  export * from './constants';
5
8
  export * from './enumerations';
6
9
  export * from './i18n';
@@ -8,6 +11,8 @@ export * from './interfaces';
8
11
  export * from './member';
9
12
  export * from './types';
10
13
  export * from './types/id-guards';
14
+
15
+ // Services - explicit exports to avoid conflicts
11
16
  export { AESGCMService } from './services/aes-gcm';
12
17
  export { ChunkProcessor } from './services/chunk-processor';
13
18
  export * from './services/ecies';
@@ -15,4 +20,3 @@ export { EncryptionStream } from './services/encryption-stream';
15
20
  export { MultiRecipientProcessor } from './services/multi-recipient-processor';
16
21
  export { Pbkdf2Service } from './services/pbkdf2';
17
22
  export { ProgressTracker } from './services/progress-tracker';
18
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ import type { Cipher } from 'crypto';
2
+
3
+ /**
4
+ * Extended Cipher type with auth tag support for AES-GCM
5
+ */
6
+ export interface AuthenticatedCipher extends Cipher {
7
+ getAuthTag(): Buffer;
8
+ setAAD(buffer: Buffer, options?: { plaintextLength: number }): this;
9
+ setAutoPadding(autoPadding?: boolean): this;
10
+ }
@@ -0,0 +1,9 @@
1
+ import type { Decipher } from 'crypto';
2
+
3
+ /**
4
+ * Extended Decipher type with auth tag support for AES-GCM
5
+ */
6
+ export interface AuthenticatedDecipher extends Decipher {
7
+ setAuthTag(tag: Buffer): void;
8
+ setAAD(buffer: Buffer, options?: { plaintextLength: number }): this;
9
+ }
@@ -0,0 +1,75 @@
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
+ * Operational interface for member - defines getters and methods
15
+ */
16
+ export interface IBackendMemberOperational<
17
+ I extends string | Types.ObjectId | Buffer | Uint8Array
18
+ > {
19
+ // Required getters
20
+ get id(): I;
21
+ get type(): MemberType;
22
+ get name(): string;
23
+ get email(): EmailString;
24
+ get publicKey(): Uint8Array;
25
+ get creatorId(): I;
26
+ get dateCreated(): Date;
27
+ get dateUpdated(): Date;
28
+
29
+ // Optional private data getters
30
+ get privateKey(): SecureBuffer | undefined;
31
+ get wallet(): Wallet | undefined;
32
+
33
+ // State getters
34
+ get hasPrivateKey(): boolean;
35
+
36
+ // Methods
37
+ sign(data: Buffer): SignatureBuffer;
38
+ verify(signature: SignatureBuffer, data: Buffer): boolean;
39
+ encryptData(data: string | Buffer): Uint8Array;
40
+ decryptData(encryptedData: Buffer): Uint8Array;
41
+ toJson(): string;
42
+ dispose(): void;
43
+
44
+ // Streaming methods
45
+ encryptDataStream(
46
+ source: AsyncIterable<Buffer>,
47
+ options?: {
48
+ recipientPublicKey?: Buffer;
49
+ onProgress?: (progress: IStreamProgress) => void;
50
+ signal?: AbortSignal;
51
+ }
52
+ ): AsyncGenerator<IEncryptedChunk, void, unknown>;
53
+
54
+ decryptDataStream(
55
+ source: AsyncIterable<Buffer>,
56
+ options?: {
57
+ onProgress?: (progress: IStreamProgress) => void;
58
+ signal?: AbortSignal;
59
+ }
60
+ ): AsyncGenerator<Buffer, void, unknown>;
61
+
62
+ // Private key management
63
+ loadWallet(mnemonic: SecureString): void;
64
+ unloadPrivateKey(): void;
65
+ unloadWallet(): void;
66
+ unloadWalletAndPrivateKey(): void;
67
+ }
68
+
69
+ /**
70
+ * Extended operational interface for test members
71
+ */
72
+ export interface ITestNodeEciesMemberOperational
73
+ extends IBackendMemberOperational<Types.ObjectId> {
74
+ get mnemonic(): SecureString | undefined;
75
+ }
@@ -0,0 +1,4 @@
1
+ export interface IChecksumConfig {
2
+ algorithm: string;
3
+ encoding: 'hex' | 'base64';
4
+ }
@@ -0,0 +1,13 @@
1
+ export interface IChecksumConsts {
2
+ /** Default hash bits for SHA3 */
3
+ SHA3_DEFAULT_HASH_BITS: number;
4
+
5
+ /** Length of a SHA3 checksum buffer in bytes */
6
+ SHA3_BUFFER_LENGTH: number;
7
+
8
+ /** Algorithm name for checksums */
9
+ ALGORITHM: string;
10
+
11
+ /** Encoding for checksums */
12
+ ENCODING: 'hex' | 'base64';
13
+ }
@@ -0,0 +1,54 @@
1
+ import type { IConstants as IBaseConstants } from '@digitaldefiance/ecies-lib';
2
+ import type { CipherGCMTypes } from 'crypto';
3
+ import type { IChecksumConsts } from './checksum-consts';
4
+ import type { IEncryptionConsts } from './encryption-consts';
5
+ import type { IKeyringConsts } from './keyring-consts';
6
+ import type { PbkdfProfiles } from './pbkdf-profiles';
7
+ import type { IWrappedKeyConsts } from './wrapped-key-consts';
8
+
9
+ /**
10
+ * Node.js-specific constants interface.
11
+ * Extends base ECIES constants with Node-specific additions.
12
+ *
13
+ * Inherited from IBaseConstants:
14
+ * - idProvider: IIdProvider
15
+ * - OBJECT_ID_LENGTH: number
16
+ * - MEMBER_ID_LENGTH: number
17
+ * - PBKDF2: IPBkdf2Consts (overridden with Node crypto implementation)
18
+ * - PBKDF2_PROFILES: Pbkdf2Profiles (overridden with Node profiles)
19
+ * - CHECKSUM: IChecksumConsts (overridden)
20
+ * - ECIES: IECIESConstants
21
+ * - And other base constants...
22
+ */
23
+ export interface IConstants
24
+ extends Omit<IBaseConstants, 'PBKDF2_PROFILES' | 'CHECKSUM'> {
25
+ /**
26
+ * PBKDF2 configuration profiles (Node.js-specific)
27
+ * Overrides base profiles with Node crypto implementations
28
+ */
29
+ PBKDF2_PROFILES: PbkdfProfiles;
30
+ /**
31
+ * Checksum constants (Node.js-specific)
32
+ * Overrides base checksum with Node crypto implementations
33
+ */
34
+ CHECKSUM: IChecksumConsts;
35
+ /**
36
+ * Wrapped Key constants used for the key wrapping service (Node.js-only)
37
+ */
38
+ WRAPPED_KEY: IWrappedKeyConsts;
39
+ /**
40
+ * Keyring constants used for key management (Node.js-only)
41
+ */
42
+ KEYRING: IKeyringConsts;
43
+ /**
44
+ * Encryption constants used for encrypted data (Node.js-only)
45
+ */
46
+ ENCRYPTION: IEncryptionConsts;
47
+ /**
48
+ * Algorithm configuration string for keyring operations (Node.js-only)
49
+ */
50
+ KEYRING_ALGORITHM_CONFIGURATION: CipherGCMTypes;
51
+
52
+ ECIES_VERSION_SIZE: number;
53
+ ECIES_CIPHER_SUITE_SIZE: number;
54
+ }
@@ -0,0 +1,99 @@
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
+ }
@@ -0,0 +1,12 @@
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
+ }
@@ -0,0 +1,10 @@
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
+ }
@@ -26,4 +26,3 @@ export * from './stream-config';
26
26
  export * from './stream-progress';
27
27
  export * from './wallet-seed';
28
28
  export * from './wrapped-key-consts';
29
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
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
+ }
@@ -0,0 +1,5 @@
1
+ export interface IKeyringConsts {
2
+ ALGORITHM: string;
3
+ KEY_BITS: number;
4
+ MODE: string;
5
+ }
@@ -1,7 +1,7 @@
1
1
  import type { SecureString } from '@digitaldefiance/ecies-lib';
2
2
  import type { IMember } from './member';
3
+
3
4
  export interface IBackendMemberWithMnemonic {
4
- member: IMember;
5
- mnemonic: SecureString;
5
+ member: IMember;
6
+ mnemonic: SecureString;
6
7
  }
7
- //# sourceMappingURL=member-with-mnemonic.d.ts.map
@@ -0,0 +1,76 @@
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,8 +1,8 @@
1
1
  import type { IMultiEncryptedParsedHeader } from './multi-encrypted-parsed-header';
2
+
2
3
  export interface IMultiEncryptedMessage extends IMultiEncryptedParsedHeader {
3
- /**
4
- * The encrypted message.
5
- */
6
- readonly encryptedMessage: Buffer;
4
+ /**
5
+ * The encrypted message.
6
+ */
7
+ readonly encryptedMessage: Buffer;
7
8
  }
8
- //# sourceMappingURL=multi-encrypted-message.d.ts.map
@@ -0,0 +1,28 @@
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
+ }
@@ -0,0 +1,35 @@
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,6 +1,6 @@
1
1
  import type { IPbkdf2Config } from '@digitaldefiance/ecies-lib';
2
2
  import type { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
3
+
3
4
  export type PbkdfProfiles = {
4
- [key in Pbkdf2ProfileEnum]: IPbkdf2Config;
5
+ [key in Pbkdf2ProfileEnum]: IPbkdf2Config;
5
6
  };
6
- //# sourceMappingURL=pbkdf-profiles.d.ts.map
@@ -0,0 +1,5 @@
1
+ export interface IPbkdf2Result {
2
+ salt: Buffer;
3
+ hash: Buffer;
4
+ iterations: number;
5
+ }
@@ -0,0 +1,12 @@
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,6 +1,6 @@
1
1
  import type { ISimplePublicKeyOnlyBuffer } from './simple-public-key-only-buffer';
2
+
2
3
  export interface ISimpleKeyPairBuffer extends ISimplePublicKeyOnlyBuffer {
3
- publicKey: Buffer;
4
- privateKey: Buffer;
4
+ publicKey: Buffer;
5
+ privateKey: Buffer;
5
6
  }
6
- //# sourceMappingURL=simple-keypair-buffer.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import type { ISimplePublicKeyOnly } from './simple-public-key-only';
2
+
2
3
  export interface ISimpleKeyPair extends ISimplePublicKeyOnly {
3
- publicKey: string;
4
- privateKey: Buffer;
4
+ publicKey: string;
5
+ privateKey: Buffer;
5
6
  }
6
- //# sourceMappingURL=simple-keypair.d.ts.map
@@ -0,0 +1,3 @@
1
+ export interface ISimplePublicKeyOnlyBuffer {
2
+ publicKey: Buffer;
3
+ }
@@ -0,0 +1,3 @@
1
+ export interface ISimplePublicKeyOnly {
2
+ publicKey: string;
3
+ }
@@ -0,0 +1,35 @@
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
+ }