@digitaldefiance/ecies-lib 1.1.23 → 1.1.24

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 (347) hide show
  1. package/README.md +4 -0
  2. package/package.json +13 -33
  3. package/src/constants.ts +474 -0
  4. package/src/email-string.ts +83 -0
  5. package/src/enumerations/ecies-encryption-type.ts +102 -0
  6. package/src/enumerations/ecies-error-type.ts +31 -0
  7. package/src/enumerations/ecies-string-key.ts +108 -0
  8. package/src/enumerations/guid-brand-type.ts +26 -0
  9. package/src/enumerations/guid-error-type.ts +6 -0
  10. package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
  11. package/src/enumerations/invalid-email-type.ts +5 -0
  12. package/src/enumerations/length-encoding-type.ts +6 -0
  13. package/src/enumerations/length-error-type.ts +5 -0
  14. package/src/enumerations/member-error-type.ts +106 -0
  15. package/{dist/enumerations/member-type.d.ts → src/enumerations/member-type.ts} +7 -6
  16. package/src/enumerations/password-login-error-type.ts +4 -0
  17. package/src/enumerations/pbkdf2-error-type.ts +5 -0
  18. package/src/enumerations/pbkdf2-profile.ts +5 -0
  19. package/src/enumerations/secure-storage-error-type.ts +5 -0
  20. package/src/errors/disposed.ts +15 -0
  21. package/src/errors/ecies.ts +34 -0
  22. package/src/errors/guid.ts +34 -0
  23. package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
  24. package/src/errors/invalid-email.ts +11 -0
  25. package/src/errors/length.ts +11 -0
  26. package/src/errors/member.ts +12 -0
  27. package/src/errors/pbkdf2.ts +12 -0
  28. package/src/errors/secure-storage.ts +13 -0
  29. package/src/errors/simple-ecies.ts +18 -0
  30. package/src/errors/simple-test-error.ts +6 -0
  31. package/src/guid.ts +800 -0
  32. package/src/i18n-setup.ts +1312 -0
  33. package/{dist/index.d.ts → src/index.ts} +0 -1
  34. package/src/interfaces/checksum-config.ts +4 -0
  35. package/src/interfaces/checksum-consts.ts +13 -0
  36. package/src/interfaces/constants.ts +48 -0
  37. package/src/interfaces/ecies-config.ts +8 -0
  38. package/src/interfaces/ecies-consts.ts +70 -0
  39. package/src/interfaces/ecies-file-service.ts +6 -0
  40. package/src/interfaces/guid.ts +53 -0
  41. package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
  42. package/src/interfaces/library-error.ts +23 -0
  43. package/src/interfaces/member-operational.ts +54 -0
  44. package/{dist/interfaces/member-storage.d.ts → src/interfaces/member-storage.ts} +11 -10
  45. package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts} +3 -3
  46. package/src/interfaces/pbkdf2-config.ts +6 -0
  47. package/src/interfaces/pbkdf2-consts.ts +10 -0
  48. package/src/interfaces/pbkdf2-result.ts +5 -0
  49. package/src/member.ts +429 -0
  50. package/{dist/pbkdf2-profiles.d.ts → src/pbkdf2-profiles.ts} +2 -2
  51. package/src/phone-number.ts +18 -0
  52. package/src/regexes.ts +10 -0
  53. package/src/secure-buffer.ts +183 -0
  54. package/src/secure-string.ts +229 -0
  55. package/src/services/aes-gcm.ts +177 -0
  56. package/src/services/ecies/README.md +147 -0
  57. package/src/services/ecies/crypto-core.ts +180 -0
  58. package/src/services/ecies/example.ts +185 -0
  59. package/src/services/ecies/file.ts +167 -0
  60. package/{dist/services/ecies/index.d.ts → src/services/ecies/index.ts} +3 -1
  61. package/src/services/ecies/integration.ts +241 -0
  62. package/src/services/ecies/interfaces.ts +59 -0
  63. package/src/services/ecies/manual-test.ts +219 -0
  64. package/src/services/ecies/multi-recipient.ts +394 -0
  65. package/src/services/ecies/service.ts +317 -0
  66. package/src/services/ecies/signature.ts +93 -0
  67. package/src/services/ecies/single-recipient.ts +340 -0
  68. package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
  69. package/src/services/password-login.ts +228 -0
  70. package/src/services/pbkdf2.ts +172 -0
  71. package/src/services/xor.ts +65 -0
  72. package/src/types/deep-partial.ts +11 -0
  73. package/{dist/types.d.ts → src/types.ts} +10 -4
  74. package/src/utils.ts +331 -0
  75. package/dist/constants.d.ts +0 -46
  76. package/dist/constants.d.ts.map +0 -1
  77. package/dist/constants.js +0 -358
  78. package/dist/constants.js.map +0 -1
  79. package/dist/email-string.d.ts +0 -42
  80. package/dist/email-string.d.ts.map +0 -1
  81. package/dist/email-string.js +0 -75
  82. package/dist/email-string.js.map +0 -1
  83. package/dist/enumerations/ecies-encryption-type.d.ts +0 -15
  84. package/dist/enumerations/ecies-encryption-type.d.ts.map +0 -1
  85. package/dist/enumerations/ecies-encryption-type.js +0 -71
  86. package/dist/enumerations/ecies-encryption-type.js.map +0 -1
  87. package/dist/enumerations/ecies-error-type.d.ts +0 -32
  88. package/dist/enumerations/ecies-error-type.d.ts.map +0 -1
  89. package/dist/enumerations/ecies-error-type.js +0 -36
  90. package/dist/enumerations/ecies-error-type.js.map +0 -1
  91. package/dist/enumerations/ecies-string-key.d.ts +0 -96
  92. package/dist/enumerations/ecies-string-key.d.ts.map +0 -1
  93. package/dist/enumerations/ecies-string-key.js +0 -105
  94. package/dist/enumerations/ecies-string-key.js.map +0 -1
  95. package/dist/enumerations/guid-brand-type.d.ts +0 -27
  96. package/dist/enumerations/guid-brand-type.d.ts.map +0 -1
  97. package/dist/enumerations/guid-brand-type.js +0 -31
  98. package/dist/enumerations/guid-brand-type.js.map +0 -1
  99. package/dist/enumerations/guid-error-type.d.ts +0 -7
  100. package/dist/enumerations/guid-error-type.d.ts.map +0 -1
  101. package/dist/enumerations/guid-error-type.js +0 -11
  102. package/dist/enumerations/guid-error-type.js.map +0 -1
  103. package/dist/enumerations/index.d.ts.map +0 -1
  104. package/dist/enumerations/index.js +0 -31
  105. package/dist/enumerations/index.js.map +0 -1
  106. package/dist/enumerations/invalid-email-type.d.ts +0 -6
  107. package/dist/enumerations/invalid-email-type.d.ts.map +0 -1
  108. package/dist/enumerations/invalid-email-type.js +0 -10
  109. package/dist/enumerations/invalid-email-type.js.map +0 -1
  110. package/dist/enumerations/length-encoding-type.d.ts +0 -7
  111. package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
  112. package/dist/enumerations/length-encoding-type.js +0 -11
  113. package/dist/enumerations/length-encoding-type.js.map +0 -1
  114. package/dist/enumerations/length-error-type.d.ts +0 -6
  115. package/dist/enumerations/length-error-type.d.ts.map +0 -1
  116. package/dist/enumerations/length-error-type.js +0 -10
  117. package/dist/enumerations/length-error-type.js.map +0 -1
  118. package/dist/enumerations/member-error-type.d.ts +0 -87
  119. package/dist/enumerations/member-error-type.d.ts.map +0 -1
  120. package/dist/enumerations/member-error-type.js +0 -91
  121. package/dist/enumerations/member-error-type.js.map +0 -1
  122. package/dist/enumerations/member-type.d.ts.map +0 -1
  123. package/dist/enumerations/member-type.js +0 -19
  124. package/dist/enumerations/member-type.js.map +0 -1
  125. package/dist/enumerations/password-login-error-type.d.ts +0 -5
  126. package/dist/enumerations/password-login-error-type.d.ts.map +0 -1
  127. package/dist/enumerations/password-login-error-type.js +0 -9
  128. package/dist/enumerations/password-login-error-type.js.map +0 -1
  129. package/dist/enumerations/pbkdf2-error-type.d.ts +0 -6
  130. package/dist/enumerations/pbkdf2-error-type.d.ts.map +0 -1
  131. package/dist/enumerations/pbkdf2-error-type.js +0 -10
  132. package/dist/enumerations/pbkdf2-error-type.js.map +0 -1
  133. package/dist/enumerations/pbkdf2-profile.d.ts +0 -6
  134. package/dist/enumerations/pbkdf2-profile.d.ts.map +0 -1
  135. package/dist/enumerations/pbkdf2-profile.js +0 -10
  136. package/dist/enumerations/pbkdf2-profile.js.map +0 -1
  137. package/dist/enumerations/secure-storage-error-type.d.ts +0 -6
  138. package/dist/enumerations/secure-storage-error-type.d.ts.map +0 -1
  139. package/dist/enumerations/secure-storage-error-type.js +0 -10
  140. package/dist/enumerations/secure-storage-error-type.js.map +0 -1
  141. package/dist/errors/disposed.d.ts +0 -4
  142. package/dist/errors/disposed.d.ts.map +0 -1
  143. package/dist/errors/disposed.js +0 -20
  144. package/dist/errors/disposed.js.map +0 -1
  145. package/dist/errors/ecies.d.ts +0 -7
  146. package/dist/errors/ecies.d.ts.map +0 -1
  147. package/dist/errors/ecies.js +0 -15
  148. package/dist/errors/ecies.js.map +0 -1
  149. package/dist/errors/guid.d.ts +0 -15
  150. package/dist/errors/guid.d.ts.map +0 -1
  151. package/dist/errors/guid.js +0 -26
  152. package/dist/errors/guid.js.map +0 -1
  153. package/dist/errors/index.d.ts.map +0 -1
  154. package/dist/errors/index.js +0 -25
  155. package/dist/errors/index.js.map +0 -1
  156. package/dist/errors/invalid-email.d.ts +0 -7
  157. package/dist/errors/invalid-email.d.ts.map +0 -1
  158. package/dist/errors/invalid-email.js +0 -14
  159. package/dist/errors/invalid-email.js.map +0 -1
  160. package/dist/errors/length.d.ts +0 -7
  161. package/dist/errors/length.d.ts.map +0 -1
  162. package/dist/errors/length.js +0 -14
  163. package/dist/errors/length.js.map +0 -1
  164. package/dist/errors/member.d.ts +0 -7
  165. package/dist/errors/member.d.ts.map +0 -1
  166. package/dist/errors/member.js +0 -14
  167. package/dist/errors/member.js.map +0 -1
  168. package/dist/errors/pbkdf2.d.ts +0 -7
  169. package/dist/errors/pbkdf2.d.ts.map +0 -1
  170. package/dist/errors/pbkdf2.js +0 -14
  171. package/dist/errors/pbkdf2.js.map +0 -1
  172. package/dist/errors/secure-storage.d.ts +0 -7
  173. package/dist/errors/secure-storage.d.ts.map +0 -1
  174. package/dist/errors/secure-storage.js +0 -15
  175. package/dist/errors/secure-storage.js.map +0 -1
  176. package/dist/errors/simple-ecies.d.ts +0 -6
  177. package/dist/errors/simple-ecies.d.ts.map +0 -1
  178. package/dist/errors/simple-ecies.js +0 -15
  179. package/dist/errors/simple-ecies.js.map +0 -1
  180. package/dist/errors/simple-test-error.d.ts +0 -4
  181. package/dist/errors/simple-test-error.d.ts.map +0 -1
  182. package/dist/errors/simple-test-error.js +0 -11
  183. package/dist/errors/simple-test-error.js.map +0 -1
  184. package/dist/guid.d.ts +0 -153
  185. package/dist/guid.d.ts.map +0 -1
  186. package/dist/guid.js +0 -647
  187. package/dist/guid.js.map +0 -1
  188. package/dist/i18n-setup.d.ts +0 -24
  189. package/dist/i18n-setup.d.ts.map +0 -1
  190. package/dist/i18n-setup.js +0 -837
  191. package/dist/i18n-setup.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js +0 -32
  194. package/dist/index.js.map +0 -1
  195. package/dist/interfaces/checksum-config.d.ts +0 -5
  196. package/dist/interfaces/checksum-config.d.ts.map +0 -1
  197. package/dist/interfaces/checksum-config.js +0 -3
  198. package/dist/interfaces/checksum-config.js.map +0 -1
  199. package/dist/interfaces/checksum-consts.d.ts +0 -11
  200. package/dist/interfaces/checksum-consts.d.ts.map +0 -1
  201. package/dist/interfaces/checksum-consts.js +0 -3
  202. package/dist/interfaces/checksum-consts.js.map +0 -1
  203. package/dist/interfaces/constants.d.ts +0 -45
  204. package/dist/interfaces/constants.d.ts.map +0 -1
  205. package/dist/interfaces/constants.js +0 -3
  206. package/dist/interfaces/constants.js.map +0 -1
  207. package/dist/interfaces/ecies-config.d.ts +0 -9
  208. package/dist/interfaces/ecies-config.d.ts.map +0 -1
  209. package/dist/interfaces/ecies-config.js +0 -3
  210. package/dist/interfaces/ecies-config.js.map +0 -1
  211. package/dist/interfaces/ecies-consts.d.ts +0 -58
  212. package/dist/interfaces/ecies-consts.d.ts.map +0 -1
  213. package/dist/interfaces/ecies-consts.js +0 -3
  214. package/dist/interfaces/ecies-consts.js.map +0 -1
  215. package/dist/interfaces/ecies-file-service.d.ts +0 -7
  216. package/dist/interfaces/ecies-file-service.d.ts.map +0 -1
  217. package/dist/interfaces/ecies-file-service.js +0 -3
  218. package/dist/interfaces/ecies-file-service.js.map +0 -1
  219. package/dist/interfaces/guid.d.ts +0 -45
  220. package/dist/interfaces/guid.d.ts.map +0 -1
  221. package/dist/interfaces/guid.js +0 -3
  222. package/dist/interfaces/guid.js.map +0 -1
  223. package/dist/interfaces/index.d.ts.map +0 -1
  224. package/dist/interfaces/index.js +0 -30
  225. package/dist/interfaces/index.js.map +0 -1
  226. package/dist/interfaces/library-error.d.ts +0 -23
  227. package/dist/interfaces/library-error.d.ts.map +0 -1
  228. package/dist/interfaces/library-error.js +0 -3
  229. package/dist/interfaces/library-error.js.map +0 -1
  230. package/dist/interfaces/member-operational.d.ts +0 -40
  231. package/dist/interfaces/member-operational.d.ts.map +0 -1
  232. package/dist/interfaces/member-operational.js +0 -3
  233. package/dist/interfaces/member-operational.js.map +0 -1
  234. package/dist/interfaces/member-storage.d.ts.map +0 -1
  235. package/dist/interfaces/member-storage.js +0 -3
  236. package/dist/interfaces/member-storage.js.map +0 -1
  237. package/dist/interfaces/member-with-mnemonic.d.ts.map +0 -1
  238. package/dist/interfaces/member-with-mnemonic.js +0 -3
  239. package/dist/interfaces/member-with-mnemonic.js.map +0 -1
  240. package/dist/interfaces/pbkdf2-config.d.ts +0 -7
  241. package/dist/interfaces/pbkdf2-config.d.ts.map +0 -1
  242. package/dist/interfaces/pbkdf2-config.js +0 -3
  243. package/dist/interfaces/pbkdf2-config.js.map +0 -1
  244. package/dist/interfaces/pbkdf2-consts.d.ts +0 -9
  245. package/dist/interfaces/pbkdf2-consts.d.ts.map +0 -1
  246. package/dist/interfaces/pbkdf2-consts.js +0 -3
  247. package/dist/interfaces/pbkdf2-consts.js.map +0 -1
  248. package/dist/interfaces/pbkdf2-result.d.ts +0 -6
  249. package/dist/interfaces/pbkdf2-result.d.ts.map +0 -1
  250. package/dist/interfaces/pbkdf2-result.js +0 -3
  251. package/dist/interfaces/pbkdf2-result.js.map +0 -1
  252. package/dist/member.d.ts +0 -66
  253. package/dist/member.d.ts.map +0 -1
  254. package/dist/member.js +0 -271
  255. package/dist/member.js.map +0 -1
  256. package/dist/pbkdf2-profiles.d.ts.map +0 -1
  257. package/dist/pbkdf2-profiles.js +0 -3
  258. package/dist/pbkdf2-profiles.js.map +0 -1
  259. package/dist/phone-number.d.ts +0 -6
  260. package/dist/phone-number.d.ts.map +0 -1
  261. package/dist/phone-number.js +0 -22
  262. package/dist/phone-number.js.map +0 -1
  263. package/dist/regexes.d.ts +0 -7
  264. package/dist/regexes.d.ts.map +0 -1
  265. package/dist/regexes.js +0 -10
  266. package/dist/regexes.js.map +0 -1
  267. package/dist/secure-buffer.d.ts +0 -38
  268. package/dist/secure-buffer.d.ts.map +0 -1
  269. package/dist/secure-buffer.js +0 -168
  270. package/dist/secure-buffer.js.map +0 -1
  271. package/dist/secure-string.d.ts +0 -39
  272. package/dist/secure-string.d.ts.map +0 -1
  273. package/dist/secure-string.js +0 -195
  274. package/dist/secure-string.js.map +0 -1
  275. package/dist/services/aes-gcm.d.ts +0 -57
  276. package/dist/services/aes-gcm.d.ts.map +0 -1
  277. package/dist/services/aes-gcm.js +0 -111
  278. package/dist/services/aes-gcm.js.map +0 -1
  279. package/dist/services/ecies/crypto-core.d.ts +0 -51
  280. package/dist/services/ecies/crypto-core.d.ts.map +0 -1
  281. package/dist/services/ecies/crypto-core.js +0 -139
  282. package/dist/services/ecies/crypto-core.js.map +0 -1
  283. package/dist/services/ecies/example.d.ts +0 -25
  284. package/dist/services/ecies/example.d.ts.map +0 -1
  285. package/dist/services/ecies/example.js +0 -128
  286. package/dist/services/ecies/example.js.map +0 -1
  287. package/dist/services/ecies/file.d.ts +0 -18
  288. package/dist/services/ecies/file.d.ts.map +0 -1
  289. package/dist/services/ecies/file.js +0 -110
  290. package/dist/services/ecies/file.js.map +0 -1
  291. package/dist/services/ecies/index.d.ts.map +0 -1
  292. package/dist/services/ecies/index.js +0 -57
  293. package/dist/services/ecies/index.js.map +0 -1
  294. package/dist/services/ecies/integration.d.ts +0 -59
  295. package/dist/services/ecies/integration.d.ts.map +0 -1
  296. package/dist/services/ecies/integration.js +0 -172
  297. package/dist/services/ecies/integration.js.map +0 -1
  298. package/dist/services/ecies/interfaces.d.ts +0 -51
  299. package/dist/services/ecies/interfaces.d.ts.map +0 -1
  300. package/dist/services/ecies/interfaces.js +0 -6
  301. package/dist/services/ecies/interfaces.js.map +0 -1
  302. package/dist/services/ecies/manual-test.d.ts +0 -29
  303. package/dist/services/ecies/manual-test.d.ts.map +0 -1
  304. package/dist/services/ecies/manual-test.js +0 -171
  305. package/dist/services/ecies/manual-test.js.map +0 -1
  306. package/dist/services/ecies/multi-recipient.d.ts +0 -52
  307. package/dist/services/ecies/multi-recipient.d.ts.map +0 -1
  308. package/dist/services/ecies/multi-recipient.js +0 -243
  309. package/dist/services/ecies/multi-recipient.js.map +0 -1
  310. package/dist/services/ecies/service.d.ts +0 -104
  311. package/dist/services/ecies/service.d.ts.map +0 -1
  312. package/dist/services/ecies/service.js +0 -192
  313. package/dist/services/ecies/service.js.map +0 -1
  314. package/dist/services/ecies/signature.d.ts +0 -27
  315. package/dist/services/ecies/signature.d.ts.map +0 -1
  316. package/dist/services/ecies/signature.js +0 -76
  317. package/dist/services/ecies/signature.js.map +0 -1
  318. package/dist/services/ecies/single-recipient.d.ts +0 -46
  319. package/dist/services/ecies/single-recipient.d.ts.map +0 -1
  320. package/dist/services/ecies/single-recipient.js +0 -212
  321. package/dist/services/ecies/single-recipient.js.map +0 -1
  322. package/dist/services/index.d.ts.map +0 -1
  323. package/dist/services/index.js +0 -22
  324. package/dist/services/index.js.map +0 -1
  325. package/dist/services/password-login.d.ts +0 -49
  326. package/dist/services/password-login.d.ts.map +0 -1
  327. package/dist/services/password-login.js +0 -121
  328. package/dist/services/password-login.js.map +0 -1
  329. package/dist/services/pbkdf2.d.ts +0 -56
  330. package/dist/services/pbkdf2.d.ts.map +0 -1
  331. package/dist/services/pbkdf2.js +0 -114
  332. package/dist/services/pbkdf2.js.map +0 -1
  333. package/dist/services/xor.d.ts +0 -37
  334. package/dist/services/xor.d.ts.map +0 -1
  335. package/dist/services/xor.js +0 -67
  336. package/dist/services/xor.js.map +0 -1
  337. package/dist/types/deep-partial.d.ts +0 -4
  338. package/dist/types/deep-partial.d.ts.map +0 -1
  339. package/dist/types/deep-partial.js +0 -3
  340. package/dist/types/deep-partial.js.map +0 -1
  341. package/dist/types.d.ts.map +0 -1
  342. package/dist/types.js +0 -3
  343. package/dist/types.js.map +0 -1
  344. package/dist/utils.d.ts +0 -68
  345. package/dist/utils.d.ts.map +0 -1
  346. package/dist/utils.js +0 -288
  347. package/dist/utils.js.map +0 -1
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EciesSignature = void 0;
4
- const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
5
- const sha2_js_1 = require("@noble/hashes/sha2.js");
6
- const utils_1 = require("../../utils");
7
- /**
8
- * Browser-compatible ECDSA signature operations
9
- */
10
- class EciesSignature {
11
- cryptoCore;
12
- constructor(cryptoCore) {
13
- this.cryptoCore = cryptoCore;
14
- }
15
- /**
16
- * Sign arbitrary binary data with a secp256k1 private key.
17
- * Returns 64 bytes: [r(32) | s(32)]
18
- */
19
- signMessage(privateKey, data) {
20
- const hash = (0, sha2_js_1.sha256)(data);
21
- // Use deterministic signatures (RFC 6979) for consistency
22
- const signature = secp256k1_js_1.secp256k1.sign(hash, privateKey, {
23
- format: 'compact',
24
- extraEntropy: false,
25
- });
26
- return signature;
27
- }
28
- /**
29
- * Verify signature (64 bytes: [r|s]) over arbitrary binary data against a public key.
30
- */
31
- verifyMessage(publicKey, data, signature) {
32
- try {
33
- if (!signature || signature.length !== 64)
34
- return false;
35
- const hash = (0, sha2_js_1.sha256)(data);
36
- const normalizedPublicKey = this.cryptoCore.normalizePublicKey(publicKey);
37
- // Try direct verification first
38
- try {
39
- const directResult = secp256k1_js_1.secp256k1.verify(signature, hash, normalizedPublicKey);
40
- if (directResult)
41
- return true;
42
- }
43
- catch {
44
- // Continue to alternative verification methods
45
- }
46
- // If direct verification fails, the signature might be from a different library
47
- // that uses different nonce generation. Since we can't make @noble/curves
48
- // verify signatures from ethereumjs-util directly, we'll return false here.
49
- // The calling code should handle cross-platform verification at a higher level.
50
- return false;
51
- }
52
- catch (err) {
53
- console.error('Signature verification failed:', err);
54
- return false;
55
- }
56
- }
57
- /**
58
- * Convert signature string to signature Uint8Array
59
- */
60
- signatureStringToSignatureUint8Array(signatureString) {
61
- const cleanHex = signatureString.replace(/^0x/, '');
62
- const result = new Uint8Array(cleanHex.length / 2);
63
- for (let i = 0; i < cleanHex.length; i += 2) {
64
- result[i / 2] = parseInt(cleanHex.substring(i, i + 2), 16);
65
- }
66
- return result;
67
- }
68
- /**
69
- * Convert signature buffer to signature string
70
- */
71
- signatureUint8ArrayToSignatureString(signatureArray) {
72
- return (0, utils_1.uint8ArrayToHex)(signatureArray);
73
- }
74
- }
75
- exports.EciesSignature = EciesSignature;
76
- //# sourceMappingURL=signature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA,6DAAuD;AACvD,mDAA+C;AAE/C,uCAA8C;AAG9C;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,WAAW,CAChB,UAAsB,EACtB,IAAgB;QAEhB,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,0DAA0D;QAC1D,MAAM,SAAS,GAAG,wBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACjD,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,SAAgC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,aAAa,CAClB,SAAqB,EACrB,IAAgB,EAChB,SAA8B;QAE9B,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC;YACxD,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAE1E,gCAAgC;YAChC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,wBAAS,CAAC,MAAM,CACnC,SAAS,EACT,IAAI,EACJ,mBAAmB,CACpB,CAAC;gBACF,IAAI,YAAY;oBAAE,OAAO,IAAI,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;YAED,gFAAgF;YAChF,0EAA0E;YAC1E,4EAA4E;YAC5E,gFAAgF;YAEhF,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACI,oCAAoC,CACzC,eAAgC;QAEhC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAA6B,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,oCAAoC,CACzC,cAAmC;QAEnC,OAAO,IAAA,uBAAe,EAAC,cAAc,CAAoB,CAAC;IAC5D,CAAC;CACF;AAnFD,wCAmFC"}
@@ -1,46 +0,0 @@
1
- import { IECIESConstants } from '../../interfaces/ecies-consts';
2
- import { EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
3
- import { IECIESConfig } from '../../interfaces/ecies-config';
4
- import { EciesCryptoCore } from './crypto-core';
5
- import { IDecryptionResult, ISingleEncryptedParsedHeader } from './interfaces';
6
- /**
7
- * Browser-compatible single recipient ECIES encryption/decryption
8
- */
9
- export declare class EciesSingleRecipient {
10
- protected readonly cryptoCore: EciesCryptoCore;
11
- protected readonly config: IECIESConfig;
12
- protected readonly eciesConsts: IECIESConstants;
13
- constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
14
- /**
15
- * Encrypt a message for a single recipient
16
- */
17
- encrypt(encryptSimple: boolean, receiverPublicKey: Uint8Array, message: Uint8Array, preamble?: Uint8Array): Promise<Uint8Array>;
18
- /**
19
- * Parse encrypted message header
20
- */
21
- parseEncryptedMessage(encryptionType: EciesEncryptionTypeEnum | undefined, data: Uint8Array, preambleSize?: number, options?: {
22
- dataLength?: number;
23
- }): {
24
- header: ISingleEncryptedParsedHeader;
25
- data: Uint8Array;
26
- remainder: Uint8Array;
27
- };
28
- /**
29
- * Decrypt with header
30
- */
31
- decryptWithHeader(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Uint8Array, encryptedData: Uint8Array, preambleSize?: number, options?: {
32
- dataLength?: number;
33
- }): Promise<Uint8Array>;
34
- /**
35
- * Extended decrypt with header that returns additional info
36
- */
37
- decryptWithHeaderEx(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Uint8Array, encryptedData: Uint8Array, preambleSize?: number, options?: {
38
- dataLength?: number;
39
- }): Promise<IDecryptionResult>;
40
- /**
41
- * Decrypt with individual components
42
- */
43
- decryptWithComponents(privateKey: Uint8Array, ephemeralPublicKey: Uint8Array, iv: Uint8Array, authTag: Uint8Array, encrypted: Uint8Array): Promise<Uint8Array>;
44
- private arraysEqual;
45
- }
46
- //# sourceMappingURL=single-recipient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAEL,uBAAuB,EACxB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAI/E;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAEpC,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,eAAiC;IAMhF;;OAEG;IACU,OAAO,CAClB,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,UAAU,EAC7B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAAC,UAAU,CAAC;IA+EtB;;OAEG;IACI,qBAAqB,CAC1B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,IAAI,EAAE,UAAU,EAChB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC;QACD,MAAM,EAAE,4BAA4B,CAAC;QACrC,IAAI,EAAE,UAAU,CAAC;QACjB,SAAS,EAAE,UAAU,CAAC;KACvB;IAyHD;;OAEG;IACU,iBAAiB,CAC5B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,UAAU,CAAC;IAWtB;;OAEG;IACU,mBAAmB,CAC9B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAsB7B;;OAEG;IACU,qBAAqB,CAChC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,UAAU,EAC9B,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,UAAU,CAAC;IAwBtB,OAAO,CAAC,WAAW;CAOpB"}
@@ -1,212 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EciesSingleRecipient = void 0;
4
- const constants_1 = require("../../constants");
5
- const ecies_encryption_type_1 = require("../../enumerations/ecies-encryption-type");
6
- const aes_gcm_1 = require("../aes-gcm");
7
- const crypto_core_1 = require("./crypto-core");
8
- const i18n_setup_1 = require("../../i18n-setup");
9
- const enumerations_1 = require("../../enumerations");
10
- /**
11
- * Browser-compatible single recipient ECIES encryption/decryption
12
- */
13
- class EciesSingleRecipient {
14
- cryptoCore;
15
- config;
16
- eciesConsts;
17
- constructor(config, eciesParams = constants_1.Constants.ECIES) {
18
- this.config = config;
19
- this.eciesConsts = eciesParams;
20
- this.cryptoCore = new crypto_core_1.EciesCryptoCore(config, this.eciesConsts);
21
- }
22
- /**
23
- * Encrypt a message for a single recipient
24
- */
25
- async encrypt(encryptSimple, receiverPublicKey, message, preamble = new Uint8Array(0)) {
26
- const encryptionType = encryptSimple
27
- ? 'simple'
28
- : 'single';
29
- const encryptionTypeArray = new Uint8Array([
30
- encryptionType === 'simple'
31
- ? this.eciesConsts.ENCRYPTION_TYPE.SIMPLE
32
- : this.eciesConsts.ENCRYPTION_TYPE.SINGLE,
33
- ]);
34
- if (message.length > this.eciesConsts.MAX_RAW_DATA_SIZE) {
35
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
36
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MessageLengthExceedsMaximumAllowedSizeTemplate, { messageLength: message.length }));
37
- }
38
- // Generate ephemeral key pair
39
- const ephemeralPrivateKey = this.cryptoCore.generatePrivateKey();
40
- const ephemeralPublicKey = this.cryptoCore.getPublicKey(ephemeralPrivateKey);
41
- // Compute shared secret
42
- const normalizedReceiverPublicKey = this.cryptoCore.normalizePublicKey(receiverPublicKey);
43
- const sharedSecret = this.cryptoCore.computeSharedSecret(ephemeralPrivateKey, normalizedReceiverPublicKey);
44
- // Use first 32 bytes as symmetric key
45
- const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
46
- // Encrypt using AES-GCM
47
- const encryptResult = await aes_gcm_1.AESGCMService.encrypt(message, symKey, true, this.eciesConsts);
48
- const { encrypted, iv } = encryptResult;
49
- const authTag = encryptResult.tag;
50
- if (!authTag) {
51
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
52
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_AuthenticationTagIsRequiredForECIESEncryption));
53
- }
54
- // Add length prefix for single mode
55
- const lengthArray = encryptionType === 'simple' ? new Uint8Array(0) : new Uint8Array(8);
56
- if (encryptionType === 'single') {
57
- const view = new DataView(lengthArray.buffer);
58
- view.setBigUint64(0, BigInt(message.length), false); // big-endian
59
- }
60
- // Format: [preamble] | type (1) | ephemeralPublicKey (65) | iv (16) | authTag (16) | length (8) | encryptedData
61
- const result = new Uint8Array(preamble.length +
62
- encryptionTypeArray.length +
63
- ephemeralPublicKey.length +
64
- iv.length +
65
- authTag.length +
66
- lengthArray.length +
67
- encrypted.length);
68
- let offset = 0;
69
- result.set(preamble, offset);
70
- offset += preamble.length;
71
- result.set(encryptionTypeArray, offset);
72
- offset += encryptionTypeArray.length;
73
- result.set(ephemeralPublicKey, offset);
74
- offset += ephemeralPublicKey.length;
75
- result.set(iv, offset);
76
- offset += iv.length;
77
- result.set(authTag, offset);
78
- offset += authTag.length;
79
- result.set(lengthArray, offset);
80
- offset += lengthArray.length;
81
- result.set(encrypted, offset);
82
- return result;
83
- }
84
- /**
85
- * Parse encrypted message header
86
- */
87
- parseEncryptedMessage(encryptionType, data, preambleSize = 0, options) {
88
- // Read encryption type from first byte after preamble
89
- const actualEncryptionTypeByte = data[preambleSize];
90
- let actualEncryptionType;
91
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
92
- switch (actualEncryptionTypeByte) {
93
- case this.eciesConsts.ENCRYPTION_TYPE.SIMPLE:
94
- actualEncryptionType = ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple;
95
- break;
96
- case this.eciesConsts.ENCRYPTION_TYPE.SINGLE:
97
- actualEncryptionType = ecies_encryption_type_1.EciesEncryptionTypeEnum.Single;
98
- break;
99
- case this.eciesConsts.ENCRYPTION_TYPE.MULTIPLE:
100
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_MultipleEncryptionTypeNotSupportedInSingleRecipientMode));
101
- default:
102
- // convert the encryption type byte to hex
103
- const encryptionTypeHex = actualEncryptionTypeByte.toString(16).padStart(2, '0');
104
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidEncryptionTypeTemplate, { encryptionType: encryptionTypeHex }));
105
- }
106
- if (encryptionType !== undefined &&
107
- actualEncryptionType !== encryptionType) {
108
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
109
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_EncryptionTypeMismatchTemplate, { encryptionType, actualEncryptionType }));
110
- }
111
- const includeLengthAndCrc = actualEncryptionType === ecies_encryption_type_1.EciesEncryptionTypeEnum.Single;
112
- const requiredSize = includeLengthAndCrc
113
- ? this.eciesConsts.SINGLE.FIXED_OVERHEAD_SIZE
114
- : this.eciesConsts.SIMPLE.FIXED_OVERHEAD_SIZE;
115
- if (data.length < requiredSize) {
116
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
117
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataTooShortTemplate, { requiredSize, dataLength: data.length }));
118
- }
119
- let offset = preambleSize;
120
- const preamble = data.slice(0, preambleSize);
121
- // Skip encryption type byte
122
- offset += 1;
123
- // Extract header components
124
- const ephemeralPublicKey = data.slice(offset, offset + this.eciesConsts.PUBLIC_KEY_LENGTH);
125
- offset += this.eciesConsts.PUBLIC_KEY_LENGTH;
126
- const normalizedKey = this.cryptoCore.normalizePublicKey(ephemeralPublicKey);
127
- const iv = data.slice(offset, offset + this.eciesConsts.IV_SIZE);
128
- offset += this.eciesConsts.IV_SIZE;
129
- const authTag = data.slice(offset, offset + this.eciesConsts.AUTH_TAG_SIZE);
130
- offset += this.eciesConsts.AUTH_TAG_SIZE;
131
- // Extract length for single mode
132
- const dataLengthArray = includeLengthAndCrc
133
- ? data.slice(offset, offset + this.eciesConsts.SINGLE.DATA_LENGTH_SIZE)
134
- : new Uint8Array(0);
135
- if (includeLengthAndCrc) {
136
- offset += this.eciesConsts.SINGLE.DATA_LENGTH_SIZE;
137
- }
138
- const dataLength = includeLengthAndCrc
139
- ? Number(new DataView(dataLengthArray.buffer, dataLengthArray.byteOffset, dataLengthArray.byteLength).getBigUint64(0, false))
140
- : options?.dataLength ?? -1;
141
- if (includeLengthAndCrc &&
142
- options?.dataLength !== undefined &&
143
- dataLength !== options.dataLength) {
144
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
145
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_DataLengthMismatchTemplate, { expectedDataLength: dataLength, receivedDataLength: options.dataLength }));
146
- }
147
- // No CRC in Single encryption (AES-GCM provides authentication)
148
- // For single mode, read all remaining data as encrypted data
149
- // The dataLength represents the original message length, not encrypted length
150
- const encryptedData = data.slice(offset);
151
- const remainder = new Uint8Array(0);
152
- // No CRC validation needed (AES-GCM provides authentication)
153
- return {
154
- header: {
155
- encryptionType: actualEncryptionType,
156
- ephemeralPublicKey: normalizedKey,
157
- iv,
158
- authTag,
159
- dataLength,
160
- headerSize: includeLengthAndCrc
161
- ? this.eciesConsts.SINGLE.FIXED_OVERHEAD_SIZE
162
- : this.eciesConsts.SIMPLE.FIXED_OVERHEAD_SIZE,
163
- },
164
- data: encryptedData,
165
- remainder,
166
- };
167
- }
168
- /**
169
- * Decrypt with header
170
- */
171
- async decryptWithHeader(encryptionType, privateKey, encryptedData, preambleSize = 0, options) {
172
- const result = await this.decryptWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize, options);
173
- return result.decrypted;
174
- }
175
- /**
176
- * Extended decrypt with header that returns additional info
177
- */
178
- async decryptWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize = 0, options) {
179
- const { data, header } = this.parseEncryptedMessage(encryptionType, encryptedData, preambleSize, options);
180
- const decrypted = await this.decryptWithComponents(privateKey, header.ephemeralPublicKey, header.iv, header.authTag, data);
181
- return {
182
- decrypted,
183
- consumedBytes: preambleSize + header.headerSize + data.length,
184
- };
185
- }
186
- /**
187
- * Decrypt with individual components
188
- */
189
- async decryptWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted) {
190
- // Normalize ephemeral public key
191
- const normalizedEphemeralKey = this.cryptoCore.normalizePublicKey(ephemeralPublicKey);
192
- // Compute shared secret
193
- const sharedSecret = this.cryptoCore.computeSharedSecret(privateKey, normalizedEphemeralKey);
194
- // Use first 32 bytes as symmetric key
195
- const symKey = sharedSecret.slice(0, this.eciesConsts.SYMMETRIC.KEY_SIZE);
196
- // Combine encrypted data with auth tag for AES-GCM
197
- const encryptedWithTag = aes_gcm_1.AESGCMService.combineEncryptedDataAndTag(encrypted, authTag);
198
- // Decrypt
199
- return await aes_gcm_1.AESGCMService.decrypt(iv, encryptedWithTag, symKey, true, this.eciesConsts);
200
- }
201
- arraysEqual(a, b) {
202
- if (a.length !== b.length)
203
- return false;
204
- for (let i = 0; i < a.length; i++) {
205
- if (a[i] !== b[i])
206
- return false;
207
- }
208
- return true;
209
- }
210
- }
211
- exports.EciesSingleRecipient = EciesSingleRecipient;
212
- //# sourceMappingURL=single-recipient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"single-recipient.js","sourceRoot":"","sources":["../../../src/services/ecies/single-recipient.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./aes-gcm"), exports);
18
- __exportStar(require("./ecies"), exports);
19
- __exportStar(require("./password-login"), exports);
20
- __exportStar(require("./pbkdf2"), exports);
21
- __exportStar(require("./xor"), exports);
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,mDAAiC;AACjC,2CAAyB;AACzB,wCAAsB"}
@@ -1,49 +0,0 @@
1
- import { Wallet } from '@ethereumjs/wallet';
2
- import { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
3
- import { SecureString } from '../secure-string';
4
- import { ECIESService } from './ecies/service';
5
- import { Pbkdf2Service } from './pbkdf2';
6
- import { CoreLanguageCode, PluginI18nEngine } from '@digitaldefiance/i18n-lib';
7
- import { IECIESConstants } from '../interfaces/ecies-consts';
8
- export declare class PasswordLoginService<TLanguage extends CoreLanguageCode = CoreLanguageCode> {
9
- protected readonly eciesService: ECIESService;
10
- protected readonly pbkdf2Service: Pbkdf2Service<TLanguage>;
11
- protected readonly engine: PluginI18nEngine<TLanguage>;
12
- protected readonly eciesConsts: IECIESConstants;
13
- static readonly privateKeyStorageKey = "encryptedPrivateKey";
14
- static readonly saltStorageKey = "passwordLoginSalt";
15
- static readonly encryptedMnemonicStorageKey = "encryptedMnemonic";
16
- static readonly profileStorageKey = "pbkdf2Profile";
17
- constructor(eciesService: ECIESService, pbkdf2Service: Pbkdf2Service<TLanguage>, engine: PluginI18nEngine<TLanguage>, eciesParams?: IECIESConstants);
18
- createPasswordLoginBundle(mnemonic: SecureString, password: SecureString, profile?: Pbkdf2ProfileEnum): Promise<{
19
- salt: Uint8Array;
20
- encryptedPrivateKey: Uint8Array;
21
- encryptedMnemonic: Uint8Array;
22
- wallet: Wallet;
23
- }>;
24
- /**
25
- * Set up password login by deriving a key from the password and using it to encrypt
26
- * @param mnemonic The user's mnemonic
27
- * @param password The user's password
28
- */
29
- setupPasswordLoginLocalStorageBundle(mnemonic: SecureString, password: SecureString, profile?: Pbkdf2ProfileEnum): Promise<Wallet>;
30
- getWalletAndMnemonicFromEncryptedPasswordBundle(salt: Uint8Array, encryptedPrivateKey: Uint8Array, encryptedMnemonic: Uint8Array, password: SecureString, profile?: Pbkdf2ProfileEnum): Promise<{
31
- wallet: Wallet;
32
- mnemonic: SecureString;
33
- }>;
34
- /**
35
- * Recover wallet and mnemonic from password
36
- * @param password The user's password
37
- * @returns The user's wallet and mnemonic
38
- */
39
- getWalletAndMnemonicFromLocalStorageBundle(password: SecureString): Promise<{
40
- wallet: Wallet;
41
- mnemonic: SecureString;
42
- }>;
43
- /**
44
- *
45
- * @returns True if password login is set up (i.e. salt and encrypted private key are in local storage)
46
- */
47
- static isPasswordLoginSetup(): boolean;
48
- }
49
- //# sourceMappingURL=password-login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-login.d.ts","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAkB,gBAAgB,EAAE,gBAAgB,EAA8D,MAAM,2BAA2B,CAAC;AAC3J,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK7D,qBAAa,oBAAoB,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB;IACrF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IAChD,gBAAuB,oBAAoB,yBAAyB;IACpE,gBAAuB,cAAc,uBAAuB;IAC5D,gBAAuB,2BAA2B,uBAAuB;IACzE,gBAAuB,iBAAiB,mBAAmB;gBAE/C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,WAAW,GAAE,eAAiC;IAOvJ,yBAAyB,CACpC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC;QACT,IAAI,EAAE,UAAU,CAAC;QACjB,mBAAmB,EAAE,UAAU,CAAC;QAChC,iBAAiB,EAAE,UAAU,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAwCF;;;;OAIG;IACU,oCAAoC,CAC/C,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC,MAAM,CAAC;IA4BL,+CAA+C,CAC1D,IAAI,EAAE,UAAU,EAChB,mBAAmB,EAAE,UAAU,EAC/B,iBAAiB,EAAE,UAAU,EAC7B,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,iBAAsD,GAC9D,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAuCtD;;;;OAIG;IACU,0CAA0C,CACrD,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAmCtD;;;OAGG;WACW,oBAAoB,IAAI,OAAO;CAkB9C"}
@@ -1,121 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PasswordLoginService = void 0;
4
- const wallet_1 = require("@ethereumjs/wallet");
5
- const ecies_encryption_type_1 = require("../enumerations/ecies-encryption-type");
6
- const pbkdf2_profile_1 = require("../enumerations/pbkdf2-profile");
7
- const secure_string_1 = require("../secure-string");
8
- const utils_1 = require("../utils");
9
- const aes_gcm_1 = require("./aes-gcm");
10
- const enumerations_1 = require("../enumerations");
11
- const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
12
- const constants_1 = require("../constants");
13
- const i18n_setup_1 = require("../i18n-setup");
14
- class PasswordLoginService {
15
- eciesService;
16
- pbkdf2Service;
17
- engine;
18
- eciesConsts;
19
- static privateKeyStorageKey = 'encryptedPrivateKey';
20
- static saltStorageKey = 'passwordLoginSalt';
21
- static encryptedMnemonicStorageKey = 'encryptedMnemonic';
22
- static profileStorageKey = 'pbkdf2Profile';
23
- constructor(eciesService, pbkdf2Service, engine, eciesParams = constants_1.Constants.ECIES) {
24
- this.eciesService = eciesService;
25
- this.pbkdf2Service = pbkdf2Service;
26
- this.engine = engine;
27
- this.eciesConsts = eciesParams;
28
- }
29
- async createPasswordLoginBundle(mnemonic, password, profile = pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
30
- const { wallet } = this.eciesService.walletAndSeedFromMnemonic(mnemonic);
31
- const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile);
32
- // Encrypt private key with derived key
33
- const privateKeyBytes = wallet.getPrivateKey();
34
- const { encrypted, iv, tag } = await aes_gcm_1.AESGCMService.encrypt(privateKeyBytes, derivedKey.hash, true);
35
- if (!tag) {
36
- throw new i18n_lib_1.PluginTranslatableGenericError(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_Utils_EncryptionFailedNoAuthTag);
37
- }
38
- const encryptedPrivateKey = aes_gcm_1.AESGCMService.combineIvTagAndEncryptedData(iv, encrypted, tag);
39
- // now use the public key to encrypt the mnemonic and store it
40
- const encryptedMnemonic = await this.eciesService.encrypt(ecies_encryption_type_1.EciesEncryptionTypeEnum.Simple, [{ publicKey: wallet.getPublicKey() }], mnemonic.valueAsUint8Array);
41
- return {
42
- salt: derivedKey.salt,
43
- encryptedPrivateKey: encryptedPrivateKey,
44
- encryptedMnemonic: encryptedMnemonic,
45
- wallet,
46
- };
47
- }
48
- /**
49
- * Set up password login by deriving a key from the password and using it to encrypt
50
- * @param mnemonic The user's mnemonic
51
- * @param password The user's password
52
- */
53
- async setupPasswordLoginLocalStorageBundle(mnemonic, password, profile = pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
54
- const { salt, encryptedPrivateKey, encryptedMnemonic, wallet } = await this.createPasswordLoginBundle(mnemonic, password, profile);
55
- // store the salt and encrypted private key in local storage
56
- try {
57
- localStorage.setItem(PasswordLoginService.saltStorageKey, (0, utils_1.uint8ArrayToHex)(salt));
58
- localStorage.setItem(PasswordLoginService.privateKeyStorageKey, (0, utils_1.uint8ArrayToHex)(encryptedPrivateKey));
59
- localStorage.setItem(PasswordLoginService.encryptedMnemonicStorageKey, (0, utils_1.uint8ArrayToHex)(encryptedMnemonic));
60
- localStorage.setItem(PasswordLoginService.profileStorageKey, profile);
61
- }
62
- catch (error) {
63
- throw new i18n_lib_1.PluginTypedHandleableError(this.engine, i18n_setup_1.EciesComponentId, enumerations_1.PasswordLoginErrorTypeEnum.FailedToStoreLoginData, (0, i18n_lib_1.buildReasonMap)(enumerations_1.PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), new Error(), { cause: error instanceof Error ? error : undefined });
64
- }
65
- return wallet;
66
- }
67
- async getWalletAndMnemonicFromEncryptedPasswordBundle(salt, encryptedPrivateKey, encryptedMnemonic, password, profile = pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD) {
68
- if (!salt || !encryptedPrivateKey || !encryptedMnemonic) {
69
- throw new i18n_lib_1.PluginTypedHandleableError(this.engine, i18n_setup_1.EciesComponentId, enumerations_1.PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, (0, i18n_lib_1.buildReasonMap)(enumerations_1.PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), new Error());
70
- }
71
- const derivedKey = await this.pbkdf2Service.deriveKeyFromPasswordWithProfileAsync(password.valueAsUint8Array, profile, salt);
72
- // Decrypt private key with derived key
73
- const { iv, encryptedDataWithTag } = aes_gcm_1.AESGCMService.splitEncryptedData(encryptedPrivateKey, true, this.eciesConsts);
74
- const privateKeyBytes = await aes_gcm_1.AESGCMService.decrypt(iv, encryptedDataWithTag, derivedKey.hash, true, this.eciesConsts);
75
- const wallet = wallet_1.Wallet.fromPrivateKey(privateKeyBytes);
76
- // now decrypt the mnemonic
77
- const decryptedMnemonic = await this.eciesService.decryptSimpleOrSingleWithHeader(true, wallet.getPrivateKey(), encryptedMnemonic);
78
- return { wallet, mnemonic: new secure_string_1.SecureString(decryptedMnemonic) };
79
- }
80
- /**
81
- * Recover wallet and mnemonic from password
82
- * @param password The user's password
83
- * @returns The user's wallet and mnemonic
84
- */
85
- async getWalletAndMnemonicFromLocalStorageBundle(password) {
86
- const saltHex = localStorage.getItem(PasswordLoginService.saltStorageKey);
87
- const encryptedPrivateKeyHex = localStorage.getItem(PasswordLoginService.privateKeyStorageKey);
88
- const encryptedMnemonicHex = localStorage.getItem(PasswordLoginService.encryptedMnemonicStorageKey);
89
- const profileStr = localStorage.getItem(PasswordLoginService.profileStorageKey);
90
- if (!saltHex ||
91
- !encryptedPrivateKeyHex ||
92
- !encryptedMnemonicHex ||
93
- saltHex === '' ||
94
- encryptedPrivateKeyHex === '' ||
95
- encryptedMnemonicHex === '') {
96
- throw new i18n_lib_1.PluginTypedHandleableError(this.engine, i18n_setup_1.EciesComponentId, enumerations_1.PasswordLoginErrorTypeEnum.PasswordLoginNotSetUp, (0, i18n_lib_1.buildReasonMap)(enumerations_1.PasswordLoginErrorTypeEnum, ['Error', 'PasswordLoginError']), new Error());
97
- }
98
- const salt = (0, utils_1.hexToUint8Array)(saltHex);
99
- const encryptedPrivateKey = (0, utils_1.hexToUint8Array)(encryptedPrivateKeyHex);
100
- const encryptedMnemonic = (0, utils_1.hexToUint8Array)(encryptedMnemonicHex);
101
- const profile = profileStr || pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD;
102
- return await this.getWalletAndMnemonicFromEncryptedPasswordBundle(salt, encryptedPrivateKey, encryptedMnemonic, password, profile);
103
- }
104
- /**
105
- *
106
- * @returns True if password login is set up (i.e. salt and encrypted private key are in local storage)
107
- */
108
- static isPasswordLoginSetup() {
109
- const saltHex = localStorage.getItem(PasswordLoginService.saltStorageKey);
110
- const encryptedPrivateKeyHex = localStorage.getItem(PasswordLoginService.privateKeyStorageKey);
111
- const encryptedMnemonicHex = localStorage.getItem(PasswordLoginService.encryptedMnemonicStorageKey);
112
- return !!(saltHex &&
113
- encryptedPrivateKeyHex &&
114
- encryptedMnemonicHex &&
115
- saltHex !== '' &&
116
- encryptedPrivateKeyHex !== '' &&
117
- encryptedMnemonicHex !== '');
118
- }
119
- }
120
- exports.PasswordLoginService = PasswordLoginService;
121
- //# sourceMappingURL=password-login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-login.js","sourceRoot":"","sources":["../../src/services/password-login.ts"],"names":[],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { CoreLanguageCode, PluginI18nEngine } from '@digitaldefiance/i18n-lib';
2
- import { Pbkdf2ProfileEnum } from '../enumerations/pbkdf2-profile';
3
- import { IPbkdf2Config } from '../interfaces/pbkdf2-config';
4
- import { IPbkdf2Result } from '../interfaces/pbkdf2-result';
5
- import { IECIESConstants } from '../interfaces/ecies-consts';
6
- import { IPBkdf2Consts } from '../interfaces/pbkdf2-consts';
7
- /**
8
- * Service for handling PBKDF2 (Password-Based Key Derivation Function 2) operations.
9
- * This service provides functionality for:
10
- * - Generating secure key derivation configurations
11
- * - Deriving cryptographic keys from passwords
12
- * - Managing salt and iteration parameters
13
- * - Both synchronous and asynchronous key derivation
14
- */
15
- export declare class Pbkdf2Service<TLanguage extends CoreLanguageCode> {
16
- protected readonly engine: PluginI18nEngine<TLanguage>;
17
- protected readonly profiles: Record<string, IPbkdf2Config>;
18
- protected readonly eciesConsts: IECIESConstants;
19
- protected readonly pbkdf2Consts: IPBkdf2Consts;
20
- constructor(engine: PluginI18nEngine<TLanguage>, profiles?: Record<string, IPbkdf2Config>, eciesParams?: IECIESConstants, pbkdf2Params?: IPBkdf2Consts);
21
- /**
22
- * Get a predefined configuration profile for common use cases
23
- * @param profile The name of the profile to use
24
- * @returns Configuration object for the specified profile
25
- */
26
- getProfileConfig(profile: string): IPbkdf2Config;
27
- /**
28
- * Generate an options object for pbkdf2
29
- * @param iterations Optional number of iterations (defaults to Pbkdf2IterationsPerSecond)
30
- * @param saltBytes Optional salt size in bytes (defaults to PBKDF2.SALT_BYTES)
31
- * @param hashBytes Optional hash size in bytes (defaults to ECIES.SYMMETRIC.KEY_SIZE)
32
- * @param algorithm Optional hash algorithm (defaults to PBKDF2.ALGORITHM)
33
- * @returns Configuration object for PBKDF2
34
- */
35
- getConfig(iterations?: number, saltBytes?: number, hashBytes?: number, algorithm?: string): IPbkdf2Config;
36
- /**
37
- * Given a password, use pbkdf2 to generate an appropriately sized key for AES encryption
38
- * @param password The password to derive a key from
39
- * @param salt Optional salt (will be randomly generated if not provided)
40
- * @param iterations Optional number of iterations
41
- * @param saltBytes Optional salt size in bytes
42
- * @param keySize Optional key size in bytes
43
- * @param algorithm Optional hash algorithm
44
- * @returns Object containing the derived key, salt, and iteration count
45
- */
46
- deriveKeyFromPasswordAsync(password: Uint8Array, salt?: Uint8Array, iterations?: number, saltBytes?: number, keySize?: number, algorithm?: string): Promise<IPbkdf2Result>;
47
- /**
48
- * Derive a key using a predefined configuration profile
49
- * @param password The password to derive a key from
50
- * @param profile The configuration profile to use
51
- * @param salt Optional salt (will be randomly generated if not provided)
52
- * @returns Object containing the derived key, salt, and iteration count
53
- */
54
- deriveKeyFromPasswordWithProfileAsync(password: Uint8Array, profile: Pbkdf2ProfileEnum, salt?: Uint8Array): Promise<IPbkdf2Result>;
55
- }
56
- //# sourceMappingURL=pbkdf2.d.ts.map