@digitaldefiance/ecies-lib 4.4.13 → 4.4.15

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 (597) hide show
  1. package/package.json +5 -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 +34 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -1
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +9 -0
  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 +101 -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 +457 -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 +60 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/{index.ts → index.d.ts} +1 -1
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/index.js +9 -0
  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 +16 -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 +72 -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 +16 -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 +9 -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 +30 -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 +48 -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 +202 -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 +8 -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 +31 -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 +11 -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 +47 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/index.js +21 -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 +10 -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 +11 -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 +10 -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 +91 -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 +19 -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 +9 -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 +10 -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 +10 -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 +10 -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 +32 -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 +82 -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 +100 -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 +33 -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 +13 -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 +19 -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 +15 -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 +15 -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 +15 -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 +16 -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 +16 -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 +11 -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 +109 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/{index.ts → index.d.ts} +12 -72
  163. package/src/index.d.ts.map +1 -0
  164. package/src/index.js +146 -0
  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 +3 -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 +3 -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 +8 -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 +3 -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 +3 -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 +3 -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 +3 -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 +15 -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 +5 -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 +3 -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 +3 -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 +56 -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 +16 -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 +22 -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 +3 -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 +3 -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 +3 -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 +3 -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 +16 -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 +3 -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 +3 -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 +3 -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 +11 -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 +12 -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 +3 -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 +30 -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 +50 -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 +919 -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 +89 -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 +126 -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 +37 -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 +108 -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 +114 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/{index.ts → index.d.ts} +2 -2
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/index.js +9 -0
  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 +101 -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 +53 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/{index.ts → index.d.ts} +1 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/index.js +7 -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 +62 -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 +35 -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 +45 -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 +327 -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 +3 -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 +22 -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 +10 -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 +205 -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 +210 -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 +146 -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 +149 -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 +209 -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 +128 -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 +110 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/{index.ts → index.d.ts} +1 -3
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/index.js +44 -0
  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 +172 -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 +6 -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 +171 -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 +348 -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 +214 -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 +76 -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 +326 -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 +299 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/{index.ts → index.d.ts} +1 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/index.js +14 -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 +293 -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 +119 -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 +112 -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 +107 -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 +109 -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 +67 -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 +5 -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 +194 -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.js +6 -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.js +207 -0
  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.js +207 -0
  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.js +207 -0
  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.js +207 -0
  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.js +206 -0
  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.js +209 -0
  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.js +206 -0
  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 +3 -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 +3 -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 +67 -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 +291 -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/testing.ts +0 -2
  588. package/src/translations/de.ts +0 -260
  589. package/src/translations/en-US.ts +0 -262
  590. package/src/translations/es.ts +0 -271
  591. package/src/translations/fr.ts +0 -269
  592. package/src/translations/ja.ts +0 -259
  593. package/src/translations/uk.ts +0 -271
  594. package/src/translations/zh-cn.ts +0 -234
  595. package/src/types/deep-partial.ts +0 -11
  596. package/src/utils/encryption-type-utils.ts +0 -76
  597. package/src/utils.ts +0 -329
