@digitaldefiance/ecies-lib 4.4.13 → 4.4.14

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 (589) hide show
  1. package/package.json +6 -4
  2. package/src/builders/ecies-builder.d.ts +18 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +30 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/index.d.ts +6 -0
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/{index.ts → index.js} +1 -1
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +51 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +97 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +60 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +446 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +34 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +56 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/index.d.ts +6 -0
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/{index.ts → index.js} +1 -1
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +16 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +12 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/email-string.d.ts +42 -0
  31. package/src/email-string.d.ts.map +1 -0
  32. package/src/email-string.js +67 -0
  33. package/src/email-string.js.map +1 -0
  34. package/src/enumerations/disposed-error-type.d.ts +12 -0
  35. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  36. package/src/enumerations/disposed-error-type.js +13 -0
  37. package/src/enumerations/disposed-error-type.js.map +1 -0
  38. package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
  39. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
  40. package/src/enumerations/ecies-cipher-suite.js +6 -0
  41. package/src/enumerations/ecies-cipher-suite.js.map +1 -0
  42. package/src/enumerations/ecies-encryption-type.d.ts +11 -0
  43. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
  44. package/src/enumerations/ecies-encryption-type.js +27 -0
  45. package/src/enumerations/ecies-encryption-type.js.map +1 -0
  46. package/src/enumerations/ecies-error-type.d.ts +44 -0
  47. package/src/enumerations/ecies-error-type.d.ts.map +1 -0
  48. package/src/enumerations/ecies-error-type.js +45 -0
  49. package/src/enumerations/ecies-error-type.js.map +1 -0
  50. package/src/enumerations/ecies-string-key.d.ts +192 -0
  51. package/src/enumerations/ecies-string-key.d.ts.map +1 -0
  52. package/src/enumerations/ecies-string-key.js +199 -0
  53. package/src/enumerations/ecies-string-key.js.map +1 -0
  54. package/src/enumerations/ecies-version.d.ts +4 -0
  55. package/src/enumerations/ecies-version.d.ts.map +1 -0
  56. package/src/enumerations/ecies-version.js +5 -0
  57. package/src/enumerations/ecies-version.js.map +1 -0
  58. package/src/enumerations/guid-brand-type.d.ts +27 -0
  59. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  60. package/src/enumerations/guid-brand-type.js +28 -0
  61. package/src/enumerations/guid-brand-type.js.map +1 -0
  62. package/src/enumerations/guid-error-type.d.ts +7 -0
  63. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  64. package/src/enumerations/guid-error-type.js +8 -0
  65. package/src/enumerations/guid-error-type.js.map +1 -0
  66. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  67. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  68. package/src/enumerations/id-provider-error-type.js +44 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/index.d.ts +18 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/{index.ts → index.js} +1 -0
  73. package/src/enumerations/index.js.map +1 -0
  74. package/src/enumerations/invalid-email-type.d.ts +6 -0
  75. package/src/enumerations/invalid-email-type.d.ts.map +1 -0
  76. package/src/enumerations/invalid-email-type.js +7 -0
  77. package/src/enumerations/invalid-email-type.js.map +1 -0
  78. package/src/enumerations/length-encoding-type.d.ts +7 -0
  79. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  80. package/src/enumerations/length-encoding-type.js +8 -0
  81. package/src/enumerations/length-encoding-type.js.map +1 -0
  82. package/src/enumerations/length-error-type.d.ts +6 -0
  83. package/src/enumerations/length-error-type.d.ts.map +1 -0
  84. package/src/enumerations/length-error-type.js +7 -0
  85. package/src/enumerations/length-error-type.js.map +1 -0
  86. package/src/enumerations/member-error-type.d.ts +87 -0
  87. package/src/enumerations/member-error-type.d.ts.map +1 -0
  88. package/src/enumerations/member-error-type.js +88 -0
  89. package/src/enumerations/member-error-type.js.map +1 -0
  90. package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
  91. package/src/enumerations/member-type.d.ts.map +1 -0
  92. package/src/enumerations/member-type.js +16 -0
  93. package/src/enumerations/member-type.js.map +1 -0
  94. package/src/enumerations/password-login-error-type.d.ts +5 -0
  95. package/src/enumerations/password-login-error-type.d.ts.map +1 -0
  96. package/src/enumerations/password-login-error-type.js +6 -0
  97. package/src/enumerations/password-login-error-type.js.map +1 -0
  98. package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
  99. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  100. package/src/enumerations/pbkdf2-error-type.js +7 -0
  101. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  102. package/src/enumerations/pbkdf2-profile.d.ts +6 -0
  103. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  104. package/src/enumerations/pbkdf2-profile.js +7 -0
  105. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  106. package/src/enumerations/secure-storage-error-type.d.ts +6 -0
  107. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
  108. package/src/enumerations/secure-storage-error-type.js +7 -0
  109. package/src/enumerations/secure-storage-error-type.js.map +1 -0
  110. package/src/errors/disposed.d.ts +22 -0
  111. package/src/errors/disposed.d.ts.map +1 -0
  112. package/src/errors/disposed.js +28 -0
  113. package/src/errors/disposed.js.map +1 -0
  114. package/src/errors/ecies.d.ts +52 -0
  115. package/src/errors/ecies.d.ts.map +1 -0
  116. package/src/errors/ecies.js +78 -0
  117. package/src/errors/ecies.js.map +1 -0
  118. package/src/errors/guid.d.ts +49 -0
  119. package/src/errors/guid.d.ts.map +1 -0
  120. package/src/errors/guid.js +96 -0
  121. package/src/errors/guid.js.map +1 -0
  122. package/src/errors/id-provider.d.ts +23 -0
  123. package/src/errors/id-provider.d.ts.map +1 -0
  124. package/src/errors/id-provider.js +29 -0
  125. package/src/errors/id-provider.js.map +1 -0
  126. package/src/errors/{index.ts → index.d.ts} +1 -0
  127. package/src/errors/index.d.ts.map +1 -0
  128. package/src/errors/index.js +10 -0
  129. package/src/errors/index.js.map +1 -0
  130. package/src/errors/invalid-email.d.ts +8 -0
  131. package/src/errors/invalid-email.d.ts.map +1 -0
  132. package/src/errors/invalid-email.js +15 -0
  133. package/src/errors/invalid-email.js.map +1 -0
  134. package/src/errors/length.d.ts +7 -0
  135. package/src/errors/length.d.ts.map +1 -0
  136. package/src/errors/length.js +11 -0
  137. package/src/errors/length.js.map +1 -0
  138. package/src/errors/member.d.ts +7 -0
  139. package/src/errors/member.d.ts.map +1 -0
  140. package/src/errors/member.js +11 -0
  141. package/src/errors/member.js.map +1 -0
  142. package/src/errors/pbkdf2.d.ts +7 -0
  143. package/src/errors/pbkdf2.d.ts.map +1 -0
  144. package/src/errors/pbkdf2.js +11 -0
  145. package/src/errors/pbkdf2.js.map +1 -0
  146. package/src/errors/secure-storage.d.ts +7 -0
  147. package/src/errors/secure-storage.d.ts.map +1 -0
  148. package/src/errors/secure-storage.js +12 -0
  149. package/src/errors/secure-storage.js.map +1 -0
  150. package/src/errors/simple-ecies.d.ts +6 -0
  151. package/src/errors/simple-ecies.d.ts.map +1 -0
  152. package/src/errors/simple-ecies.js +12 -0
  153. package/src/errors/simple-ecies.js.map +1 -0
  154. package/src/errors/simple-test-error.d.ts +4 -0
  155. package/src/errors/simple-test-error.d.ts.map +1 -0
  156. package/src/errors/simple-test-error.js +7 -0
  157. package/src/errors/simple-test-error.js.map +1 -0
  158. package/src/i18n-setup.d.ts +32 -0
  159. package/src/i18n-setup.d.ts.map +1 -0
  160. package/src/i18n-setup.js +101 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/index.d.ts +80 -0
  163. package/src/index.d.ts.map +1 -0
  164. package/src/{index.ts → index.js} +7 -64
  165. package/src/index.js.map +1 -0
  166. package/src/interfaces/checksum-config.d.ts +5 -0
  167. package/src/interfaces/checksum-config.d.ts.map +1 -0
  168. package/src/interfaces/checksum-config.js +2 -0
  169. package/src/interfaces/checksum-config.js.map +1 -0
  170. package/src/interfaces/checksum-consts.d.ts +11 -0
  171. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  172. package/src/interfaces/checksum-consts.js +2 -0
  173. package/src/interfaces/checksum-consts.js.map +1 -0
  174. package/src/interfaces/configuration-provenance.d.ts +43 -0
  175. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  176. package/src/interfaces/configuration-provenance.js +3 -0
  177. package/src/interfaces/configuration-provenance.js.map +1 -0
  178. package/src/interfaces/constants.d.ts +70 -0
  179. package/src/interfaces/constants.d.ts.map +1 -0
  180. package/src/interfaces/constants.js +2 -0
  181. package/src/interfaces/constants.js.map +1 -0
  182. package/src/interfaces/ecies-config.d.ts +9 -0
  183. package/src/interfaces/ecies-config.d.ts.map +1 -0
  184. package/src/interfaces/ecies-config.js +2 -0
  185. package/src/interfaces/ecies-config.js.map +1 -0
  186. package/src/interfaces/ecies-consts.d.ts +61 -0
  187. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  188. package/src/interfaces/ecies-consts.js +2 -0
  189. package/src/interfaces/ecies-consts.js.map +1 -0
  190. package/src/interfaces/ecies-file-service.d.ts +7 -0
  191. package/src/interfaces/ecies-file-service.d.ts.map +1 -0
  192. package/src/interfaces/ecies-file-service.js +2 -0
  193. package/src/interfaces/ecies-file-service.js.map +1 -0
  194. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  195. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  196. package/src/interfaces/encrypted-chunk.js +12 -0
  197. package/src/interfaces/encrypted-chunk.js.map +1 -0
  198. package/src/interfaces/encryption-state.d.ts +18 -0
  199. package/src/interfaces/encryption-state.d.ts.map +1 -0
  200. package/src/interfaces/encryption-state.js +2 -0
  201. package/src/interfaces/encryption-state.js.map +1 -0
  202. package/src/interfaces/frontend-member-operational.d.ts +51 -0
  203. package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
  204. package/src/interfaces/frontend-member-operational.js +2 -0
  205. package/src/interfaces/frontend-member-operational.js.map +1 -0
  206. package/src/interfaces/guid.d.ts +78 -0
  207. package/src/interfaces/guid.d.ts.map +1 -0
  208. package/src/interfaces/guid.js +2 -0
  209. package/src/interfaces/guid.js.map +1 -0
  210. package/src/interfaces/id-provider.d.ts +107 -0
  211. package/src/interfaces/id-provider.d.ts.map +1 -0
  212. package/src/interfaces/id-provider.js +52 -0
  213. package/src/interfaces/id-provider.js.map +1 -0
  214. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  215. package/src/interfaces/index.d.ts.map +1 -0
  216. package/src/interfaces/index.js +13 -0
  217. package/src/interfaces/index.js.map +1 -0
  218. package/src/interfaces/invariant.d.ts +46 -0
  219. package/src/interfaces/invariant.d.ts.map +1 -0
  220. package/src/interfaces/invariant.js +18 -0
  221. package/src/interfaces/invariant.js.map +1 -0
  222. package/src/interfaces/library-error.d.ts +23 -0
  223. package/src/interfaces/library-error.d.ts.map +1 -0
  224. package/src/interfaces/library-error.js +2 -0
  225. package/src/interfaces/library-error.js.map +1 -0
  226. package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
  227. package/src/interfaces/member-storage.d.ts.map +1 -0
  228. package/src/interfaces/member-storage.js +2 -0
  229. package/src/interfaces/member-storage.js.map +1 -0
  230. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  231. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  232. package/src/interfaces/member-with-mnemonic.js +2 -0
  233. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  234. package/src/interfaces/member.d.ts +55 -0
  235. package/src/interfaces/member.d.ts.map +1 -0
  236. package/src/interfaces/member.js +2 -0
  237. package/src/interfaces/member.js.map +1 -0
  238. package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
  239. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  240. package/src/interfaces/multi-recipient-chunk.js +11 -0
  241. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  242. package/src/interfaces/pbkdf2-config.d.ts +7 -0
  243. package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
  244. package/src/interfaces/pbkdf2-config.js +2 -0
  245. package/src/interfaces/pbkdf2-config.js.map +1 -0
  246. package/src/interfaces/pbkdf2-consts.d.ts +9 -0
  247. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
  248. package/src/interfaces/pbkdf2-consts.js +2 -0
  249. package/src/interfaces/pbkdf2-consts.js.map +1 -0
  250. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  251. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  252. package/src/interfaces/pbkdf2-result.js +2 -0
  253. package/src/interfaces/pbkdf2-result.js.map +1 -0
  254. package/src/interfaces/stream-config.d.ts +14 -0
  255. package/src/interfaces/stream-config.d.ts.map +1 -0
  256. package/src/interfaces/stream-config.js +8 -0
  257. package/src/interfaces/stream-config.js.map +1 -0
  258. package/src/interfaces/stream-header.d.ts +29 -0
  259. package/src/interfaces/stream-header.d.ts.map +1 -0
  260. package/src/interfaces/stream-header.js +9 -0
  261. package/src/interfaces/stream-header.js.map +1 -0
  262. package/src/interfaces/stream-progress.d.ts +33 -0
  263. package/src/interfaces/stream-progress.d.ts.map +1 -0
  264. package/src/interfaces/stream-progress.js +2 -0
  265. package/src/interfaces/stream-progress.js.map +1 -0
  266. package/src/lib/configuration-provenance-utils.d.ts +11 -0
  267. package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
  268. package/src/lib/configuration-provenance-utils.js +26 -0
  269. package/src/lib/configuration-provenance-utils.js.map +1 -0
  270. package/src/lib/crypto-container.d.ts +25 -0
  271. package/src/lib/crypto-container.d.ts.map +1 -0
  272. package/src/lib/crypto-container.js +46 -0
  273. package/src/lib/crypto-container.js.map +1 -0
  274. package/src/lib/guid.d.ts +344 -0
  275. package/src/lib/guid.d.ts.map +1 -0
  276. package/src/lib/guid.js +914 -0
  277. package/src/lib/guid.js.map +1 -0
  278. package/src/lib/id-providers/custom-provider.d.ts +46 -0
  279. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  280. package/src/lib/id-providers/custom-provider.js +85 -0
  281. package/src/lib/id-providers/custom-provider.js.map +1 -0
  282. package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
  283. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  284. package/src/lib/id-providers/guidv4-provider.js +122 -0
  285. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  286. package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
  287. package/src/lib/id-providers/index.d.ts.map +1 -0
  288. package/src/lib/id-providers/index.js +29 -0
  289. package/src/lib/id-providers/index.js.map +1 -0
  290. package/src/lib/id-providers/objectid-provider.d.ts +43 -0
  291. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  292. package/src/lib/id-providers/objectid-provider.js +104 -0
  293. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  294. package/src/lib/id-providers/uuid-provider.d.ts +52 -0
  295. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  296. package/src/lib/id-providers/uuid-provider.js +110 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/index.d.ts +6 -0
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/{index.ts → index.js} +2 -2
  301. package/src/lib/index.js.map +1 -0
  302. package/src/lib/invariant-validator.d.ts +59 -0
  303. package/src/lib/invariant-validator.d.ts.map +1 -0
  304. package/src/lib/invariant-validator.js +97 -0
  305. package/src/lib/invariant-validator.js.map +1 -0
  306. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  307. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  308. package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/index.d.ts +4 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/{index.ts → index.js} +1 -0
  313. package/src/lib/invariants/index.js.map +1 -0
  314. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  315. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  316. package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
  317. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  318. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  319. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  320. package/src/lib/invariants/recipient-id-consistency.js +31 -0
  321. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  322. package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
  323. package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
  324. package/src/lib/multi-recipient-chunk-utils.js +41 -0
  325. package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
  326. package/src/member.d.ts +92 -0
  327. package/src/member.d.ts.map +1 -0
  328. package/src/member.js +322 -0
  329. package/src/member.js.map +1 -0
  330. package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
  331. package/src/pbkdf2-profiles.d.ts.map +1 -0
  332. package/src/pbkdf2-profiles.js +2 -0
  333. package/src/pbkdf2-profiles.js.map +1 -0
  334. package/src/phone-number.d.ts +6 -0
  335. package/src/phone-number.d.ts.map +1 -0
  336. package/src/phone-number.js +18 -0
  337. package/src/phone-number.js.map +1 -0
  338. package/src/regexes.d.ts +7 -0
  339. package/src/regexes.d.ts.map +1 -0
  340. package/src/regexes.js +7 -0
  341. package/src/regexes.js.map +1 -0
  342. package/src/secure-buffer.d.ts +61 -0
  343. package/src/secure-buffer.d.ts.map +1 -0
  344. package/src/secure-buffer.js +201 -0
  345. package/src/secure-buffer.js.map +1 -0
  346. package/src/secure-string.d.ts +46 -0
  347. package/src/secure-string.d.ts.map +1 -0
  348. package/src/secure-string.js +206 -0
  349. package/src/secure-string.js.map +1 -0
  350. package/src/services/aes-gcm.d.ts +57 -0
  351. package/src/services/aes-gcm.d.ts.map +1 -0
  352. package/src/services/aes-gcm.js +142 -0
  353. package/src/services/aes-gcm.js.map +1 -0
  354. package/src/services/chunk-processor.d.ts +31 -0
  355. package/src/services/chunk-processor.d.ts.map +1 -0
  356. package/src/services/chunk-processor.js +145 -0
  357. package/src/services/chunk-processor.js.map +1 -0
  358. package/src/services/ecies/crypto-core.d.ts +72 -0
  359. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  360. package/src/services/ecies/crypto-core.js +205 -0
  361. package/src/services/ecies/crypto-core.js.map +1 -0
  362. package/src/services/ecies/example.d.ts +25 -0
  363. package/src/services/ecies/example.d.ts.map +1 -0
  364. package/src/services/ecies/example.js +121 -0
  365. package/src/services/ecies/example.js.map +1 -0
  366. package/src/services/ecies/file.d.ts +18 -0
  367. package/src/services/ecies/file.d.ts.map +1 -0
  368. package/src/services/ecies/file.js +106 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/index.d.ts +38 -0
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/{index.ts → index.js} +1 -2
  373. package/src/services/ecies/index.js.map +1 -0
  374. package/src/services/ecies/integration.d.ts +59 -0
  375. package/src/services/ecies/integration.d.ts.map +1 -0
  376. package/src/services/ecies/integration.js +167 -0
  377. package/src/services/ecies/integration.js.map +1 -0
  378. package/src/services/ecies/interfaces.d.ts +54 -0
  379. package/src/services/ecies/interfaces.d.ts.map +1 -0
  380. package/src/services/ecies/interfaces.js +5 -0
  381. package/src/services/ecies/interfaces.js.map +1 -0
  382. package/src/services/ecies/manual-test.d.ts +29 -0
  383. package/src/services/ecies/manual-test.d.ts.map +1 -0
  384. package/src/services/ecies/manual-test.js +163 -0
  385. package/src/services/ecies/manual-test.js.map +1 -0
  386. package/src/services/ecies/multi-recipient.d.ts +56 -0
  387. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  388. package/src/services/ecies/multi-recipient.js +344 -0
  389. package/src/services/ecies/multi-recipient.js.map +1 -0
  390. package/src/services/ecies/service.d.ts +120 -0
  391. package/src/services/ecies/service.d.ts.map +1 -0
  392. package/src/services/ecies/service.js +210 -0
  393. package/src/services/ecies/service.js.map +1 -0
  394. package/src/services/ecies/signature.d.ts +27 -0
  395. package/src/services/ecies/signature.d.ts.map +1 -0
  396. package/src/services/ecies/signature.js +72 -0
  397. package/src/services/ecies/signature.js.map +1 -0
  398. package/src/services/ecies/single-recipient.d.ts +46 -0
  399. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  400. package/src/services/ecies/single-recipient.js +322 -0
  401. package/src/services/ecies/single-recipient.js.map +1 -0
  402. package/src/services/encryption-stream.d.ts +71 -0
  403. package/src/services/encryption-stream.d.ts.map +1 -0
  404. package/src/services/encryption-stream.js +295 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/index.d.ts +11 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/{index.ts → index.js} +1 -0
  409. package/src/services/index.js.map +1 -0
  410. package/src/services/multi-recipient-processor.d.ts +35 -0
  411. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  412. package/src/services/multi-recipient-processor.js +289 -0
  413. package/src/services/multi-recipient-processor.js.map +1 -0
  414. package/src/services/password-login.d.ts +47 -0
  415. package/src/services/password-login.d.ts.map +1 -0
  416. package/src/services/password-login.js +115 -0
  417. package/src/services/password-login.js.map +1 -0
  418. package/src/services/pbkdf2.d.ts +54 -0
  419. package/src/services/pbkdf2.d.ts.map +1 -0
  420. package/src/services/pbkdf2.js +108 -0
  421. package/src/services/pbkdf2.js.map +1 -0
  422. package/src/services/progress-tracker.d.ts +23 -0
  423. package/src/services/progress-tracker.d.ts.map +1 -0
  424. package/src/services/progress-tracker.js +103 -0
  425. package/src/services/progress-tracker.js.map +1 -0
  426. package/src/services/resumable-encryption.d.ts +19 -0
  427. package/src/services/resumable-encryption.d.ts.map +1 -0
  428. package/src/services/resumable-encryption.js +105 -0
  429. package/src/services/resumable-encryption.js.map +1 -0
  430. package/src/services/xor.d.ts +37 -0
  431. package/src/services/xor.d.ts.map +1 -0
  432. package/src/services/xor.js +63 -0
  433. package/src/services/xor.js.map +1 -0
  434. package/src/test-mocks/index.d.ts +2 -0
  435. package/src/test-mocks/index.d.ts.map +1 -0
  436. package/src/test-mocks/index.js +2 -0
  437. package/src/test-mocks/index.js.map +1 -0
  438. package/src/test-mocks/mock-frontend-member.d.ts +85 -0
  439. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
  440. package/src/test-mocks/mock-frontend-member.js +190 -0
  441. package/src/test-mocks/mock-frontend-member.js.map +1 -0
  442. package/src/testing.d.ts +2 -0
  443. package/src/testing.d.ts.map +1 -0
  444. package/src/{testing.ts → testing.js} +1 -0
  445. package/src/testing.js.map +1 -0
  446. package/src/translations/de.d.ts +4 -0
  447. package/src/translations/de.d.ts.map +1 -0
  448. package/src/translations/{de.ts → de.js} +56 -112
  449. package/src/translations/de.js.map +1 -0
  450. package/src/translations/en-US.d.ts +4 -0
  451. package/src/translations/en-US.d.ts.map +1 -0
  452. package/src/translations/{en-US.ts → en-US.js} +58 -116
  453. package/src/translations/en-US.js.map +1 -0
  454. package/src/translations/es.d.ts +4 -0
  455. package/src/translations/es.d.ts.map +1 -0
  456. package/src/translations/{es.ts → es.js} +67 -134
  457. package/src/translations/es.js.map +1 -0
  458. package/src/translations/fr.d.ts +4 -0
  459. package/src/translations/fr.d.ts.map +1 -0
  460. package/src/translations/{fr.ts → fr.js} +64 -129
  461. package/src/translations/fr.js.map +1 -0
  462. package/src/translations/ja.d.ts +4 -0
  463. package/src/translations/ja.d.ts.map +1 -0
  464. package/src/translations/{ja.ts → ja.js} +55 -111
  465. package/src/translations/ja.js.map +1 -0
  466. package/src/translations/uk.d.ts +4 -0
  467. package/src/translations/uk.d.ts.map +1 -0
  468. package/src/translations/{uk.ts → uk.js} +67 -132
  469. package/src/translations/uk.js.map +1 -0
  470. package/src/translations/zh-cn.d.ts +4 -0
  471. package/src/translations/zh-cn.d.ts.map +1 -0
  472. package/src/translations/{zh-cn.ts → zh-cn.js} +29 -60
  473. package/src/translations/zh-cn.js.map +1 -0
  474. package/src/types/deep-partial.d.ts +4 -0
  475. package/src/types/deep-partial.d.ts.map +1 -0
  476. package/src/types/deep-partial.js +2 -0
  477. package/src/types/deep-partial.js.map +1 -0
  478. package/src/{types.ts → types.d.ts} +7 -15
  479. package/src/types.d.ts.map +1 -0
  480. package/src/types.js +2 -0
  481. package/src/types.js.map +1 -0
  482. package/src/utils/encryption-type-utils.d.ts +29 -0
  483. package/src/utils/encryption-type-utils.d.ts.map +1 -0
  484. package/src/utils/encryption-type-utils.js +61 -0
  485. package/src/utils/encryption-type-utils.js.map +1 -0
  486. package/src/utils.d.ts +68 -0
  487. package/src/utils.d.ts.map +1 -0
  488. package/src/utils.js +273 -0
  489. package/src/utils.js.map +1 -0
  490. package/LICENSE +0 -21
  491. package/src/builders/ecies-builder.ts +0 -39
  492. package/src/builders/member-builder.ts +0 -155
  493. package/src/constants.ts +0 -609
  494. package/src/core/errors/crypto-error.ts +0 -78
  495. package/src/core/types/result.ts +0 -19
  496. package/src/email-string.ts +0 -82
  497. package/src/enumerations/disposed-error-type.ts +0 -11
  498. package/src/enumerations/ecies-cipher-suite.ts +0 -4
  499. package/src/enumerations/ecies-encryption-type.ts +0 -41
  500. package/src/enumerations/ecies-error-type.ts +0 -43
  501. package/src/enumerations/ecies-string-key.ts +0 -205
  502. package/src/enumerations/ecies-version.ts +0 -3
  503. package/src/enumerations/guid-brand-type.ts +0 -26
  504. package/src/enumerations/guid-error-type.ts +0 -6
  505. package/src/enumerations/id-provider-error-type.ts +0 -50
  506. package/src/enumerations/invalid-email-type.ts +0 -5
  507. package/src/enumerations/length-encoding-type.ts +0 -6
  508. package/src/enumerations/length-error-type.ts +0 -5
  509. package/src/enumerations/member-error-type.ts +0 -106
  510. package/src/enumerations/password-login-error-type.ts +0 -4
  511. package/src/enumerations/pbkdf2-error-type.ts +0 -5
  512. package/src/enumerations/pbkdf2-profile.ts +0 -5
  513. package/src/enumerations/secure-storage-error-type.ts +0 -5
  514. package/src/errors/disposed.ts +0 -36
  515. package/src/errors/ecies.ts +0 -153
  516. package/src/errors/guid.ts +0 -130
  517. package/src/errors/id-provider.ts +0 -40
  518. package/src/errors/invalid-email.ts +0 -23
  519. package/src/errors/length.ts +0 -19
  520. package/src/errors/member.ts +0 -20
  521. package/src/errors/pbkdf2.ts +0 -20
  522. package/src/errors/secure-storage.ts +0 -17
  523. package/src/errors/simple-ecies.ts +0 -21
  524. package/src/errors/simple-test-error.ts +0 -6
  525. package/src/i18n-setup.ts +0 -130
  526. package/src/interfaces/checksum-config.ts +0 -4
  527. package/src/interfaces/checksum-consts.ts +0 -13
  528. package/src/interfaces/configuration-provenance.ts +0 -54
  529. package/src/interfaces/constants.ts +0 -75
  530. package/src/interfaces/ecies-config.ts +0 -8
  531. package/src/interfaces/ecies-consts.ts +0 -76
  532. package/src/interfaces/ecies-file-service.ts +0 -6
  533. package/src/interfaces/encrypted-chunk.ts +0 -64
  534. package/src/interfaces/encryption-state.ts +0 -19
  535. package/src/interfaces/frontend-member-operational.ts +0 -77
  536. package/src/interfaces/guid.ts +0 -86
  537. package/src/interfaces/id-provider.ts +0 -152
  538. package/src/interfaces/invariant.ts +0 -60
  539. package/src/interfaces/library-error.ts +0 -23
  540. package/src/interfaces/member.ts +0 -84
  541. package/src/interfaces/multi-recipient-chunk.ts +0 -61
  542. package/src/interfaces/pbkdf2-config.ts +0 -6
  543. package/src/interfaces/pbkdf2-consts.ts +0 -10
  544. package/src/interfaces/pbkdf2-result.ts +0 -5
  545. package/src/interfaces/stream-config.ts +0 -17
  546. package/src/interfaces/stream-header.ts +0 -34
  547. package/src/interfaces/stream-progress.ts +0 -31
  548. package/src/lib/configuration-provenance-utils.ts +0 -29
  549. package/src/lib/crypto-container.ts +0 -64
  550. package/src/lib/guid.ts +0 -1097
  551. package/src/lib/id-providers/custom-provider.ts +0 -109
  552. package/src/lib/id-providers/guidv4-provider.ts +0 -141
  553. package/src/lib/id-providers/objectid-provider.ts +0 -125
  554. package/src/lib/id-providers/uuid-provider.ts +0 -133
  555. package/src/lib/invariant-validator.ts +0 -133
  556. package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
  557. package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
  558. package/src/lib/invariants/recipient-id-consistency.ts +0 -46
  559. package/src/lib/multi-recipient-chunk-utils.ts +0 -63
  560. package/src/member.ts +0 -495
  561. package/src/phone-number.ts +0 -18
  562. package/src/regexes.ts +0 -10
  563. package/src/secure-buffer.ts +0 -226
  564. package/src/secure-string.ts +0 -244
  565. package/src/services/aes-gcm.ts +0 -220
  566. package/src/services/chunk-processor.ts +0 -188
  567. package/src/services/ecies/README.md +0 -147
  568. package/src/services/ecies/crypto-core.ts +0 -292
  569. package/src/services/ecies/example.ts +0 -185
  570. package/src/services/ecies/file.ts +0 -167
  571. package/src/services/ecies/integration.ts +0 -241
  572. package/src/services/ecies/interfaces.ts +0 -62
  573. package/src/services/ecies/manual-test.ts +0 -219
  574. package/src/services/ecies/multi-recipient.ts +0 -545
  575. package/src/services/ecies/service.ts +0 -370
  576. package/src/services/ecies/signature.ts +0 -93
  577. package/src/services/ecies/single-recipient.ts +0 -476
  578. package/src/services/encryption-stream.ts +0 -435
  579. package/src/services/multi-recipient-processor.ts +0 -377
  580. package/src/services/password-login.ts +0 -226
  581. package/src/services/pbkdf2.ts +0 -169
  582. package/src/services/progress-tracker.ts +0 -128
  583. package/src/services/resumable-encryption.ts +0 -135
  584. package/src/services/xor.ts +0 -65
  585. package/src/test-mocks/index.ts +0 -1
  586. package/src/test-mocks/mock-frontend-member.ts +0 -276
  587. package/src/types/deep-partial.ts +0 -11
  588. package/src/utils/encryption-type-utils.ts +0 -76
  589. package/src/utils.ts +0 -329
