@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 +0,0 @@
1
- {"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;;;;GAOG;AACH,qBAAa,aAAa,CAAC,SAAS,SAAS,gBAAgB;IAC3D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC;gBAG7C,MAAM,EAAE,gBAAgB,CAAC,SAAS,CAAC,EACnC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAA6B,EACnE,WAAW,GAAE,eAAiC,EAC9C,YAAY,GAAE,aAAgC;IAOhD;;;;OAIG;IACI,gBAAgB,CACrB,OAAO,EAAE,MAAM,GACd,aAAa;IAahB;;;;;;;OAOG;IACI,SAAS,CACd,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa;IAkBhB;;;;;;;;;OASG;IACU,0BAA0B,CACrC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,UAAU,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IA8CzB;;;;;;OAMG;IACU,qCAAqC,CAChD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC;CAW1B"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pbkdf2Service = void 0;
4
- const constants_1 = require("../constants");
5
- const pbkdf2_error_type_1 = require("../enumerations/pbkdf2-error-type");
6
- const pbkdf2_1 = require("../errors/pbkdf2");
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
- class Pbkdf2Service {
16
- engine;
17
- profiles;
18
- eciesConsts;
19
- pbkdf2Consts;
20
- constructor(engine, profiles = constants_1.Constants.PBKDF2_PROFILES, eciesParams = constants_1.Constants.ECIES, pbkdf2Params = constants_1.Constants.PBKDF2) {
21
- this.engine = engine;
22
- this.profiles = profiles;
23
- this.eciesConsts = eciesParams;
24
- this.pbkdf2Consts = pbkdf2Params;
25
- }
26
- /**
27
- * Get a predefined configuration profile for common use cases
28
- * @param profile The name of the profile to use
29
- * @returns Configuration object for the specified profile
30
- */
31
- getProfileConfig(profile) {
32
- const profileConfig = this.profiles[profile];
33
- if (!profileConfig) {
34
- throw new pbkdf2_1.Pbkdf2Error(pbkdf2_error_type_1.Pbkdf2ErrorType.InvalidProfile, this.engine);
35
- }
36
- return {
37
- hashBytes: profileConfig.hashBytes,
38
- saltBytes: profileConfig.saltBytes,
39
- iterations: profileConfig.iterations,
40
- algorithm: profileConfig.algorithm,
41
- };
42
- }
43
- /**
44
- * Generate an options object for pbkdf2
45
- * @param iterations Optional number of iterations (defaults to Pbkdf2IterationsPerSecond)
46
- * @param saltBytes Optional salt size in bytes (defaults to PBKDF2.SALT_BYTES)
47
- * @param hashBytes Optional hash size in bytes (defaults to ECIES.SYMMETRIC.KEY_SIZE)
48
- * @param algorithm Optional hash algorithm (defaults to PBKDF2.ALGORITHM)
49
- * @returns Configuration object for PBKDF2
50
- */
51
- getConfig(iterations, saltBytes, hashBytes, algorithm) {
52
- // larger numbers mean better security, less
53
- return {
54
- // size of the generated hash
55
- hashBytes: hashBytes ?? this.eciesConsts.SYMMETRIC.KEY_SIZE,
56
- // larger salt means hashed passwords are more resistant to rainbow table, but
57
- // you get diminishing returns pretty fast
58
- saltBytes: saltBytes ?? this.pbkdf2Consts.SALT_BYTES,
59
- // more iterations means an attacker has to take longer to brute force an
60
- // individual password, so larger is better. however, larger also means longer
61
- // to hash the password. tune so that hashing the password takes about a
62
- // second
63
- iterations: iterations ?? this.pbkdf2Consts.ITERATIONS_PER_SECOND,
64
- // hash algorithm
65
- algorithm: algorithm ?? this.pbkdf2Consts.ALGORITHM,
66
- };
67
- }
68
- /**
69
- * Given a password, use pbkdf2 to generate an appropriately sized key for AES encryption
70
- * @param password The password to derive a key from
71
- * @param salt Optional salt (will be randomly generated if not provided)
72
- * @param iterations Optional number of iterations
73
- * @param saltBytes Optional salt size in bytes
74
- * @param keySize Optional key size in bytes
75
- * @param algorithm Optional hash algorithm
76
- * @returns Object containing the derived key, salt, and iteration count
77
- */
78
- async deriveKeyFromPasswordAsync(password, salt, iterations, saltBytes, keySize, algorithm) {
79
- const config = this.getConfig(iterations, saltBytes, keySize, algorithm);
80
- const saltBytes_ = salt ?? crypto.getRandomValues(new Uint8Array(config.saltBytes));
81
- if (saltBytes_.length !== config.saltBytes) {
82
- throw new pbkdf2_1.Pbkdf2Error(pbkdf2_error_type_1.Pbkdf2ErrorType.InvalidSaltLength, this.engine);
83
- }
84
- const keyMaterial = await crypto.subtle.importKey('raw', new Uint8Array(password), 'PBKDF2', false, ['deriveBits']);
85
- const keyArray = await crypto.subtle.deriveBits({
86
- name: 'PBKDF2',
87
- salt: new Uint8Array(saltBytes_),
88
- iterations: config.iterations,
89
- hash: config.algorithm,
90
- }, keyMaterial, config.hashBytes * 8);
91
- const keyBytes = new Uint8Array(keyArray);
92
- if (keyBytes.length !== config.hashBytes) {
93
- throw new pbkdf2_1.Pbkdf2Error(pbkdf2_error_type_1.Pbkdf2ErrorType.InvalidHashLength, this.engine);
94
- }
95
- return {
96
- salt: saltBytes_,
97
- hash: keyBytes,
98
- iterations: config.iterations,
99
- };
100
- }
101
- /**
102
- * Derive a key using a predefined configuration profile
103
- * @param password The password to derive a key from
104
- * @param profile The configuration profile to use
105
- * @param salt Optional salt (will be randomly generated if not provided)
106
- * @returns Object containing the derived key, salt, and iteration count
107
- */
108
- async deriveKeyFromPasswordWithProfileAsync(password, profile, salt) {
109
- const config = this.getProfileConfig(profile);
110
- return await this.deriveKeyFromPasswordAsync(password, salt, config.iterations, config.saltBytes, config.hashBytes, config.algorithm);
111
- }
112
- }
113
- exports.Pbkdf2Service = Pbkdf2Service;
114
- //# sourceMappingURL=pbkdf2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/services/pbkdf2.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AACzC,yEAAoE;AAEpE,6CAA+C;AAM/C;;;;;;;GAOG;AACH,MAAa,aAAa;IACL,MAAM,CAA8B;IACpC,QAAQ,CAAgC;IACxC,WAAW,CAAkB;IAC7B,YAAY,CAAgB;IAE/C,YACE,MAAmC,EACnC,WAA0C,qBAAS,CAAC,eAAe,EACnE,cAA+B,qBAAS,CAAC,KAAK,EAC9C,eAA8B,qBAAS,CAAC,MAAM;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IACD;;;;OAIG;IACI,gBAAgB,CACrB,OAAe;QAEf,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC;QACD,OAAO;YACL,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,SAAS,CACd,UAAmB,EACnB,SAAkB,EAClB,SAAkB,EAClB,SAAkB;QAElB,4CAA4C;QAC5C,OAAO;YACL,6BAA6B;YAC7B,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ;YAC3D,8EAA8E;YAC9E,0CAA0C;YAC1C,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU;YACpD,yEAAyE;YACzE,8EAA8E;YAC9E,wEAAwE;YACxE,SAAS;YACT,UAAU,EAAE,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB;YACjE,iBAAiB;YACjB,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS;SACpD,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,0BAA0B,CACrC,QAAoB,EACpB,IAAiB,EACjB,UAAmB,EACnB,SAAkB,EAClB,OAAgB,EAChB,SAAkB;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,CACV,CAAC;QACF,MAAM,UAAU,GACd,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnE,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL,IAAI,UAAU,CAAC,QAAQ,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,CAAC,YAAY,CAAC,CACf,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAC7C;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,SAAS;SACvB,EACD,WAAW,EACX,MAAM,CAAC,SAAS,GAAG,CAAC,CACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,oBAAW,CAAC,mCAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,qCAAqC,CAChD,QAAoB,EACpB,OAA0B,EAC1B,IAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAC1C,QAAQ,EACR,IAAI,EACJ,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC;CACF;AAzJD,sCAyJC"}
@@ -1,37 +0,0 @@
1
- /**
2
- * A simple and fast XOR cipher for obfuscating data in memory for browser environments.
3
- * This is not a substitute for strong cryptography but provides a lightweight way
4
- * to prevent sensitive data from being stored in plaintext in memory.
5
- */
6
- export declare class XorService {
7
- /**
8
- * Encrypts or decrypts data using a simple XOR cipher.
9
- * The key is XORed with the data. The same function is used for
10
- * both encryption and decryption.
11
- *
12
- * @param data The data to process.
13
- * @param key The key to use for the XOR operation.
14
- * @returns A new Uint8Array containing the result of the XOR operation.
15
- */
16
- static xor(data: Uint8Array, key: Uint8Array): Uint8Array;
17
- /**
18
- * Generates a random key of a specified length.
19
- * @param length The length of the key in bytes.
20
- * @returns A Uint8Array containing the random key.
21
- * @throws Error if crypto API is not available.
22
- */
23
- static generateKey(length: number): Uint8Array;
24
- /**
25
- * Helper method to convert a string to a Uint8Array.
26
- * @param str The string to convert.
27
- * @returns A Uint8Array representation of the string.
28
- */
29
- static stringToBytes(str: string): Uint8Array;
30
- /**
31
- * Helper method to convert a Uint8Array to a string.
32
- * @param bytes The Uint8Array to convert.
33
- * @returns A string representation of the Uint8Array.
34
- */
35
- static bytesToString(bytes: Uint8Array): string;
36
- }
37
- //# sourceMappingURL=xor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xor.d.ts","sourceRoot":"","sources":["../../src/services/xor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,UAAU;IACrB;;;;;;;;OAQG;WACW,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU;IAQhE;;;;;OAKG;WACW,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAgBrD;;;;OAIG;WACW,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAKpD;;;;OAIG;WACW,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;CAIvD"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XorService = void 0;
4
- /**
5
- * A simple and fast XOR cipher for obfuscating data in memory for browser environments.
6
- * This is not a substitute for strong cryptography but provides a lightweight way
7
- * to prevent sensitive data from being stored in plaintext in memory.
8
- */
9
- class XorService {
10
- /**
11
- * Encrypts or decrypts data using a simple XOR cipher.
12
- * The key is XORed with the data. The same function is used for
13
- * both encryption and decryption.
14
- *
15
- * @param data The data to process.
16
- * @param key The key to use for the XOR operation.
17
- * @returns A new Uint8Array containing the result of the XOR operation.
18
- */
19
- static xor(data, key) {
20
- const result = new Uint8Array(data.length);
21
- for (let i = 0; i < data.length; i++) {
22
- result[i] = data[i] ^ key[i % key.length];
23
- }
24
- return result;
25
- }
26
- /**
27
- * Generates a random key of a specified length.
28
- * @param length The length of the key in bytes.
29
- * @returns A Uint8Array containing the random key.
30
- * @throws Error if crypto API is not available.
31
- */
32
- static generateKey(length) {
33
- const randomBytes = new Uint8Array(length);
34
- // Check if running in a browser with crypto support
35
- if (typeof window !== 'undefined' && window.crypto) {
36
- window.crypto.getRandomValues(randomBytes);
37
- }
38
- else if (typeof crypto !== 'undefined') {
39
- // For environments where crypto is global (some newer JS runtimes)
40
- crypto.getRandomValues(randomBytes);
41
- }
42
- else {
43
- throw new Error('Crypto API not available in this environment');
44
- }
45
- return randomBytes;
46
- }
47
- /**
48
- * Helper method to convert a string to a Uint8Array.
49
- * @param str The string to convert.
50
- * @returns A Uint8Array representation of the string.
51
- */
52
- static stringToBytes(str) {
53
- const encoder = new TextEncoder();
54
- return encoder.encode(str);
55
- }
56
- /**
57
- * Helper method to convert a Uint8Array to a string.
58
- * @param bytes The Uint8Array to convert.
59
- * @returns A string representation of the Uint8Array.
60
- */
61
- static bytesToString(bytes) {
62
- const decoder = new TextDecoder();
63
- return decoder.decode(bytes);
64
- }
65
- }
66
- exports.XorService = XorService;
67
- //# sourceMappingURL=xor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xor.js","sourceRoot":"","sources":["../../src/services/xor.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,UAAU;IACrB;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAgB,EAAE,GAAe;QACjD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,MAAc;QACtC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAE3C,oDAAoD;QACpD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACzC,mEAAmE;YACnE,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,GAAW;QACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,KAAiB;QAC3C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AA3DD,gCA2DC"}
@@ -1,4 +0,0 @@
1
- export type DeepPartial<T> = {
2
- [P in keyof T]?: T[P] extends (...args: any[]) => any ? T[P] : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends object ? DeepPartial<T[P]> : T[P];
3
- };
4
- //# sourceMappingURL=deep-partial.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deep-partial.d.ts","sourceRoot":"","sources":["../../src/types/deep-partial.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GACjD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GACnC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAC7B,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC3B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACnB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC;CACT,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=deep-partial.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deep-partial.js","sourceRoot":"","sources":["../../src/types/deep-partial.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;AAC3E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;AAC7E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;AAC/E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;AAC3E;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GACxC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAG/D,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AACpC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAC1C,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AACtC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GACzC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/utils.d.ts DELETED
@@ -1,68 +0,0 @@
1
- import { LengthEncodingType } from './enumerations/length-encoding-type';
2
- /**
3
- * Encodes the length of the data in the buffer
4
- * @param buffer The buffer to encode
5
- * @returns The encoded buffer
6
- */
7
- export declare function lengthEncodeData(buffer: Uint8Array): Uint8Array;
8
- export declare function decodeLengthEncodedData(buffer: Uint8Array): {
9
- data: Uint8Array;
10
- totalLength: number;
11
- };
12
- export declare function uint8ArrayToBase64(uint8Array: Uint8Array): string;
13
- export declare function base64ToUint8Array(base64String: string): Uint8Array;
14
- export declare function uint8ArrayToHex(uint8Array: Uint8Array): string;
15
- export declare function hexToUint8Array(hexString: string): Uint8Array;
16
- /**
17
- * Utility functions for browser ECIES implementation
18
- */
19
- /**
20
- * CRC16-CCITT implementation for data integrity checking
21
- * Uses CRC16-CCITT-FALSE variant (init 0xFFFF)
22
- */
23
- export declare function crc16(data: Uint8Array): Uint8Array;
24
- /**
25
- * Convert string to Uint8Array (UTF-8 encoding)
26
- */
27
- export declare function stringToUint8Array(str: string): Uint8Array;
28
- /**
29
- * Convert Uint8Array to string (UTF-8 decoding)
30
- */
31
- export declare function uint8ArrayToString(array: Uint8Array): string;
32
- /**
33
- * Secure random bytes generation
34
- */
35
- export declare function randomBytes(length: number): Uint8Array;
36
- /**
37
- * Compare two Uint8Arrays for equality
38
- */
39
- export declare function arraysEqual(a: Uint8Array, b: Uint8Array): boolean;
40
- /**
41
- * Concatenate multiple Uint8Arrays
42
- */
43
- export declare function concatUint8Arrays(...arrays: Uint8Array[]): Uint8Array;
44
- /**
45
- * Get the length encoding type for a given length
46
- * @param length The length to evaluate
47
- * @returns The corresponding LengthEncodingType
48
- */
49
- export declare function getLengthEncodingTypeForLength<TStringKey extends string, TLanguage extends string>(length: number | BigInt): LengthEncodingType;
50
- /**
51
- * Get the length encoding type for a given value
52
- * @param value The value to evaluate
53
- * @returns The corresponding LengthEncodingType
54
- */
55
- export declare function getLengthEncodingTypeFromValue<TStringKey extends string, TLanguage extends string>(value: number): LengthEncodingType;
56
- /**
57
- * Safely converts BigInt to Number, throwing if value exceeds safe integer range
58
- * @param value The BigInt value to convert
59
- * @returns The number value
60
- */
61
- export declare function safeBigIntToNumber(value: bigint): number;
62
- /**
63
- * Get the length in bytes for a given LengthEncodingType
64
- * @param type The LengthEncodingType to evaluate
65
- * @returns The length in bytes
66
- */
67
- export declare function getLengthForLengthType<TStringKey extends string, TLanguage extends string>(type: LengthEncodingType): number;
68
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAKzE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAyB/D;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG;IAC3D,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CA+DA;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAMjE;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAQnE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAI9D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAgB7D;AAED;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAoBlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAEtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CASrE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAqC7C;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAUnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,MAAM,EACxB,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAgBlC"}
package/dist/utils.js DELETED
@@ -1,288 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lengthEncodeData = lengthEncodeData;
4
- exports.decodeLengthEncodedData = decodeLengthEncodedData;
5
- exports.uint8ArrayToBase64 = uint8ArrayToBase64;
6
- exports.base64ToUint8Array = base64ToUint8Array;
7
- exports.uint8ArrayToHex = uint8ArrayToHex;
8
- exports.hexToUint8Array = hexToUint8Array;
9
- exports.crc16 = crc16;
10
- exports.stringToUint8Array = stringToUint8Array;
11
- exports.uint8ArrayToString = uint8ArrayToString;
12
- exports.randomBytes = randomBytes;
13
- exports.arraysEqual = arraysEqual;
14
- exports.concatUint8Arrays = concatUint8Arrays;
15
- exports.getLengthEncodingTypeForLength = getLengthEncodingTypeForLength;
16
- exports.getLengthEncodingTypeFromValue = getLengthEncodingTypeFromValue;
17
- exports.safeBigIntToNumber = safeBigIntToNumber;
18
- exports.getLengthForLengthType = getLengthForLengthType;
19
- const length_encoding_type_1 = require("./enumerations/length-encoding-type");
20
- const length_error_type_1 = require("./enumerations/length-error-type");
21
- const errors_1 = require("./errors");
22
- const i18n_setup_1 = require("./i18n-setup");
23
- /**
24
- * Encodes the length of the data in the buffer
25
- * @param buffer The buffer to encode
26
- * @returns The encoded buffer
27
- */
28
- function lengthEncodeData(buffer) {
29
- const lengthType = getLengthEncodingTypeForLength(buffer.length);
30
- const lengthTypeSize = getLengthForLengthType(lengthType);
31
- const result = new Uint8Array(1 + lengthTypeSize + buffer.length);
32
- const view = new DataView(result.buffer);
33
- view.setUint8(0, lengthType);
34
- switch (lengthType) {
35
- case length_encoding_type_1.LengthEncodingType.UInt8:
36
- view.setUint8(1, buffer.length);
37
- break;
38
- case length_encoding_type_1.LengthEncodingType.UInt16:
39
- view.setUint16(1, buffer.length, false); // big-endian
40
- break;
41
- case length_encoding_type_1.LengthEncodingType.UInt32:
42
- view.setUint32(1, buffer.length, false); // big-endian
43
- break;
44
- case length_encoding_type_1.LengthEncodingType.UInt64:
45
- view.setBigUint64(1, BigInt(buffer.length), false); // big-endian
46
- break;
47
- }
48
- result.set(buffer, 1 + lengthTypeSize);
49
- return result;
50
- }
51
- function decodeLengthEncodedData(buffer) {
52
- if (buffer.length < 1) {
53
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooShort, (0, i18n_setup_1.getEciesI18nEngine)());
54
- }
55
- const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
56
- const lengthType = getLengthEncodingTypeFromValue(view.getUint8(0));
57
- const lengthTypeSize = getLengthForLengthType(lengthType);
58
- if (buffer.length < 1 + lengthTypeSize) {
59
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooShort, (0, i18n_setup_1.getEciesI18nEngine)());
60
- }
61
- let length;
62
- switch (lengthType) {
63
- case length_encoding_type_1.LengthEncodingType.UInt8:
64
- length = view.getUint8(1);
65
- break;
66
- case length_encoding_type_1.LengthEncodingType.UInt16:
67
- length = view.getUint16(1, false); // big-endian
68
- break;
69
- case length_encoding_type_1.LengthEncodingType.UInt32:
70
- length = view.getUint32(1, false); // big-endian
71
- break;
72
- case length_encoding_type_1.LengthEncodingType.UInt64:
73
- length = view.getBigUint64(1, false); // big-endian
74
- if (length.valueOf() > BigInt(Number.MAX_SAFE_INTEGER)) {
75
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooLong, (0, i18n_setup_1.getEciesI18nEngine)());
76
- }
77
- break;
78
- default:
79
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsInvalidType, (0, i18n_setup_1.getEciesI18nEngine)());
80
- }
81
- const totalLength = 1 + lengthTypeSize + Number(length);
82
- if (totalLength > buffer.length) {
83
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooShort, (0, i18n_setup_1.getEciesI18nEngine)());
84
- }
85
- return {
86
- data: buffer.subarray(1 + lengthTypeSize, totalLength),
87
- totalLength,
88
- };
89
- }
90
- function uint8ArrayToBase64(uint8Array) {
91
- let binaryString = '';
92
- for (let i = 0; i < uint8Array.length; i++) {
93
- binaryString += String.fromCharCode(uint8Array[i]);
94
- }
95
- return btoa(binaryString);
96
- }
97
- function base64ToUint8Array(base64String) {
98
- const binaryString = atob(base64String);
99
- const len = binaryString.length;
100
- const bytes = new Uint8Array(len);
101
- for (let i = 0; i < len; i++) {
102
- bytes[i] = binaryString.charCodeAt(i);
103
- }
104
- return bytes;
105
- }
106
- function uint8ArrayToHex(uint8Array) {
107
- return Array.from(uint8Array)
108
- .map((byte) => byte.toString(16).padStart(2, '0'))
109
- .join('');
110
- }
111
- function hexToUint8Array(hexString) {
112
- if (!hexString || typeof hexString !== 'string') {
113
- throw new Error('Invalid hex string');
114
- }
115
- if (hexString.length % 2 !== 0) {
116
- throw new Error('Hex string must have even length');
117
- }
118
- if (!/^[0-9a-fA-F]*$/.test(hexString)) {
119
- throw new Error('Hex string contains invalid characters');
120
- }
121
- const len = hexString.length;
122
- const bytes = new Uint8Array(len / 2);
123
- for (let i = 0; i < len; i += 2) {
124
- bytes[i / 2] = parseInt(hexString.substring(i, i + 2), 16);
125
- }
126
- return bytes;
127
- }
128
- /**
129
- * Utility functions for browser ECIES implementation
130
- */
131
- /**
132
- * CRC16-CCITT implementation for data integrity checking
133
- * Uses CRC16-CCITT-FALSE variant (init 0xFFFF)
134
- */
135
- function crc16(data) {
136
- let crc = 0xffff; // Initial value for CRC16-CCITT-FALSE
137
- const polynomial = 0x1021; // CRC16-CCITT polynomial
138
- for (let i = 0; i < data.length; i++) {
139
- crc ^= data[i] << 8;
140
- for (let j = 0; j < 8; j++) {
141
- if (crc & 0x8000) {
142
- crc = (crc << 1) ^ polynomial;
143
- }
144
- else {
145
- crc = crc << 1;
146
- }
147
- crc &= 0xffff; // Keep it 16-bit
148
- }
149
- }
150
- const result = new Uint8Array(2);
151
- result[0] = (crc >>> 8) & 0xff; // Big-endian
152
- result[1] = crc & 0xff;
153
- return result;
154
- }
155
- /**
156
- * Convert string to Uint8Array (UTF-8 encoding)
157
- */
158
- function stringToUint8Array(str) {
159
- return new TextEncoder().encode(str);
160
- }
161
- /**
162
- * Convert Uint8Array to string (UTF-8 decoding)
163
- */
164
- function uint8ArrayToString(array) {
165
- return new TextDecoder().decode(array);
166
- }
167
- /**
168
- * Secure random bytes generation
169
- */
170
- function randomBytes(length) {
171
- return crypto.getRandomValues(new Uint8Array(length));
172
- }
173
- /**
174
- * Compare two Uint8Arrays for equality
175
- */
176
- function arraysEqual(a, b) {
177
- if (a.length !== b.length)
178
- return false;
179
- let result = 0;
180
- for (let i = 0; i < a.length; i++) {
181
- result |= a[i] ^ b[i];
182
- }
183
- return result === 0;
184
- }
185
- /**
186
- * Concatenate multiple Uint8Arrays
187
- */
188
- function concatUint8Arrays(...arrays) {
189
- const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
190
- const result = new Uint8Array(totalLength);
191
- let offset = 0;
192
- for (const array of arrays) {
193
- result.set(array, offset);
194
- offset += array.length;
195
- }
196
- return result;
197
- }
198
- /**
199
- * Get the length encoding type for a given length
200
- * @param length The length to evaluate
201
- * @returns The corresponding LengthEncodingType
202
- */
203
- function getLengthEncodingTypeForLength(length) {
204
- if (typeof length === 'number') {
205
- if (length < 256) {
206
- return length_encoding_type_1.LengthEncodingType.UInt8;
207
- }
208
- else if (length < 65536) {
209
- return length_encoding_type_1.LengthEncodingType.UInt16;
210
- }
211
- else if (length < 4294967296) {
212
- return length_encoding_type_1.LengthEncodingType.UInt32;
213
- }
214
- else if (length < Number.MAX_SAFE_INTEGER) {
215
- return length_encoding_type_1.LengthEncodingType.UInt64;
216
- }
217
- else {
218
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooLong, (0, i18n_setup_1.getEciesI18nEngine)());
219
- }
220
- }
221
- else if (typeof length === 'bigint') {
222
- if (length < 256n) {
223
- return length_encoding_type_1.LengthEncodingType.UInt8;
224
- }
225
- else if (length < 65536n) {
226
- return length_encoding_type_1.LengthEncodingType.UInt16;
227
- }
228
- else if (length < 4294967296n) {
229
- return length_encoding_type_1.LengthEncodingType.UInt32;
230
- }
231
- else if (length < 18446744073709551616n) {
232
- return length_encoding_type_1.LengthEncodingType.UInt64;
233
- }
234
- else {
235
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsTooLong, (0, i18n_setup_1.getEciesI18nEngine)());
236
- }
237
- }
238
- else {
239
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsInvalidType, (0, i18n_setup_1.getEciesI18nEngine)());
240
- }
241
- }
242
- /**
243
- * Get the length encoding type for a given value
244
- * @param value The value to evaluate
245
- * @returns The corresponding LengthEncodingType
246
- */
247
- function getLengthEncodingTypeFromValue(value) {
248
- for (const length of Object.values(length_encoding_type_1.LengthEncodingType)) {
249
- if (length === value) {
250
- return length;
251
- }
252
- }
253
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsInvalidType, (0, i18n_setup_1.getEciesI18nEngine)());
254
- }
255
- /**
256
- * Safely converts BigInt to Number, throwing if value exceeds safe integer range
257
- * @param value The BigInt value to convert
258
- * @returns The number value
259
- */
260
- function safeBigIntToNumber(value) {
261
- if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
262
- throw new Error('Value exceeds safe integer range');
263
- }
264
- if (value < BigInt(Number.MIN_SAFE_INTEGER)) {
265
- throw new Error('Value below safe integer range');
266
- }
267
- return Number(value);
268
- }
269
- /**
270
- * Get the length in bytes for a given LengthEncodingType
271
- * @param type The LengthEncodingType to evaluate
272
- * @returns The length in bytes
273
- */
274
- function getLengthForLengthType(type) {
275
- switch (type) {
276
- case length_encoding_type_1.LengthEncodingType.UInt8:
277
- return 1;
278
- case length_encoding_type_1.LengthEncodingType.UInt16:
279
- return 2;
280
- case length_encoding_type_1.LengthEncodingType.UInt32:
281
- return 4;
282
- case length_encoding_type_1.LengthEncodingType.UInt64:
283
- return 8;
284
- default:
285
- throw new errors_1.LengthError(length_error_type_1.LengthErrorType.LengthIsInvalidType, (0, i18n_setup_1.getEciesI18nEngine)());
286
- }
287
- }
288
- //# sourceMappingURL=utils.js.map
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}