@@ -0,0 +1,25 @@
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
+ * Example: Basic encryption and decryption
7
+ */
8
+ export declare function basicEncryptionExample(): Promise<void>;
9
+ /**
10
+ * Example: Simple mode encryption (without CRC)
11
+ */
12
+ export declare function simpleEncryptionExample(): Promise<void>;
13
+ /**
14
+ * Example: Digital signature
15
+ */
16
+ export declare function signatureExample(): Promise<void>;
17
+ /**
18
+ * Example: Wallet derivation from mnemonic
19
+ */
20
+ export declare function walletDerivationExample(): Promise<void>;
21
+ /**
22
+ * Run all examples
23
+ */
24
+ export declare function runAllExamples(): Promise<void>;
25
+ //# sourceMappingURL=example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/example.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC5D;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC7D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BtD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6B7D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAUpD"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ /**
3
+ * Example usage of the browser-compatible ECIES service
4
+ * This file demonstrates how to use the web-based ECIES implementation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.basicEncryptionExample = basicEncryptionExample;
8
+ exports.simpleEncryptionExample = simpleEncryptionExample;
9
+ exports.signatureExample = signatureExample;
10
+ exports.walletDerivationExample = walletDerivationExample;
11
+ exports.runAllExamples = runAllExamples;
12
+ const secure_string_1 = require("../../secure-string");
13
+ const utils_1 = require("../../utils");
14
+ const service_1 = require("./service");
15
+ // https://docs.rs/bip39/latest/src/bip39/lib.rs.html
16
+ /**
17
+ * Example: Basic encryption and decryption
18
+ */
19
+ async function basicEncryptionExample() {
20
+ console.log('=== Basic ECIES Encryption Example ===');
21
+ // Create ECIES service instance
22
+ const ecies = new service_1.ECIESService();
23
+ // Generate a mnemonic and derive keys
24
+ const mnemonic = ecies.generateNewMnemonic();
25
+ console.log('Generated mnemonic:', mnemonic);
26
+ const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
27
+ console.log('Private key hash:', (0, utils_1.uint8ArrayToHex)(privateKey).slice(0, 16) + '...');
28
+ console.log('Public key:', (0, utils_1.uint8ArrayToHex)(publicKey));
29
+ // Message to encrypt
30
+ const message = (0, utils_1.stringToUint8Array)('Hello, Digital Defiance!');
31
+ console.log('Original message:', (0, utils_1.uint8ArrayToString)(message));
32
+ // Encrypt using single mode (with CRC and length)
33
+ const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
34
+ console.log('Encrypted data length:', encrypted.length);
35
+ console.log('Encrypted data (hex):', (0, utils_1.uint8ArrayToHex)(encrypted));
36
+ // Decrypt the message
37
+ const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
38
+ console.log('Decrypted message:', (0, utils_1.uint8ArrayToString)(decrypted));
39
+ // Verify the message matches
40
+ const matches = (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
41
+ console.log('Encryption/Decryption successful:', matches);
42
+ }
43
+ /**
44
+ * Example: Simple mode encryption (without CRC)
45
+ */
46
+ async function simpleEncryptionExample() {
47
+ console.log('\n=== Simple ECIES Encryption Example ===');
48
+ const ecies = new service_1.ECIESService();
49
+ // Generate keys for sender and receiver
50
+ const senderMnemonic = ecies.generateNewMnemonic();
51
+ const receiverMnemonic = ecies.generateNewMnemonic();
52
+ const senderKeys = ecies.mnemonicToSimpleKeyPair(senderMnemonic);
53
+ const receiverKeys = ecies.mnemonicToSimpleKeyPair(receiverMnemonic);
54
+ console.log('Sender public key:', (0, utils_1.uint8ArrayToHex)(senderKeys.publicKey));
55
+ console.log('Receiver public key:', (0, utils_1.uint8ArrayToHex)(receiverKeys.publicKey));
56
+ // Message to encrypt
57
+ const message = (0, utils_1.stringToUint8Array)('This is a simple encrypted message');
58
+ console.log('Original message:', (0, utils_1.uint8ArrayToString)(message));
59
+ // Encrypt using simple mode (no CRC, no length prefix)
60
+ const encrypted = await ecies.encryptSimpleOrSingle(true, receiverKeys.publicKey, message);
61
+ console.log('Encrypted data length:', encrypted.length);
62
+ // Decrypt the message
63
+ const decrypted = await ecies.decryptSimpleOrSingleWithHeader(true, receiverKeys.privateKey, encrypted);
64
+ console.log('Decrypted message:', (0, utils_1.uint8ArrayToString)(decrypted));
65
+ // Verify the message matches
66
+ const matches = (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
67
+ console.log('Simple encryption/decryption successful:', matches);
68
+ }
69
+ /**
70
+ * Example: Digital signature
71
+ */
72
+ async function signatureExample() {
73
+ console.log('\n=== Digital Signature Example ===');
74
+ const ecies = new service_1.ECIESService();
75
+ // Generate keys
76
+ const mnemonic = ecies.generateNewMnemonic();
77
+ const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
78
+ // Message to sign
79
+ const message = (0, utils_1.stringToUint8Array)('This message is digitally signed');
80
+ console.log('Message to sign:', (0, utils_1.uint8ArrayToString)(message));
81
+ // Sign the message
82
+ const signature = ecies.signMessage(privateKey, message);
83
+ console.log('Signature:', (0, utils_1.uint8ArrayToHex)(signature));
84
+ // Verify the signature
85
+ const isValid = ecies.verifyMessage(publicKey, message, signature);
86
+ console.log('Signature valid:', isValid);
87
+ // Test with tampered message
88
+ const tamperedMessage = (0, utils_1.stringToUint8Array)('This message has been tampered with');
89
+ const isTamperedValid = ecies.verifyMessage(publicKey, tamperedMessage, signature);
90
+ console.log('Tampered message signature valid:', isTamperedValid);
91
+ }
92
+ /**
93
+ * Example: Wallet derivation from mnemonic
94
+ */
95
+ async function walletDerivationExample() {
96
+ console.log('\n=== Wallet Derivation Example ===');
97
+ const ecies = new service_1.ECIESService();
98
+ // Use a known mnemonic for reproducible results
99
+ const mnemonic = new secure_string_1.SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
100
+ console.log('Test mnemonic: [REDACTED - known test mnemonic]');
101
+ // Derive wallet
102
+ const { wallet, seed } = ecies.walletAndSeedFromMnemonic(mnemonic);
103
+ console.log('Seed:', (0, utils_1.uint8ArrayToHex)(seed));
104
+ console.log('Private key hash:', (0, utils_1.uint8ArrayToHex)(wallet.getPrivateKey()).slice(0, 16) + '...');
105
+ console.log('Public key:', (0, utils_1.uint8ArrayToHex)(wallet.getPublicKey()));
106
+ // Derive the same keys using the simple method
107
+ const simpleKeys = ecies.mnemonicToSimpleKeyPair(mnemonic);
108
+ console.log('Simple private key matches:', (0, utils_1.uint8ArrayToHex)(wallet.getPrivateKey()) ===
109
+ (0, utils_1.uint8ArrayToHex)(simpleKeys.privateKey));
110
+ console.log('Simple public key matches:', (0, utils_1.uint8ArrayToHex)(wallet.getPublicKey()) ===
111
+ (0, utils_1.uint8ArrayToHex)(simpleKeys.publicKey));
112
+ }
113
+ /**
114
+ * Run all examples
115
+ */
116
+ async function runAllExamples() {
117
+ try {
118
+ await basicEncryptionExample();
119
+ await simpleEncryptionExample();
120
+ await signatureExample();
121
+ await walletDerivationExample();
122
+ console.log('\n=== All examples completed successfully! ===');
123
+ }
124
+ catch (error) {
125
+ console.error('Example failed:', error);
126
+ }
127
+ }
128
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/example.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAeH,wDAsCC;AAKD,0DAsCC;AAKD,4CA+BC;AAKD,0DA6BC;AAKD,wCAUC;AAnLD,uDAAmD;AACnD,uCAIqB;AACrB,uCAAyC;AAEzC,qDAAqD;AAErD;;GAEG;AACI,KAAK,UAAU,sBAAsB;IAC1C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,gCAAgC;IAChC,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,sCAAsC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAE7C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEvD,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,0BAA0B,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,kDAAkD;IAClD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,qBAAqB,CACjD,KAAK,EACL,SAAS,EACT,OAAO,CACR,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAC3D,KAAK,EACL,UAAU,EACV,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,KAAK,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB;IAC3C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,wCAAwC;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IACnD,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAErD,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,uBAAe,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAA,uBAAe,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAE7E,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,oCAAoC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,uDAAuD;IACvD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,qBAAqB,CACjD,IAAI,EACJ,YAAY,CAAC,SAAS,EACtB,OAAO,CACR,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAExD,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,+BAA+B,CAC3D,IAAI,EACJ,YAAY,CAAC,UAAU,EACvB,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,KAAK,IAAA,0BAAkB,EAAC,SAAS,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,gBAAgB;IAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC7C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAE1E,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,kCAAkC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAA,0BAAkB,EAAC,OAAO,CAAC,CAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,uBAAuB;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,eAAe,GAAG,IAAA,0BAAkB,EACxC,qCAAqC,CACtC,CAAC;IACF,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CACzC,SAAS,EACT,eAAe,EACf,SAAS,CACV,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB;IAC3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,IAAI,sBAAY,EAAE,CAAC;IAEjC,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAC/B,+FAA+F,CAChG,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAE/D,gBAAgB;IAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAA,uBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAEnE,+CAA+C;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CACT,6BAA6B,EAC7B,IAAA,uBAAe,EAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,IAAA,uBAAe,EAAC,UAAU,CAAC,UAAU,CAAC,CACzC,CAAC;IACF,OAAO,CAAC,GAAG,CACT,4BAA4B,EAC5B,IAAA,uBAAe,EAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACpC,IAAA,uBAAe,EAAC,UAAU,CAAC,SAAS,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,sBAAsB,EAAE,CAAC;QAC/B,MAAM,uBAAuB,EAAE,CAAC;QAChC,MAAM,gBAAgB,EAAE,CAAC;QACzB,MAAM,uBAAuB,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { IEciesFileService } from '../../interfaces/ecies-file-service';
2
+ import { ECIESService } from './service';
3
+ export declare class EciesFileService implements IEciesFileService {
4
+ private eciesService;
5
+ private userPrivateKey;
6
+ private static readonly CHUNK_SIZE;
7
+ private static readonly HEADER_SIZE;
8
+ constructor(eciesService: ECIESService, userPrivateKey: Uint8Array);
9
+ encryptFile(file: File, recipientPublicKey: Uint8Array): Promise<Uint8Array>;
10
+ decryptFile(encryptedData: Uint8Array): Promise<Uint8Array>;
11
+ downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void;
12
+ downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void;
13
+ private serializeHeader;
14
+ private deserializeHeader;
15
+ private parseEncryptedFile;
16
+ private downloadFile;
17
+ }
18
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AASzC,qBAAa,gBAAiB,YAAW,iBAAiB;IAKtD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IALxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAe;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;gBAG/B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,UAAU;IAG9B,WAAW,CACf,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,UAAU,GAC7B,OAAO,CAAC,UAAU,CAAC;IAwChB,WAAW,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAuBjE,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxE,qBAAqB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxE,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;YAcX,kBAAkB;IAsChC,OAAO,CAAC,YAAY;CAWrB"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EciesFileService = void 0;
4
+ class EciesFileService {
5
+ eciesService;
6
+ userPrivateKey;
7
+ static CHUNK_SIZE = 1024 * 1024; // 1MB chunks
8
+ static HEADER_SIZE = 20; // 4 bytes each: version, chunkSize, totalChunks, originalSize, padding
9
+ constructor(eciesService, userPrivateKey) {
10
+ this.eciesService = eciesService;
11
+ this.userPrivateKey = userPrivateKey;
12
+ }
13
+ async encryptFile(file, recipientPublicKey) {
14
+ const totalChunks = Math.ceil(file.size / EciesFileService.CHUNK_SIZE);
15
+ const header = {
16
+ version: 1,
17
+ chunkSize: EciesFileService.CHUNK_SIZE,
18
+ totalChunks,
19
+ originalSize: file.size,
20
+ };
21
+ const headerBytes = this.serializeHeader(header);
22
+ const encryptedHeader = await this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, headerBytes);
23
+ const chunks = [encryptedHeader];
24
+ for (let i = 0; i < totalChunks; i++) {
25
+ const offset = i * EciesFileService.CHUNK_SIZE;
26
+ const chunk = file.slice(offset, offset + EciesFileService.CHUNK_SIZE);
27
+ const chunkData = new Uint8Array(await chunk.arrayBuffer());
28
+ const encryptedChunk = await this.eciesService.encryptSimpleOrSingle(false, recipientPublicKey, chunkData);
29
+ chunks.push(encryptedChunk);
30
+ }
31
+ const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
32
+ const result = new Uint8Array(totalLength);
33
+ let offset = 0;
34
+ for (const chunk of chunks) {
35
+ result.set(chunk, offset);
36
+ offset += chunk.length;
37
+ }
38
+ return result;
39
+ }
40
+ async decryptFile(encryptedData) {
41
+ const { header, chunks } = await this.parseEncryptedFile(encryptedData);
42
+ const decryptedChunks = [];
43
+ for (const chunk of chunks) {
44
+ const decrypted = await this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, chunk);
45
+ decryptedChunks.push(decrypted);
46
+ }
47
+ const result = new Uint8Array(header.originalSize);
48
+ let offset = 0;
49
+ for (const chunk of decryptedChunks) {
50
+ const copyLength = Math.min(chunk.length, header.originalSize - offset);
51
+ result.set(chunk.subarray(0, copyLength), offset);
52
+ offset += copyLength;
53
+ }
54
+ return result;
55
+ }
56
+ downloadEncryptedFile(encryptedData, filename) {
57
+ this.downloadFile(encryptedData, `${filename}.encrypted`);
58
+ }
59
+ downloadDecryptedFile(decryptedData, filename) {
60
+ this.downloadFile(decryptedData, filename);
61
+ }
62
+ serializeHeader(header) {
63
+ const buffer = new ArrayBuffer(EciesFileService.HEADER_SIZE);
64
+ const view = new DataView(buffer);
65
+ view.setUint32(0, header.version, false);
66
+ view.setUint32(4, header.chunkSize, false);
67
+ view.setUint32(8, header.totalChunks, false);
68
+ view.setUint32(12, header.originalSize, false);
69
+ return new Uint8Array(buffer);
70
+ }
71
+ deserializeHeader(data) {
72
+ const view = new DataView(data.buffer, data.byteOffset, EciesFileService.HEADER_SIZE);
73
+ return {
74
+ version: view.getUint32(0, false),
75
+ chunkSize: view.getUint32(4, false),
76
+ totalChunks: view.getUint32(8, false),
77
+ originalSize: view.getUint32(12, false),
78
+ };
79
+ }
80
+ async parseEncryptedFile(encryptedData) {
81
+ // First, decrypt the header to get metadata
82
+ const headerLength = this.eciesService.computeEncryptedLengthFromDataLength(EciesFileService.HEADER_SIZE, 'single');
83
+ const encryptedHeader = encryptedData.subarray(0, headerLength);
84
+ const decryptedHeaderBytes = await this.eciesService.decryptSimpleOrSingleWithHeader(false, this.userPrivateKey, encryptedHeader);
85
+ const header = this.deserializeHeader(decryptedHeaderBytes);
86
+ const chunks = [];
87
+ let offset = headerLength;
88
+ for (let i = 0; i < header.totalChunks; i++) {
89
+ const chunkLength = this.eciesService.computeEncryptedLengthFromDataLength(i === header.totalChunks - 1
90
+ ? header.originalSize % header.chunkSize || header.chunkSize
91
+ : header.chunkSize, 'single');
92
+ chunks.push(encryptedData.subarray(offset, offset + chunkLength));
93
+ offset += chunkLength;
94
+ }
95
+ return { header, chunks };
96
+ }
97
+ downloadFile(data, filename) {
98
+ const blob = new Blob([data.slice()]);
99
+ const url = URL.createObjectURL(blob);
100
+ const a = document.createElement('a');
101
+ a.href = url;
102
+ a.download = filename;
103
+ document.body.appendChild(a);
104
+ a.click();
105
+ document.body.removeChild(a);
106
+ URL.revokeObjectURL(url);
107
+ }
108
+ }
109
+ exports.EciesFileService = EciesFileService;
110
+ //# sourceMappingURL=file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/file.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,6 @@
25
25
  * const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