@@ -1,185 +0,0 @@
1
- /**
2
- * Example usage of the browser-compatible ECIES service
3
- * This file demonstrates how to use the web-based ECIES implementation
4
- */
5
-
6
- import { SecureString } from '../../secure-string';
7
- import {
8
- stringToUint8Array,
9
- uint8ArrayToHex,
10
- uint8ArrayToString,
11
- } from '../../utils';
12
- import { ECIESService } from './service';
13
-
14
- // https://docs.rs/bip39/latest/src/bip39/lib.rs.html
15
-
16
- /**
17
- * Example: Basic encryption and decryption
18
- */
19
- export async function basicEncryptionExample(): Promise<void> {
20
- console.log('=== Basic ECIES Encryption Example ===');
21
-
22
- // Create ECIES service instance
23
- const ecies = new ECIESService();
24
-
25
- // Generate a mnemonic and derive keys
26
- const mnemonic = ecies.generateNewMnemonic();
27
- console.log('Generated mnemonic:', mnemonic);
28
-
29
- const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
30
- console.log('Private key hash:', uint8ArrayToHex(privateKey).slice(0, 16) + '...');
31
- console.log('Public key:', uint8ArrayToHex(publicKey));
32
-
33
- // Message to encrypt
34
- const message = stringToUint8Array('Hello, Digital Defiance!');
35
- console.log('Original message:', uint8ArrayToString(message));
36
-
37
- // Encrypt using single mode (with CRC and length)
38
- const encrypted = await ecies.encryptSimpleOrSingle(
39
- false,
40
- publicKey,
41
- message,
42
- );
43
- console.log('Encrypted data length:', encrypted.length);
44
- console.log('Encrypted data (hex):', uint8ArrayToHex(encrypted));
45
-
46
- // Decrypt the message
47
- const decrypted = await ecies.decryptSimpleOrSingleWithHeader(
48
- false,
49
- privateKey,
50
- encrypted,
51
- );
52
- console.log('Decrypted message:', uint8ArrayToString(decrypted));
53
-
54
- // Verify the message matches
55
- const matches = uint8ArrayToString(message) === uint8ArrayToString(decrypted);
56
- console.log('Encryption/Decryption successful:', matches);
57
- }
58
-
59
- /**
60
- * Example: Simple mode encryption (without CRC)
61
- */
62
- export async function simpleEncryptionExample(): Promise<void> {
63
- console.log('\n=== Simple ECIES Encryption Example ===');
64
-
65
- const ecies = new ECIESService();
66
-
67
- // Generate keys for sender and receiver
68
- const senderMnemonic = ecies.generateNewMnemonic();
69
- const receiverMnemonic = ecies.generateNewMnemonic();
70
-
71
- const senderKeys = ecies.mnemonicToSimpleKeyPair(senderMnemonic);
72
- const receiverKeys = ecies.mnemonicToSimpleKeyPair(receiverMnemonic);
73
-
74
- console.log('Sender public key:', uint8ArrayToHex(senderKeys.publicKey));
75
- console.log('Receiver public key:', uint8ArrayToHex(receiverKeys.publicKey));
76
-
77
- // Message to encrypt
78
- const message = stringToUint8Array('This is a simple encrypted message');
79
- console.log('Original message:', uint8ArrayToString(message));
80
-
81
- // Encrypt using simple mode (no CRC, no length prefix)
82
- const encrypted = await ecies.encryptSimpleOrSingle(
83
- true,
84
- receiverKeys.publicKey,
85
- message,
86
- );
87
- console.log('Encrypted data length:', encrypted.length);
88
-
89
- // Decrypt the message
90
- const decrypted = await ecies.decryptSimpleOrSingleWithHeader(
91
- true,
92
- receiverKeys.privateKey,
93
- encrypted,
94
- );
95
- console.log('Decrypted message:', uint8ArrayToString(decrypted));
96
-
97
- // Verify the message matches
98
- const matches = uint8ArrayToString(message) === uint8ArrayToString(decrypted);
99
- console.log('Simple encryption/decryption successful:', matches);
100
- }
101
-
102
- /**
103
- * Example: Digital signature
104
- */
105
- export async function signatureExample(): Promise<void> {
106
- console.log('\n=== Digital Signature Example ===');
107
-
108
- const ecies = new ECIESService();
109
-
110
- // Generate keys
111
- const mnemonic = ecies.generateNewMnemonic();
112
- const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
113
-
114
- // Message to sign
115
- const message = stringToUint8Array('This message is digitally signed');
116
- console.log('Message to sign:', uint8ArrayToString(message));
117
-
118
- // Sign the message
119
- const signature = ecies.signMessage(privateKey, message);
120
- console.log('Signature:', uint8ArrayToHex(signature));
121
-
122
- // Verify the signature
123
- const isValid = ecies.verifyMessage(publicKey, message, signature);
124
- console.log('Signature valid:', isValid);
125
-
126
- // Test with tampered message
127
- const tamperedMessage = stringToUint8Array(
128
- 'This message has been tampered with',
129
- );
130
- const isTamperedValid = ecies.verifyMessage(
131
- publicKey,
132
- tamperedMessage,
133
- signature,
134
- );
135
- console.log('Tampered message signature valid:', isTamperedValid);
136
- }
137
-
138
- /**
139
- * Example: Wallet derivation from mnemonic
140
- */
141
- export async function walletDerivationExample(): Promise<void> {
142
- console.log('\n=== Wallet Derivation Example ===');
143
-
144
- const ecies = new ECIESService();
145
-
146
- // Use a known mnemonic for reproducible results
147
- const mnemonic = new SecureString(
148
- 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about',
149
- );
150
- console.log('Test mnemonic: [REDACTED - known test mnemonic]');
151
-
152
- // Derive wallet
153
- const { wallet, seed } = ecies.walletAndSeedFromMnemonic(mnemonic);
154
- console.log('Seed:', uint8ArrayToHex(seed));
155
- console.log('Private key hash:', uint8ArrayToHex(wallet.getPrivateKey()).slice(0, 16) + '...');
156
- console.log('Public key:', uint8ArrayToHex(wallet.getPublicKey()));
157
-
158
- // Derive the same keys using the simple method
159
- const simpleKeys = ecies.mnemonicToSimpleKeyPair(mnemonic);
160
- console.log(
161
- 'Simple private key matches:',
162
- uint8ArrayToHex(wallet.getPrivateKey()) ===
163
- uint8ArrayToHex(simpleKeys.privateKey),
164
- );
165
- console.log(
166
- 'Simple public key matches:',
167
- uint8ArrayToHex(wallet.getPublicKey()) ===
168
- uint8ArrayToHex(simpleKeys.publicKey),
169
- );
170
- }
171
-
172
- /**
173
- * Run all examples
174
- */
175
- export async function runAllExamples(): Promise<void> {
176
- try {
177
- await basicEncryptionExample();
178
- await simpleEncryptionExample();
179
- await signatureExample();
180
- await walletDerivationExample();
181
- console.log('\n=== All examples completed successfully! ===');
182
- } catch (error) {
183
- console.error('Example failed:', error);
184
- }
185
- }
@@ -1,167 +0,0 @@
1
- import { IEciesFileService } from '../../interfaces/ecies-file-service';
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 implements IEciesFileService {
12
- private static readonly CHUNK_SIZE = 1024 * 1024; // 1MB chunks
13
- private static readonly HEADER_SIZE = 20; // 4 bytes each: version, chunkSize, totalChunks, originalSize, padding
14
-
15
- constructor(
16
- private eciesService: ECIESService,
17
- private userPrivateKey: Uint8Array,
18
- ) {}
19
-
20
- async encryptFile(
21
- file: File,
22
- recipientPublicKey: Uint8Array,
23
- ): Promise<Uint8Array> {
24
- const totalChunks = Math.ceil(file.size / EciesFileService.CHUNK_SIZE);
25
- const header: ChunkedFileHeader = {
26
- version: 1,
27
- chunkSize: EciesFileService.CHUNK_SIZE,
28
- totalChunks,
29
- originalSize: file.size,
30
- };
31
-
32
- const headerBytes = this.serializeHeader(header);
33
- const encryptedHeader = await this.eciesService.encryptSimpleOrSingle(
34
- false,
35
- recipientPublicKey,
36
- headerBytes,
37
- );
38
-
39
- const chunks: Uint8Array[] = [encryptedHeader];
40
-
41
- for (let i = 0; i < totalChunks; i++) {
42
- const offset = i * EciesFileService.CHUNK_SIZE;
43
- const chunk = file.slice(offset, offset + EciesFileService.CHUNK_SIZE);
44
- const chunkData = new Uint8Array(await chunk.arrayBuffer());
45
- const encryptedChunk = await this.eciesService.encryptSimpleOrSingle(
46
- false,
47
- recipientPublicKey,
48
- chunkData,
49
- );
50
- chunks.push(encryptedChunk);
51
- }
52
-
53
- const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
54
- const result = new Uint8Array(totalLength);
55
- let offset = 0;
56
- for (const chunk of chunks) {
57
- result.set(chunk, offset);
58
- offset += chunk.length;
59
- }
60
- return result;
61
- }
62
-
63
- async decryptFile(encryptedData: Uint8Array): Promise<Uint8Array> {
64
- const { header, chunks } = await this.parseEncryptedFile(encryptedData);
65
- const decryptedChunks: Uint8Array[] = [];
66
-
67
- for (const chunk of chunks) {
68
- const decrypted = await this.eciesService.decryptSimpleOrSingleWithHeader(
69
- false,
70
- this.userPrivateKey,
71
- chunk,
72
- );
73
- decryptedChunks.push(decrypted);
74
- }
75
-
76
- const result = new Uint8Array(header.originalSize);
77
- let offset = 0;
78
- for (const chunk of decryptedChunks) {
79
- const copyLength = Math.min(chunk.length, header.originalSize - offset);
80
- result.set(chunk.subarray(0, copyLength), offset);
81
- offset += copyLength;
82
- }
83
- return result;
84
- }
85
-
86
- downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void {
87
- this.downloadFile(encryptedData, `${filename}.encrypted`);
88
- }
89
-
90
- downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void {
91
- this.downloadFile(decryptedData, filename);
92
- }
93
-
94
- private serializeHeader(header: ChunkedFileHeader): Uint8Array {
95
- const buffer = new ArrayBuffer(EciesFileService.HEADER_SIZE);
96
- const view = new DataView(buffer);
97
- view.setUint32(0, header.version, false);
98
- view.setUint32(4, header.chunkSize, false);
99
- view.setUint32(8, header.totalChunks, false);
100
- view.setUint32(12, header.originalSize, false);
101
- return new Uint8Array(buffer);
102
- }
103
-
104
- private deserializeHeader(data: Uint8Array): ChunkedFileHeader {
105
- const view = new DataView(
106
- data.buffer,
107
- data.byteOffset,
108
- EciesFileService.HEADER_SIZE,
109
- );
110
- return {
111
- version: view.getUint32(0, false),
112
- chunkSize: view.getUint32(4, false),
113
- totalChunks: view.getUint32(8, false),
114
- originalSize: view.getUint32(12, false),
115
- };
116
- }
117
-
118
- private async parseEncryptedFile(encryptedData: Uint8Array): Promise<{
119
- header: ChunkedFileHeader;
120
- chunks: Uint8Array[];
121
- }> {
122
- // First, decrypt the header to get metadata
123
- const headerLength = this.eciesService.computeEncryptedLengthFromDataLength(
124
- EciesFileService.HEADER_SIZE,
125
- 'single',
126
- );
127
-
128
- const encryptedHeader = encryptedData.subarray(0, headerLength);
129
- const decryptedHeaderBytes =
130
- await this.eciesService.decryptSimpleOrSingleWithHeader(
131
- false,
132
- this.userPrivateKey,
133
- encryptedHeader,
134
- );
135
-
136
- const header = this.deserializeHeader(decryptedHeaderBytes);
137
- const chunks: Uint8Array[] = [];
138
- let offset = headerLength;
139
-
140
- for (let i = 0; i < header.totalChunks; i++) {
141
- const chunkLength =
142
- this.eciesService.computeEncryptedLengthFromDataLength(
143
- i === header.totalChunks - 1
144
- ? header.originalSize % header.chunkSize || header.chunkSize
145
- : header.chunkSize,
146
- 'single',
147
- );
148
-
149
- chunks.push(encryptedData.subarray(offset, offset + chunkLength));
150
- offset += chunkLength;
151
- }
152
-
153
- return { header, chunks };
154
- }
155
-
156
- private downloadFile(data: Uint8Array, filename: string): void {
157
- const blob = new Blob([data.slice()]);
158
- const url = URL.createObjectURL(blob);
159
- const a = document.createElement('a');
160
- a.href = url;
161
- a.download = filename;
162
- document.body.appendChild(a);
163
- a.click();
164
- document.body.removeChild(a);
165
- URL.revokeObjectURL(url);
166
- }
167
- }
@@ -1,241 +0,0 @@
1
- /**
2
- * Integration helpers for using the browser ECIES service with existing web-crypto functionality
3
- */
4
-
5
- import { EciesComponentId, getEciesI18nEngine } from '../../i18n-setup';
6
- import { SecureString } from '../../secure-string';
7
- import { SignatureUint8Array } from '../../types';
8
- import {
9
- hexToUint8Array,
10
- stringToUint8Array,
11
- uint8ArrayToHex,
12
- uint8ArrayToString,
13
- } from '../../utils';
14
- import { IWalletSeed } from './interfaces';
15
- import { ECIESService } from './service';
16
- import { EciesStringKey } from '../../enumerations';
17
-
18
- /**
19
- * Enhanced web crypto service that uses the new ECIES implementation
20
- */
21
- export class EnhancedWebCryptoService {
22
- private ecies: ECIESService;
23
-
24
- constructor() {
25
- this.ecies = new ECIESService();
26
- }
27
-
28
- /**
29
- * Derive wallet from mnemonic using the new ECIES service
30
- * This replaces the existing walletFromMnemonic method with better browser compatibility
31
- */
32
- public async walletFromMnemonic(
33
- mnemonic: SecureString,
34
- ): Promise<IWalletSeed> {
35
- const { wallet, seed } = this.ecies.walletAndSeedFromMnemonic(mnemonic);
36
- return {
37
- wallet,
38
- seed,
39
- };
40
- }
41
-
42
- /**
43
- * Decrypt challenge using the new ECIES service
44
- * This provides better compatibility and error handling than the original implementation
45
- */
46
- public async decryptChallenge(
47
- encryptedHex: string,
48
- privateKey: Uint8Array,
49
- ): Promise<Uint8Array> {
50
- try {
51
- const encryptedData = hexToUint8Array(encryptedHex);
52
-
53
- // Try to decrypt using single mode first (most common)
54
- try {
55
- return await this.ecies.decryptSimpleOrSingleWithHeader(
56
- false,
57
- privateKey,
58
- encryptedData,
59
- );
60
- } catch {
61
- // Fallback to simple mode
62
- return await this.ecies.decryptSimpleOrSingleWithHeader(
63
- true,
64
- privateKey,
65
- encryptedData,
66
- );
67
- }
68
- } catch (error) {
69
- const engine = getEciesI18nEngine();
70
- throw new Error(engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_FailedToDecryptChallengeTemplate, { error: String(error) }));
71
- }
72
- }
73
-
74
- /**
75
- * Encrypt data for a recipient
76
- */
77
- public async encryptForRecipient(
78
- recipientPublicKey: Uint8Array,
79
- data: Uint8Array,
80
- useSimpleMode: boolean = false,
81
- ): Promise<string> {
82
- const encrypted = await this.ecies.encryptSimpleOrSingle(
83
- !useSimpleMode,
84
- recipientPublicKey,
85
- data,
86
- );
87
- return uint8ArrayToHex(encrypted);
88
- }
89
-
90
- /**
91
- * Sign data with private key
92
- */
93
- public signData(privateKey: Uint8Array, data: Uint8Array): string {
94
- const signature = this.ecies.signMessage(privateKey, data);
95
- return uint8ArrayToHex(signature);
96
- }
97
-
98
- /**
99
- * Verify signature
100
- */
101
- public verifySignature(
102
- publicKey: Uint8Array,
103
- data: Uint8Array,
104
- signatureHex: string,
105
- ): boolean {
106
- const signature = hexToUint8Array(signatureHex) as SignatureUint8Array;
107
- return this.ecies.verifyMessage(publicKey, data, signature);
108
- }
109
-
110
- /**
111
- * Generate new mnemonic
112
- */
113
- public generateMnemonic(): SecureString {
114
- return this.ecies.generateNewMnemonic();
115
- }
116
-
117
- /**
118
- * Complete client-side challenge verification (enhanced version)
119
- */
120
- public async verifyChallengeResponse(
121
- encryptedChallenge: string,
122
- mnemonic: SecureString,
123
- systemPublicKeyHex: string,
124
- ): Promise<string> {
125
- // Derive keys from mnemonic
126
- const { wallet } = await this.walletFromMnemonic(mnemonic);
127
-
128
- // Decrypt the challenge
129
- const decryptedPayload = await this.decryptChallenge(
130
- encryptedChallenge,
131
- wallet.getPrivateKey(),
132
- );
133
-
134
- // Extract nonce and signature (assuming 48 bytes payload + signature)
135
- const payload = decryptedPayload.slice(0, 48);
136
- const signature = decryptedPayload.slice(48);
137
-
138
- // Convert system public key from hex
139
- const systemPubKey = hexToUint8Array(systemPublicKeyHex);
140
-
141
- // Verify system signature
142
- const isValid = this.verifySignature(
143
- systemPubKey,
144
- payload,
145
- uint8ArrayToHex(signature),
146
- );
147
-
148
- if (!isValid) {
149
- const engine = getEciesI18nEngine();
150
- const error = engine.translate(EciesComponentId, EciesStringKey.Error_ECIESError_InvalidChallengeSignature);
151
- }
152
-
153
- return uint8ArrayToHex(decryptedPayload);
154
- }
155
- }
156
-
157
- /**
158
- * Migration helper to transition from old WebCryptoService to new ECIES service
159
- */
160
- export class MigrationHelper {
161
- /**
162
- * Test compatibility between old and new implementations
163
- */
164
- public static async testCompatibility(mnemonic: SecureString): Promise<{
165
- compatible: boolean;
166
- details: {
167
- mnemonicValid: boolean;
168
- keysMatch: boolean;
169
- encryptionWorks: boolean;
170
- };
171
- }> {
172
- try {
173
- const ecies = new ECIESService();
174
- const enhanced = new EnhancedWebCryptoService();
175
-
176
- // Test mnemonic validation
177
- let mnemonicValid = false;
178
- try {
179
- ecies.walletAndSeedFromMnemonic(mnemonic);
180
- mnemonicValid = true;
181
- } catch {
182
- mnemonicValid = false;
183
- }
184
-
185
- // Test key derivation
186
- let keysMatch = false;
187
- if (mnemonicValid) {
188
- try {
189
- const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(mnemonic);
190
- const { wallet: wallet2 } = await enhanced.walletFromMnemonic(
191
- mnemonic,
192
- );
193
- keysMatch =
194
- uint8ArrayToHex(wallet1.getPrivateKey()) ===
195
- uint8ArrayToHex(wallet2.getPrivateKey());
196
- } catch {
197
- keysMatch = false;
198
- }
199
- }
200
-
201
- // Test encryption roundtrip
202
- let encryptionWorks = false;
203
- if (keysMatch) {
204
- try {
205
- const { wallet } = await enhanced.walletFromMnemonic(mnemonic);
206
- const testMessage = stringToUint8Array('Test message');
207
- const encrypted = await enhanced.encryptForRecipient(
208
- wallet.getPublicKey(),
209
- testMessage,
210
- );
211
- const decrypted = await enhanced.decryptChallenge(
212
- encrypted,
213
- wallet.getPrivateKey(),
214
- );
215
- encryptionWorks =
216
- uint8ArrayToString(testMessage) === uint8ArrayToString(decrypted);
217
- } catch {
218
- encryptionWorks = false;
219
- }
220
- }
221
-
222
- return {
223
- compatible: mnemonicValid && keysMatch && encryptionWorks,
224
- details: {
225
- mnemonicValid,
226
- keysMatch,
227
- encryptionWorks,
228
- },
229
- };
230
- } catch {
231
- return {
232
- compatible: false,
233
- details: {
234
- mnemonicValid: false,
235
- keysMatch: false,
236
- encryptionWorks: false,
237
- },
238
- };
239
- }
240
- }
241
- }
@@ -1,62 +0,0 @@
1
- /**
2
- * Browser-compatible ECIES interfaces
3
- */
4
-
5
- import { Wallet } from '@ethereumjs/wallet';
6
- import { EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
7
-
8
- export interface ISimpleKeyPair {
9
- privateKey: Uint8Array;
10
- publicKey: Uint8Array;
11
- }
12
-
13
- export interface IWalletSeed {
14
- wallet: Wallet;
15
- seed: Uint8Array;
16
- }
17
-
18
- export interface ISingleEncryptedParsedHeader {
19
- preamble?: Uint8Array;
20
- encryptionType: EciesEncryptionTypeEnum;
21
- ephemeralPublicKey: Uint8Array;
22
- iv: Uint8Array;
23
- authTag: Uint8Array;
24
- dataLength: number;
25
- headerSize: number;
26
- }
27
-
28
- export interface IEncryptionResult {
29
- encryptedData: Uint8Array;
30
- ephemeralPublicKey: Uint8Array;
31
- iv: Uint8Array;
32
- authTag: Uint8Array;
33
- }
34
-
35
- export interface IDecryptionResult {
36
- decrypted: Uint8Array;
37
- consumedBytes: number;
38
- }
39
-
40
- export interface IMultiRecipient {
41
- id: Uint8Array; // 16-byte ObjectId
42
- publicKey: Uint8Array;
43
- }
44
-
45
- export interface IMultiEncryptedMessage {
46
- dataLength: number;
47
- recipientCount: number;
48
- recipientIds: Uint8Array[];
49
- recipientKeys: Uint8Array[];
50
- encryptedMessage: Uint8Array;
51
- headerSize: number;
52
- ephemeralPublicKey?: Uint8Array; // Added for shared ephemeral key optimization
53
- }
54
-
55
- export interface IMultiEncryptedParsedHeader {
56
- dataLength: number;
57
- recipientCount: number;
58
- recipientIds: Uint8Array[];
59
- recipientKeys: Uint8Array[];
60
- headerSize: number;
61
- ephemeralPublicKey?: Uint8Array; // Added for shared ephemeral key optimization
62
- }