26
26
  * ```
27
27
  */
28
-
29
28
  export * from './crypto-core';
30
29
  export * from './example';
31
30
  export * from './file';
@@ -35,6 +34,5 @@ export * from './multi-recipient';
35
34
  export * from './service';
36
35
  export * from './signature';
37
36
  export * from './single-recipient';
38
-
39
- // Main service export
40
37
  export { ECIESService as default } from './service';
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Browser-compatible ECIES service exports
4
+ *
5
+ * This module provides a web-based implementation of the ECIES (Elliptic Curve Integrated Encryption Scheme)
6
+ * service that mirrors the functionality of the server-side implementation but uses browser-compatible libraries.
7
+ *
8
+ * Key features:
9
+ * - Mnemonic generation and wallet derivation using @scure/bip39 and @scure/bip32
10
+ * - ECDH key exchange using @noble/curves/secp256k1
11
+ * - AES-GCM encryption using Web Crypto API
12
+ * - ECDSA signatures using @noble/curves/secp256k1
13
+ * - Single and simple recipient encryption modes
14
+ * - CRC16 validation for data integrity
15
+ *
16
+ * Usage:
17
+ * ```typescript
18
+ * import { ECIESService } from './services/ecies';
19
+ *
20
+ * const ecies = new ECIESService();
21
+ * const mnemonic = ecies.generateNewMnemonic();
22
+ * const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
23
+ *
24
+ * const message = new TextEncoder().encode('Hello, World!');
25
+ * const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
26
+ * const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
27
+ * ```
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.default = void 0;
31
+ const tslib_1 = require("tslib");
32
+ tslib_1.__exportStar(require("./crypto-core"), exports);
33
+ tslib_1.__exportStar(require("./example"), exports);
34
+ tslib_1.__exportStar(require("./file"), exports);
35
+ tslib_1.__exportStar(require("./integration"), exports);
36
+ tslib_1.__exportStar(require("./interfaces"), exports);
37
+ tslib_1.__exportStar(require("./multi-recipient"), exports);
38
+ tslib_1.__exportStar(require("./service"), exports);
39
+ tslib_1.__exportStar(require("./signature"), exports);
40
+ tslib_1.__exportStar(require("./single-recipient"), exports);
41
+ // Main service export
42
+ var service_1 = require("./service");
43
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return service_1.ECIESService; } });
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;;AAEH,wDAA8B;AAC9B,oDAA0B;AAC1B,iDAAuB;AACvB,wDAA8B;AAC9B,uDAA6B;AAC7B,4DAAkC;AAClC,oDAA0B;AAC1B,sDAA4B;AAC5B,6DAAmC;AAEnC,sBAAsB;AACtB,qCAAoD;AAA3C,kGAAA,YAAY,OAAW"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Integration helpers for using the browser ECIES service with existing web-crypto functionality
3
+ */
4
+ import { SecureString } from '../../secure-string';
5
+ import { IWalletSeed } from './interfaces';
6
+ /**
7
+ * Enhanced web crypto service that uses the new ECIES implementation
8
+ */
9
+ export declare class EnhancedWebCryptoService {
10
+ private ecies;
11
+ constructor();
12
+ /**
13
+ * Derive wallet from mnemonic using the new ECIES service
14
+ * This replaces the existing walletFromMnemonic method with better browser compatibility
15
+ */
16
+ walletFromMnemonic(mnemonic: SecureString): Promise<IWalletSeed>;
17
+ /**
18
+ * Decrypt challenge using the new ECIES service
19
+ * This provides better compatibility and error handling than the original implementation
20
+ */
21
+ decryptChallenge(encryptedHex: string, privateKey: Uint8Array): Promise<Uint8Array>;
22
+ /**
23
+ * Encrypt data for a recipient
24
+ */
25
+ encryptForRecipient(recipientPublicKey: Uint8Array, data: Uint8Array, useSimpleMode?: boolean): Promise<string>;
26
+ /**
27
+ * Sign data with private key
28
+ */
29
+ signData(privateKey: Uint8Array, data: Uint8Array): string;
30
+ /**
31
+ * Verify signature
32
+ */
33
+ verifySignature(publicKey: Uint8Array, data: Uint8Array, signatureHex: string): boolean;
34
+ /**
35
+ * Generate new mnemonic
36
+ */
37
+ generateMnemonic(): SecureString;
38
+ /**
39
+ * Complete client-side challenge verification (enhanced version)
40
+ */
41
+ verifyChallengeResponse(encryptedChallenge: string, mnemonic: SecureString, systemPublicKeyHex: string): Promise<string>;
42
+ }
43
+ /**
44
+ * Migration helper to transition from old WebCryptoService to new ECIES service
45
+ */
46
+ export declare class MigrationHelper {
47
+ /**
48
+ * Test compatibility between old and new implementations
49
+ */
50
+ static testCompatibility(mnemonic: SecureString): Promise<{
51
+ compatible: boolean;
52
+ details: {
53
+ mnemonicValid: boolean;
54
+ keysMatch: boolean;
55
+ encryptionWorks: boolean;
56
+ };
57
+ }>;
58
+ }
59
+ //# sourceMappingURL=integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/integration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQnD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAe;;IAM5B;;;OAGG;IACU,kBAAkB,CAC7B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAQvB;;;OAGG;IACU,gBAAgB,CAC3B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC;IAyBtB;;OAEG;IACU,mBAAmB,CAC9B,kBAAkB,EAAE,UAAU,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,MAAM,CAAC;IASlB;;OAEG;IACI,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM;IAKjE;;OAEG;IACI,eAAe,CACpB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO;IAKV;;OAEG;IACI,gBAAgB,IAAI,YAAY;IAIvC;;OAEG;IACU,uBAAuB,CAClC,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC;CA+BnB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;WACiB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC;QACrE,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE;YACP,aAAa,EAAE,OAAO,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC;YACnB,eAAe,EAAE,OAAO,CAAC;SAC1B,CAAC;KACH,CAAC;CAsEH"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * Integration helpers for using the browser ECIES service with existing web-crypto functionality
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MigrationHelper = exports.EnhancedWebCryptoService = void 0;
7
+ const i18n_setup_1 = require("../../i18n-setup");
8
+ const utils_1 = require("../../utils");
9
+ const service_1 = require("./service");
10
+ const enumerations_1 = require("../../enumerations");
11
+ /**
12
+ * Enhanced web crypto service that uses the new ECIES implementation
13
+ */
14
+ class EnhancedWebCryptoService {
15
+ ecies;
16
+ constructor() {
17
+ this.ecies = new service_1.ECIESService();
18
+ }
19
+ /**
20
+ * Derive wallet from mnemonic using the new ECIES service
21
+ * This replaces the existing walletFromMnemonic method with better browser compatibility
22
+ */
23
+ async walletFromMnemonic(mnemonic) {
24
+ const { wallet, seed } = this.ecies.walletAndSeedFromMnemonic(mnemonic);
25
+ return {
26
+ wallet,
27
+ seed,
28
+ };
29
+ }
30
+ /**
31
+ * Decrypt challenge using the new ECIES service
32
+ * This provides better compatibility and error handling than the original implementation
33
+ */
34
+ async decryptChallenge(encryptedHex, privateKey) {
35
+ try {
36
+ const encryptedData = (0, utils_1.hexToUint8Array)(encryptedHex);
37
+ // Try to decrypt using single mode first (most common)
38
+ try {
39
+ return await this.ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encryptedData);
40
+ }
41
+ catch {
42
+ // Fallback to simple mode
43
+ return await this.ecies.decryptSimpleOrSingleWithHeader(true, privateKey, encryptedData);
44
+ }
45
+ }
46
+ catch (error) {
47
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
48
+ throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDecryptChallengeTemplate, { error: String(error) }));
49
+ }
50
+ }
51
+ /**
52
+ * Encrypt data for a recipient
53
+ */
54
+ async encryptForRecipient(recipientPublicKey, data, useSimpleMode = false) {
55
+ const encrypted = await this.ecies.encryptSimpleOrSingle(!useSimpleMode, recipientPublicKey, data);
56
+ return (0, utils_1.uint8ArrayToHex)(encrypted);
57
+ }
58
+ /**
59
+ * Sign data with private key
60
+ */
61
+ signData(privateKey, data) {
62
+ const signature = this.ecies.signMessage(privateKey, data);
63
+ return (0, utils_1.uint8ArrayToHex)(signature);
64
+ }
65
+ /**
66
+ * Verify signature
67
+ */
68
+ verifySignature(publicKey, data, signatureHex) {
69
+ const signature = (0, utils_1.hexToUint8Array)(signatureHex);
70
+ return this.ecies.verifyMessage(publicKey, data, signature);
71
+ }
72
+ /**
73
+ * Generate new mnemonic
74
+ */
75
+ generateMnemonic() {
76
+ return this.ecies.generateNewMnemonic();
77
+ }
78
+ /**
79
+ * Complete client-side challenge verification (enhanced version)
80
+ */
81
+ async verifyChallengeResponse(encryptedChallenge, mnemonic, systemPublicKeyHex) {
82
+ // Derive keys from mnemonic
83
+ const { wallet } = await this.walletFromMnemonic(mnemonic);
84
+ // Decrypt the challenge
85
+ const decryptedPayload = await this.decryptChallenge(encryptedChallenge, wallet.getPrivateKey());
86
+ // Extract nonce and signature (assuming 48 bytes payload + signature)
87
+ const payload = decryptedPayload.slice(0, 48);
88
+ const signature = decryptedPayload.slice(48);
89
+ // Convert system public key from hex
90
+ const systemPubKey = (0, utils_1.hexToUint8Array)(systemPublicKeyHex);
91
+ // Verify system signature
92
+ const isValid = this.verifySignature(systemPubKey, payload, (0, utils_1.uint8ArrayToHex)(signature));
93
+ if (!isValid) {
94
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
95
+ const error = engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidChallengeSignature);
96
+ }
97
+ return (0, utils_1.uint8ArrayToHex)(decryptedPayload);
98
+ }
99
+ }
100
+ exports.EnhancedWebCryptoService = EnhancedWebCryptoService;
101
+ /**
102
+ * Migration helper to transition from old WebCryptoService to new ECIES service
103
+ */
104
+ class MigrationHelper {
105
+ /**
106
+ * Test compatibility between old and new implementations
107
+ */
108
+ static async testCompatibility(mnemonic) {
109
+ try {
110
+ const ecies = new service_1.ECIESService();
111
+ const enhanced = new EnhancedWebCryptoService();
112
+ // Test mnemonic validation
113
+ let mnemonicValid = false;
114
+ try {
115
+ ecies.walletAndSeedFromMnemonic(mnemonic);
116
+ mnemonicValid = true;
117
+ }
118
+ catch {
119
+ mnemonicValid = false;
120
+ }
121
+ // Test key derivation
122
+ let keysMatch = false;
123
+ if (mnemonicValid) {
124
+ try {
125
+ const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(mnemonic);
126
+ const { wallet: wallet2 } = await enhanced.walletFromMnemonic(mnemonic);
127
+ keysMatch =
128
+ (0, utils_1.uint8ArrayToHex)(wallet1.getPrivateKey()) ===
129
+ (0, utils_1.uint8ArrayToHex)(wallet2.getPrivateKey());
130
+ }
131
+ catch {
132
+ keysMatch = false;
133
+ }
134
+ }
135
+ // Test encryption roundtrip
136
+ let encryptionWorks = false;
137
+ if (keysMatch) {
138
+ try {
139
+ const { wallet } = await enhanced.walletFromMnemonic(mnemonic);
140
+ const testMessage = (0, utils_1.stringToUint8Array)('Test message');
141
+ const encrypted = await enhanced.encryptForRecipient(wallet.getPublicKey(), testMessage);
142
+ const decrypted = await enhanced.decryptChallenge(encrypted, wallet.getPrivateKey());
143
+ encryptionWorks =
144
+ (0, utils_1.uint8ArrayToString)(testMessage) === (0, utils_1.uint8ArrayToString)(decrypted);
145
+ }
146
+ catch {
147
+ encryptionWorks = false;
148
+ }
149
+ }
150
+ return {
151
+ compatible: mnemonicValid && keysMatch && encryptionWorks,
152
+ details: {
153
+ mnemonicValid,
154
+ keysMatch,
155
+ encryptionWorks,
156
+ },
157
+ };
158
+ }
159
+ catch {
160
+ return {
161
+ compatible: false,
162
+ details: {
163
+ mnemonicValid: false,
164
+ keysMatch: false,
165
+ encryptionWorks: false,
166
+ },
167
+ };
168
+ }
169
+ }
170
+ }
171
+ exports.MigrationHelper = MigrationHelper;
172
+ //# sourceMappingURL=integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/services/ecies/integration.ts"],"names":[],"mappings":"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"}