@digitaldefiance/ecies-lib 4.4.11 → 4.4.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/package.json +6 -4
  2. package/src/builders/ecies-builder.d.ts +18 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +30 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/index.d.ts +6 -0
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/{index.ts → index.js} +1 -1
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +51 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +97 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +60 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +446 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +34 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +56 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/index.d.ts +6 -0
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/{index.ts → index.js} +1 -1
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +16 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +12 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/email-string.d.ts +42 -0
  31. package/src/email-string.d.ts.map +1 -0
  32. package/src/email-string.js +67 -0
  33. package/src/email-string.js.map +1 -0
  34. package/src/enumerations/disposed-error-type.d.ts +12 -0
  35. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  36. package/src/enumerations/disposed-error-type.js +13 -0
  37. package/src/enumerations/disposed-error-type.js.map +1 -0
  38. package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
  39. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
  40. package/src/enumerations/ecies-cipher-suite.js +6 -0
  41. package/src/enumerations/ecies-cipher-suite.js.map +1 -0
  42. package/src/enumerations/ecies-encryption-type.d.ts +11 -0
  43. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
  44. package/src/enumerations/ecies-encryption-type.js +27 -0
  45. package/src/enumerations/ecies-encryption-type.js.map +1 -0
  46. package/src/enumerations/ecies-error-type.d.ts +44 -0
  47. package/src/enumerations/ecies-error-type.d.ts.map +1 -0
  48. package/src/enumerations/ecies-error-type.js +45 -0
  49. package/src/enumerations/ecies-error-type.js.map +1 -0
  50. package/src/enumerations/ecies-string-key.d.ts +192 -0
  51. package/src/enumerations/ecies-string-key.d.ts.map +1 -0
  52. package/src/enumerations/ecies-string-key.js +199 -0
  53. package/src/enumerations/ecies-string-key.js.map +1 -0
  54. package/src/enumerations/ecies-version.d.ts +4 -0
  55. package/src/enumerations/ecies-version.d.ts.map +1 -0
  56. package/src/enumerations/ecies-version.js +5 -0
  57. package/src/enumerations/ecies-version.js.map +1 -0
  58. package/src/enumerations/guid-brand-type.d.ts +27 -0
  59. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  60. package/src/enumerations/guid-brand-type.js +28 -0
  61. package/src/enumerations/guid-brand-type.js.map +1 -0
  62. package/src/enumerations/guid-error-type.d.ts +7 -0
  63. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  64. package/src/enumerations/guid-error-type.js +8 -0
  65. package/src/enumerations/guid-error-type.js.map +1 -0
  66. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  67. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  68. package/src/enumerations/id-provider-error-type.js +44 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/index.d.ts +18 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/{index.ts → index.js} +1 -0
  73. package/src/enumerations/index.js.map +1 -0
  74. package/src/enumerations/invalid-email-type.d.ts +6 -0
  75. package/src/enumerations/invalid-email-type.d.ts.map +1 -0
  76. package/src/enumerations/invalid-email-type.js +7 -0
  77. package/src/enumerations/invalid-email-type.js.map +1 -0
  78. package/src/enumerations/length-encoding-type.d.ts +7 -0
  79. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  80. package/src/enumerations/length-encoding-type.js +8 -0
  81. package/src/enumerations/length-encoding-type.js.map +1 -0
  82. package/src/enumerations/length-error-type.d.ts +6 -0
  83. package/src/enumerations/length-error-type.d.ts.map +1 -0
  84. package/src/enumerations/length-error-type.js +7 -0
  85. package/src/enumerations/length-error-type.js.map +1 -0
  86. package/src/enumerations/member-error-type.d.ts +87 -0
  87. package/src/enumerations/member-error-type.d.ts.map +1 -0
  88. package/src/enumerations/member-error-type.js +88 -0
  89. package/src/enumerations/member-error-type.js.map +1 -0
  90. package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
  91. package/src/enumerations/member-type.d.ts.map +1 -0
  92. package/src/enumerations/member-type.js +16 -0
  93. package/src/enumerations/member-type.js.map +1 -0
  94. package/src/enumerations/password-login-error-type.d.ts +5 -0
  95. package/src/enumerations/password-login-error-type.d.ts.map +1 -0
  96. package/src/enumerations/password-login-error-type.js +6 -0
  97. package/src/enumerations/password-login-error-type.js.map +1 -0
  98. package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
  99. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  100. package/src/enumerations/pbkdf2-error-type.js +7 -0
  101. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  102. package/src/enumerations/pbkdf2-profile.d.ts +6 -0
  103. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  104. package/src/enumerations/pbkdf2-profile.js +7 -0
  105. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  106. package/src/enumerations/secure-storage-error-type.d.ts +6 -0
  107. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
  108. package/src/enumerations/secure-storage-error-type.js +7 -0
  109. package/src/enumerations/secure-storage-error-type.js.map +1 -0
  110. package/src/errors/disposed.d.ts +22 -0
  111. package/src/errors/disposed.d.ts.map +1 -0
  112. package/src/errors/disposed.js +28 -0
  113. package/src/errors/disposed.js.map +1 -0
  114. package/src/errors/ecies.d.ts +52 -0
  115. package/src/errors/ecies.d.ts.map +1 -0
  116. package/src/errors/ecies.js +78 -0
  117. package/src/errors/ecies.js.map +1 -0
  118. package/src/errors/guid.d.ts +49 -0
  119. package/src/errors/guid.d.ts.map +1 -0
  120. package/src/errors/guid.js +96 -0
  121. package/src/errors/guid.js.map +1 -0
  122. package/src/errors/id-provider.d.ts +23 -0
  123. package/src/errors/id-provider.d.ts.map +1 -0
  124. package/src/errors/id-provider.js +29 -0
  125. package/src/errors/id-provider.js.map +1 -0
  126. package/src/errors/{index.ts → index.d.ts} +1 -0
  127. package/src/errors/index.d.ts.map +1 -0
  128. package/src/errors/index.js +10 -0
  129. package/src/errors/index.js.map +1 -0
  130. package/src/errors/invalid-email.d.ts +8 -0
  131. package/src/errors/invalid-email.d.ts.map +1 -0
  132. package/src/errors/invalid-email.js +15 -0
  133. package/src/errors/invalid-email.js.map +1 -0
  134. package/src/errors/length.d.ts +7 -0
  135. package/src/errors/length.d.ts.map +1 -0
  136. package/src/errors/length.js +11 -0
  137. package/src/errors/length.js.map +1 -0
  138. package/src/errors/member.d.ts +7 -0
  139. package/src/errors/member.d.ts.map +1 -0
  140. package/src/errors/member.js +11 -0
  141. package/src/errors/member.js.map +1 -0
  142. package/src/errors/pbkdf2.d.ts +7 -0
  143. package/src/errors/pbkdf2.d.ts.map +1 -0
  144. package/src/errors/pbkdf2.js +11 -0
  145. package/src/errors/pbkdf2.js.map +1 -0
  146. package/src/errors/secure-storage.d.ts +7 -0
  147. package/src/errors/secure-storage.d.ts.map +1 -0
  148. package/src/errors/secure-storage.js +12 -0
  149. package/src/errors/secure-storage.js.map +1 -0
  150. package/src/errors/simple-ecies.d.ts +6 -0
  151. package/src/errors/simple-ecies.d.ts.map +1 -0
  152. package/src/errors/simple-ecies.js +12 -0
  153. package/src/errors/simple-ecies.js.map +1 -0
  154. package/src/errors/simple-test-error.d.ts +4 -0
  155. package/src/errors/simple-test-error.d.ts.map +1 -0
  156. package/src/errors/simple-test-error.js +7 -0
  157. package/src/errors/simple-test-error.js.map +1 -0
  158. package/src/i18n-setup.d.ts +32 -0
  159. package/src/i18n-setup.d.ts.map +1 -0
  160. package/src/i18n-setup.js +101 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/index.d.ts +80 -0
  163. package/src/index.d.ts.map +1 -0
  164. package/src/{index.ts → index.js} +7 -64
  165. package/src/index.js.map +1 -0
  166. package/src/interfaces/checksum-config.d.ts +5 -0
  167. package/src/interfaces/checksum-config.d.ts.map +1 -0
  168. package/src/interfaces/checksum-config.js +2 -0
  169. package/src/interfaces/checksum-config.js.map +1 -0
  170. package/src/interfaces/checksum-consts.d.ts +11 -0
  171. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  172. package/src/interfaces/checksum-consts.js +2 -0
  173. package/src/interfaces/checksum-consts.js.map +1 -0
  174. package/src/interfaces/configuration-provenance.d.ts +43 -0
  175. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  176. package/src/interfaces/configuration-provenance.js +3 -0
  177. package/src/interfaces/configuration-provenance.js.map +1 -0
  178. package/src/interfaces/constants.d.ts +70 -0
  179. package/src/interfaces/constants.d.ts.map +1 -0
  180. package/src/interfaces/constants.js +2 -0
  181. package/src/interfaces/constants.js.map +1 -0
  182. package/src/interfaces/ecies-config.d.ts +9 -0
  183. package/src/interfaces/ecies-config.d.ts.map +1 -0
  184. package/src/interfaces/ecies-config.js +2 -0
  185. package/src/interfaces/ecies-config.js.map +1 -0
  186. package/src/interfaces/ecies-consts.d.ts +61 -0
  187. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  188. package/src/interfaces/ecies-consts.js +2 -0
  189. package/src/interfaces/ecies-consts.js.map +1 -0
  190. package/src/interfaces/ecies-file-service.d.ts +7 -0
  191. package/src/interfaces/ecies-file-service.d.ts.map +1 -0
  192. package/src/interfaces/ecies-file-service.js +2 -0
  193. package/src/interfaces/ecies-file-service.js.map +1 -0
  194. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  195. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  196. package/src/interfaces/encrypted-chunk.js +12 -0
  197. package/src/interfaces/encrypted-chunk.js.map +1 -0
  198. package/src/interfaces/encryption-state.d.ts +18 -0
  199. package/src/interfaces/encryption-state.d.ts.map +1 -0
  200. package/src/interfaces/encryption-state.js +2 -0
  201. package/src/interfaces/encryption-state.js.map +1 -0
  202. package/src/interfaces/frontend-member-operational.d.ts +51 -0
  203. package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
  204. package/src/interfaces/frontend-member-operational.js +2 -0
  205. package/src/interfaces/frontend-member-operational.js.map +1 -0
  206. package/src/interfaces/guid.d.ts +78 -0
  207. package/src/interfaces/guid.d.ts.map +1 -0
  208. package/src/interfaces/guid.js +2 -0
  209. package/src/interfaces/guid.js.map +1 -0
  210. package/src/interfaces/id-provider.d.ts +107 -0
  211. package/src/interfaces/id-provider.d.ts.map +1 -0
  212. package/src/interfaces/id-provider.js +52 -0
  213. package/src/interfaces/id-provider.js.map +1 -0
  214. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  215. package/src/interfaces/index.d.ts.map +1 -0
  216. package/src/interfaces/index.js +13 -0
  217. package/src/interfaces/index.js.map +1 -0
  218. package/src/interfaces/invariant.d.ts +46 -0
  219. package/src/interfaces/invariant.d.ts.map +1 -0
  220. package/src/interfaces/invariant.js +18 -0
  221. package/src/interfaces/invariant.js.map +1 -0
  222. package/src/interfaces/library-error.d.ts +23 -0
  223. package/src/interfaces/library-error.d.ts.map +1 -0
  224. package/src/interfaces/library-error.js +2 -0
  225. package/src/interfaces/library-error.js.map +1 -0
  226. package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
  227. package/src/interfaces/member-storage.d.ts.map +1 -0
  228. package/src/interfaces/member-storage.js +2 -0
  229. package/src/interfaces/member-storage.js.map +1 -0
  230. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  231. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  232. package/src/interfaces/member-with-mnemonic.js +2 -0
  233. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  234. package/src/interfaces/member.d.ts +55 -0
  235. package/src/interfaces/member.d.ts.map +1 -0
  236. package/src/interfaces/member.js +2 -0
  237. package/src/interfaces/member.js.map +1 -0
  238. package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
  239. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  240. package/src/interfaces/multi-recipient-chunk.js +11 -0
  241. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  242. package/src/interfaces/pbkdf2-config.d.ts +7 -0
  243. package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
  244. package/src/interfaces/pbkdf2-config.js +2 -0
  245. package/src/interfaces/pbkdf2-config.js.map +1 -0
  246. package/src/interfaces/pbkdf2-consts.d.ts +9 -0
  247. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
  248. package/src/interfaces/pbkdf2-consts.js +2 -0
  249. package/src/interfaces/pbkdf2-consts.js.map +1 -0
  250. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  251. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  252. package/src/interfaces/pbkdf2-result.js +2 -0
  253. package/src/interfaces/pbkdf2-result.js.map +1 -0
  254. package/src/interfaces/stream-config.d.ts +14 -0
  255. package/src/interfaces/stream-config.d.ts.map +1 -0
  256. package/src/interfaces/stream-config.js +8 -0
  257. package/src/interfaces/stream-config.js.map +1 -0
  258. package/src/interfaces/stream-header.d.ts +29 -0
  259. package/src/interfaces/stream-header.d.ts.map +1 -0
  260. package/src/interfaces/stream-header.js +9 -0
  261. package/src/interfaces/stream-header.js.map +1 -0
  262. package/src/interfaces/stream-progress.d.ts +33 -0
  263. package/src/interfaces/stream-progress.d.ts.map +1 -0
  264. package/src/interfaces/stream-progress.js +2 -0
  265. package/src/interfaces/stream-progress.js.map +1 -0
  266. package/src/lib/configuration-provenance-utils.d.ts +11 -0
  267. package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
  268. package/src/lib/configuration-provenance-utils.js +26 -0
  269. package/src/lib/configuration-provenance-utils.js.map +1 -0
  270. package/src/lib/crypto-container.d.ts +25 -0
  271. package/src/lib/crypto-container.d.ts.map +1 -0
  272. package/src/lib/crypto-container.js +46 -0
  273. package/src/lib/crypto-container.js.map +1 -0
  274. package/src/lib/guid.d.ts +344 -0
  275. package/src/lib/guid.d.ts.map +1 -0
  276. package/src/lib/guid.js +914 -0
  277. package/src/lib/guid.js.map +1 -0
  278. package/src/lib/id-providers/custom-provider.d.ts +46 -0
  279. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  280. package/src/lib/id-providers/custom-provider.js +85 -0
  281. package/src/lib/id-providers/custom-provider.js.map +1 -0
  282. package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
  283. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  284. package/src/lib/id-providers/guidv4-provider.js +122 -0
  285. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  286. package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
  287. package/src/lib/id-providers/index.d.ts.map +1 -0
  288. package/src/lib/id-providers/index.js +29 -0
  289. package/src/lib/id-providers/index.js.map +1 -0
  290. package/src/lib/id-providers/objectid-provider.d.ts +43 -0
  291. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  292. package/src/lib/id-providers/objectid-provider.js +104 -0
  293. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  294. package/src/lib/id-providers/uuid-provider.d.ts +52 -0
  295. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  296. package/src/lib/id-providers/uuid-provider.js +110 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/index.d.ts +6 -0
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/{index.ts → index.js} +2 -2
  301. package/src/lib/index.js.map +1 -0
  302. package/src/lib/invariant-validator.d.ts +59 -0
  303. package/src/lib/invariant-validator.d.ts.map +1 -0
  304. package/src/lib/invariant-validator.js +97 -0
  305. package/src/lib/invariant-validator.js.map +1 -0
  306. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  307. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  308. package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/index.d.ts +4 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/{index.ts → index.js} +1 -0
  313. package/src/lib/invariants/index.js.map +1 -0
  314. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  315. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  316. package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
  317. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  318. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  319. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  320. package/src/lib/invariants/recipient-id-consistency.js +31 -0
  321. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  322. package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
  323. package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
  324. package/src/lib/multi-recipient-chunk-utils.js +41 -0
  325. package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
  326. package/src/member.d.ts +92 -0
  327. package/src/member.d.ts.map +1 -0
  328. package/src/member.js +322 -0
  329. package/src/member.js.map +1 -0
  330. package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
  331. package/src/pbkdf2-profiles.d.ts.map +1 -0
  332. package/src/pbkdf2-profiles.js +2 -0
  333. package/src/pbkdf2-profiles.js.map +1 -0
  334. package/src/phone-number.d.ts +6 -0
  335. package/src/phone-number.d.ts.map +1 -0
  336. package/src/phone-number.js +18 -0
  337. package/src/phone-number.js.map +1 -0
  338. package/src/regexes.d.ts +7 -0
  339. package/src/regexes.d.ts.map +1 -0
  340. package/src/regexes.js +7 -0
  341. package/src/regexes.js.map +1 -0
  342. package/src/secure-buffer.d.ts +61 -0
  343. package/src/secure-buffer.d.ts.map +1 -0
  344. package/src/secure-buffer.js +201 -0
  345. package/src/secure-buffer.js.map +1 -0
  346. package/src/secure-string.d.ts +46 -0
  347. package/src/secure-string.d.ts.map +1 -0
  348. package/src/secure-string.js +206 -0
  349. package/src/secure-string.js.map +1 -0
  350. package/src/services/aes-gcm.d.ts +57 -0
  351. package/src/services/aes-gcm.d.ts.map +1 -0
  352. package/src/services/aes-gcm.js +142 -0
  353. package/src/services/aes-gcm.js.map +1 -0
  354. package/src/services/chunk-processor.d.ts +31 -0
  355. package/src/services/chunk-processor.d.ts.map +1 -0
  356. package/src/services/chunk-processor.js +145 -0
  357. package/src/services/chunk-processor.js.map +1 -0
  358. package/src/services/ecies/crypto-core.d.ts +72 -0
  359. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  360. package/src/services/ecies/crypto-core.js +205 -0
  361. package/src/services/ecies/crypto-core.js.map +1 -0
  362. package/src/services/ecies/example.d.ts +25 -0
  363. package/src/services/ecies/example.d.ts.map +1 -0
  364. package/src/services/ecies/example.js +121 -0
  365. package/src/services/ecies/example.js.map +1 -0
  366. package/src/services/ecies/file.d.ts +18 -0
  367. package/src/services/ecies/file.d.ts.map +1 -0
  368. package/src/services/ecies/file.js +106 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/index.d.ts +38 -0
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/{index.ts → index.js} +1 -2
  373. package/src/services/ecies/index.js.map +1 -0
  374. package/src/services/ecies/integration.d.ts +59 -0
  375. package/src/services/ecies/integration.d.ts.map +1 -0
  376. package/src/services/ecies/integration.js +167 -0
  377. package/src/services/ecies/integration.js.map +1 -0
  378. package/src/services/ecies/interfaces.d.ts +54 -0
  379. package/src/services/ecies/interfaces.d.ts.map +1 -0
  380. package/src/services/ecies/interfaces.js +5 -0
  381. package/src/services/ecies/interfaces.js.map +1 -0
  382. package/src/services/ecies/manual-test.d.ts +29 -0
  383. package/src/services/ecies/manual-test.d.ts.map +1 -0
  384. package/src/services/ecies/manual-test.js +163 -0
  385. package/src/services/ecies/manual-test.js.map +1 -0
  386. package/src/services/ecies/multi-recipient.d.ts +56 -0
  387. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  388. package/src/services/ecies/multi-recipient.js +344 -0
  389. package/src/services/ecies/multi-recipient.js.map +1 -0
  390. package/src/services/ecies/service.d.ts +120 -0
  391. package/src/services/ecies/service.d.ts.map +1 -0
  392. package/src/services/ecies/service.js +210 -0
  393. package/src/services/ecies/service.js.map +1 -0
  394. package/src/services/ecies/signature.d.ts +27 -0
  395. package/src/services/ecies/signature.d.ts.map +1 -0
  396. package/src/services/ecies/signature.js +72 -0
  397. package/src/services/ecies/signature.js.map +1 -0
  398. package/src/services/ecies/single-recipient.d.ts +46 -0
  399. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  400. package/src/services/ecies/single-recipient.js +322 -0
  401. package/src/services/ecies/single-recipient.js.map +1 -0
  402. package/src/services/encryption-stream.d.ts +71 -0
  403. package/src/services/encryption-stream.d.ts.map +1 -0
  404. package/src/services/encryption-stream.js +295 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/index.d.ts +11 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/{index.ts → index.js} +1 -0
  409. package/src/services/index.js.map +1 -0
  410. package/src/services/multi-recipient-processor.d.ts +35 -0
  411. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  412. package/src/services/multi-recipient-processor.js +289 -0
  413. package/src/services/multi-recipient-processor.js.map +1 -0
  414. package/src/services/password-login.d.ts +47 -0
  415. package/src/services/password-login.d.ts.map +1 -0
  416. package/src/services/password-login.js +115 -0
  417. package/src/services/password-login.js.map +1 -0
  418. package/src/services/pbkdf2.d.ts +54 -0
  419. package/src/services/pbkdf2.d.ts.map +1 -0
  420. package/src/services/pbkdf2.js +108 -0
  421. package/src/services/pbkdf2.js.map +1 -0
  422. package/src/services/progress-tracker.d.ts +23 -0
  423. package/src/services/progress-tracker.d.ts.map +1 -0
  424. package/src/services/progress-tracker.js +103 -0
  425. package/src/services/progress-tracker.js.map +1 -0
  426. package/src/services/resumable-encryption.d.ts +19 -0
  427. package/src/services/resumable-encryption.d.ts.map +1 -0
  428. package/src/services/resumable-encryption.js +105 -0
  429. package/src/services/resumable-encryption.js.map +1 -0
  430. package/src/services/xor.d.ts +37 -0
  431. package/src/services/xor.d.ts.map +1 -0
  432. package/src/services/xor.js +63 -0
  433. package/src/services/xor.js.map +1 -0
  434. package/src/test-mocks/index.d.ts +2 -0
  435. package/src/test-mocks/index.d.ts.map +1 -0
  436. package/src/test-mocks/index.js +2 -0
  437. package/src/test-mocks/index.js.map +1 -0
  438. package/src/test-mocks/mock-frontend-member.d.ts +85 -0
  439. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
  440. package/src/test-mocks/mock-frontend-member.js +190 -0
  441. package/src/test-mocks/mock-frontend-member.js.map +1 -0
  442. package/src/testing.d.ts +2 -0
  443. package/src/testing.d.ts.map +1 -0
  444. package/src/{testing.ts → testing.js} +1 -0
  445. package/src/testing.js.map +1 -0
  446. package/src/translations/de.d.ts +4 -0
  447. package/src/translations/de.d.ts.map +1 -0
  448. package/src/translations/{de.ts → de.js} +56 -112
  449. package/src/translations/de.js.map +1 -0
  450. package/src/translations/en-US.d.ts +4 -0
  451. package/src/translations/en-US.d.ts.map +1 -0
  452. package/src/translations/{en-US.ts → en-US.js} +58 -116
  453. package/src/translations/en-US.js.map +1 -0
  454. package/src/translations/es.d.ts +4 -0
  455. package/src/translations/es.d.ts.map +1 -0
  456. package/src/translations/{es.ts → es.js} +67 -134
  457. package/src/translations/es.js.map +1 -0
  458. package/src/translations/fr.d.ts +4 -0
  459. package/src/translations/fr.d.ts.map +1 -0
  460. package/src/translations/{fr.ts → fr.js} +64 -129
  461. package/src/translations/fr.js.map +1 -0
  462. package/src/translations/ja.d.ts +4 -0
  463. package/src/translations/ja.d.ts.map +1 -0
  464. package/src/translations/{ja.ts → ja.js} +55 -111
  465. package/src/translations/ja.js.map +1 -0
  466. package/src/translations/uk.d.ts +4 -0
  467. package/src/translations/uk.d.ts.map +1 -0
  468. package/src/translations/{uk.ts → uk.js} +67 -132
  469. package/src/translations/uk.js.map +1 -0
  470. package/src/translations/zh-cn.d.ts +4 -0
  471. package/src/translations/zh-cn.d.ts.map +1 -0
  472. package/src/translations/{zh-cn.ts → zh-cn.js} +29 -60
  473. package/src/translations/zh-cn.js.map +1 -0
  474. package/src/types/deep-partial.d.ts +4 -0
  475. package/src/types/deep-partial.d.ts.map +1 -0
  476. package/src/types/deep-partial.js +2 -0
  477. package/src/types/deep-partial.js.map +1 -0
  478. package/src/{types.ts → types.d.ts} +7 -15
  479. package/src/types.d.ts.map +1 -0
  480. package/src/types.js +2 -0
  481. package/src/types.js.map +1 -0
  482. package/src/utils/encryption-type-utils.d.ts +29 -0
  483. package/src/utils/encryption-type-utils.d.ts.map +1 -0
  484. package/src/utils/encryption-type-utils.js +61 -0
  485. package/src/utils/encryption-type-utils.js.map +1 -0
  486. package/src/utils.d.ts +68 -0
  487. package/src/utils.d.ts.map +1 -0
  488. package/src/utils.js +273 -0
  489. package/src/utils.js.map +1 -0
  490. package/LICENSE +0 -21
  491. package/src/builders/ecies-builder.ts +0 -39
  492. package/src/builders/member-builder.ts +0 -155
  493. package/src/constants.ts +0 -609
  494. package/src/core/errors/crypto-error.ts +0 -78
  495. package/src/core/types/result.ts +0 -19
  496. package/src/email-string.ts +0 -82
  497. package/src/enumerations/disposed-error-type.ts +0 -11
  498. package/src/enumerations/ecies-cipher-suite.ts +0 -4
  499. package/src/enumerations/ecies-encryption-type.ts +0 -41
  500. package/src/enumerations/ecies-error-type.ts +0 -43
  501. package/src/enumerations/ecies-string-key.ts +0 -205
  502. package/src/enumerations/ecies-version.ts +0 -3
  503. package/src/enumerations/guid-brand-type.ts +0 -26
  504. package/src/enumerations/guid-error-type.ts +0 -6
  505. package/src/enumerations/id-provider-error-type.ts +0 -50
  506. package/src/enumerations/invalid-email-type.ts +0 -5
  507. package/src/enumerations/length-encoding-type.ts +0 -6
  508. package/src/enumerations/length-error-type.ts +0 -5
  509. package/src/enumerations/member-error-type.ts +0 -106
  510. package/src/enumerations/password-login-error-type.ts +0 -4
  511. package/src/enumerations/pbkdf2-error-type.ts +0 -5
  512. package/src/enumerations/pbkdf2-profile.ts +0 -5
  513. package/src/enumerations/secure-storage-error-type.ts +0 -5
  514. package/src/errors/disposed.ts +0 -36
  515. package/src/errors/ecies.ts +0 -153
  516. package/src/errors/guid.ts +0 -130
  517. package/src/errors/id-provider.ts +0 -40
  518. package/src/errors/invalid-email.ts +0 -23
  519. package/src/errors/length.ts +0 -19
  520. package/src/errors/member.ts +0 -20
  521. package/src/errors/pbkdf2.ts +0 -20
  522. package/src/errors/secure-storage.ts +0 -17
  523. package/src/errors/simple-ecies.ts +0 -21
  524. package/src/errors/simple-test-error.ts +0 -6
  525. package/src/i18n-setup.ts +0 -130
  526. package/src/interfaces/checksum-config.ts +0 -4
  527. package/src/interfaces/checksum-consts.ts +0 -13
  528. package/src/interfaces/configuration-provenance.ts +0 -54
  529. package/src/interfaces/constants.ts +0 -75
  530. package/src/interfaces/ecies-config.ts +0 -8
  531. package/src/interfaces/ecies-consts.ts +0 -74
  532. package/src/interfaces/ecies-file-service.ts +0 -6
  533. package/src/interfaces/encrypted-chunk.ts +0 -64
  534. package/src/interfaces/encryption-state.ts +0 -19
  535. package/src/interfaces/frontend-member-operational.ts +0 -77
  536. package/src/interfaces/guid.ts +0 -86
  537. package/src/interfaces/id-provider.ts +0 -152
  538. package/src/interfaces/invariant.ts +0 -60
  539. package/src/interfaces/library-error.ts +0 -23
  540. package/src/interfaces/member.ts +0 -84
  541. package/src/interfaces/multi-recipient-chunk.ts +0 -61
  542. package/src/interfaces/pbkdf2-config.ts +0 -6
  543. package/src/interfaces/pbkdf2-consts.ts +0 -10
  544. package/src/interfaces/pbkdf2-result.ts +0 -5
  545. package/src/interfaces/stream-config.ts +0 -17
  546. package/src/interfaces/stream-header.ts +0 -34
  547. package/src/interfaces/stream-progress.ts +0 -31
  548. package/src/lib/configuration-provenance-utils.ts +0 -29
  549. package/src/lib/crypto-container.ts +0 -64
  550. package/src/lib/guid.ts +0 -1097
  551. package/src/lib/id-providers/custom-provider.ts +0 -109
  552. package/src/lib/id-providers/guidv4-provider.ts +0 -141
  553. package/src/lib/id-providers/objectid-provider.ts +0 -125
  554. package/src/lib/id-providers/uuid-provider.ts +0 -133
  555. package/src/lib/invariant-validator.ts +0 -133
  556. package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
  557. package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
  558. package/src/lib/invariants/recipient-id-consistency.ts +0 -46
  559. package/src/lib/multi-recipient-chunk-utils.ts +0 -63
  560. package/src/member.ts +0 -495
  561. package/src/phone-number.ts +0 -18
  562. package/src/regexes.ts +0 -10
  563. package/src/secure-buffer.ts +0 -226
  564. package/src/secure-string.ts +0 -244
  565. package/src/services/aes-gcm.ts +0 -220
  566. package/src/services/chunk-processor.ts +0 -188
  567. package/src/services/ecies/README.md +0 -147
  568. package/src/services/ecies/crypto-core.ts +0 -292
  569. package/src/services/ecies/example.ts +0 -185
  570. package/src/services/ecies/file.ts +0 -167
  571. package/src/services/ecies/integration.ts +0 -241
  572. package/src/services/ecies/interfaces.ts +0 -62
  573. package/src/services/ecies/manual-test.ts +0 -219
  574. package/src/services/ecies/multi-recipient.ts +0 -545
  575. package/src/services/ecies/service.ts +0 -370
  576. package/src/services/ecies/signature.ts +0 -93
  577. package/src/services/ecies/single-recipient.ts +0 -476
  578. package/src/services/encryption-stream.ts +0 -435
  579. package/src/services/multi-recipient-processor.ts +0 -377
  580. package/src/services/password-login.ts +0 -226
  581. package/src/services/pbkdf2.ts +0 -169
  582. package/src/services/progress-tracker.ts +0 -128
  583. package/src/services/resumable-encryption.ts +0 -135
  584. package/src/services/xor.ts +0 -65
  585. package/src/test-mocks/index.ts +0 -1
  586. package/src/test-mocks/mock-frontend-member.ts +0 -276
  587. package/src/types/deep-partial.ts +0 -11
  588. package/src/utils/encryption-type-utils.ts +0 -76
  589. package/src/utils.ts +0 -329
@@ -1,276 +0,0 @@
1
- import {
2
- EmailString,
3
- MemberType,
4
- SecureBuffer,
5
- SecureString,
6
- } from '@digitaldefiance/ecies-lib';
7
- import { Wallet } from '@ethereumjs/wallet';
8
- import { faker } from '@faker-js/faker';
9
-
10
- import { ObjectId } from 'bson';
11
- import type { IFrontendMemberOperational } from '../interfaces/frontend-member-operational';
12
- import { SignatureUint8Array } from '../types';
13
-
14
- const hexToUint8Array = (hex: string): Uint8Array => {
15
- const clean = hex.replace(/^0x/, '');
16
- const bytes = new Uint8Array(clean.length / 2);
17
- for (let i = 0; i < clean.length; i += 2) {
18
- bytes[i / 2] = parseInt(clean.slice(i, i + 2), 16);
19
- }
20
- return bytes;
21
- };
22
-
23
- const createMockWallet = (): Wallet =>
24
- ({
25
- getPrivateKey: () =>
26
- hexToUint8Array(faker.string.hexadecimal({ length: 64 })),
27
- getPublicKey: () =>
28
- hexToUint8Array(faker.string.hexadecimal({ length: 128 })),
29
- getAddress: () => hexToUint8Array(faker.string.hexadecimal({ length: 40 })),
30
- sign: () => hexToUint8Array(faker.string.hexadecimal({ length: 128 })),
31
- } as any);
32
-
33
- export class MockFrontendMember
34
- implements IFrontendMemberOperational<ObjectId>
35
- {
36
- private _id: ObjectId;
37
- private _type: MemberType;
38
- private _name: string;
39
- private _email: EmailString;
40
- private _publicKey: Uint8Array;
41
- private _creatorId: ObjectId;
42
- private _dateCreated: Date;
43
- private _dateUpdated: Date;
44
- private _privateKey?: SecureBuffer;
45
- private _wallet?: Wallet;
46
- private _hasPrivateKey: boolean;
47
-
48
- constructor(
49
- data: Partial<{
50
- id: ObjectId;
51
- type: MemberType;
52
- name: string;
53
- email: EmailString;
54
- publicKey: Uint8Array;
55
- privateKey: SecureBuffer;
56
- wallet: Wallet;
57
- creatorId: ObjectId;
58
- dateCreated: Date;
59
- dateUpdated: Date;
60
- hasPrivateKey: boolean;
61
- }> = {},
62
- ) {
63
- this._id = data.id || new ObjectId();
64
- this._type = data.type || faker.helpers.enumValue(MemberType);
65
- this._name = data.name || faker.person.fullName();
66
- this._email = data.email || new EmailString(faker.internet.email());
67
- this._publicKey =
68
- data.publicKey ||
69
- hexToUint8Array(faker.string.hexadecimal({ length: 130 }));
70
- this._creatorId = data.creatorId || this._id;
71
- this._dateCreated = data.dateCreated || faker.date.past();
72
- this._dateUpdated =
73
- data.dateUpdated ||
74
- faker.date.between({ from: this._dateCreated, to: new Date() });
75
- this._privateKey = data.privateKey;
76
- this._wallet =
77
- data.wallet ||
78
- (data.hasPrivateKey !== false ? createMockWallet() : undefined);
79
- this._hasPrivateKey = data.hasPrivateKey ?? !!this._privateKey;
80
- }
81
-
82
- get id(): ObjectId {
83
- return this._id;
84
- }
85
- get type(): MemberType {
86
- return this._type;
87
- }
88
- get name(): string {
89
- return this._name;
90
- }
91
- get email(): EmailString {
92
- return this._email;
93
- }
94
- get publicKey(): Uint8Array {
95
- return this._publicKey;
96
- }
97
- get creatorId(): ObjectId {
98
- return this._creatorId;
99
- }
100
- get dateCreated(): Date {
101
- return this._dateCreated;
102
- }
103
- get dateUpdated(): Date {
104
- return this._dateUpdated;
105
- }
106
- get privateKey(): SecureBuffer | undefined {
107
- return this._privateKey;
108
- }
109
- get wallet(): Wallet | undefined {
110
- return this._wallet;
111
- }
112
- get hasPrivateKey(): boolean {
113
- return this._hasPrivateKey;
114
- }
115
-
116
- unloadPrivateKey(): void {}
117
-
118
- unloadWallet(): void {}
119
-
120
- unloadWalletAndPrivateKey(): void {}
121
-
122
- loadWallet(mnemonic: SecureString): void {}
123
-
124
- loadPrivateKey(privateKey: SecureBuffer): void {}
125
-
126
- sign(data: Uint8Array): SignatureUint8Array {
127
- return hexToUint8Array(
128
- faker.string.hexadecimal({ length: 128 }),
129
- ) as SignatureUint8Array;
130
- }
131
-
132
- verify(signature: SignatureUint8Array, data: Uint8Array): boolean {
133
- return true;
134
- }
135
-
136
- async encryptData(data: string | Uint8Array): Promise<Uint8Array> {
137
- return hexToUint8Array(faker.string.hexadecimal({ length: 256 }));
138
- }
139
-
140
- async decryptData(encryptedData: Uint8Array): Promise<Uint8Array> {
141
- const text = faker.lorem.paragraph();
142
- return new TextEncoder().encode(text);
143
- }
144
-
145
- async *encryptDataStream(
146
- source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
147
- options?: {
148
- recipientPublicKey?: Uint8Array;
149
- onProgress?: (progress: {
150
- bytesProcessed: number;
151
- chunksProcessed: number;
152
- }) => void;
153
- signal?: AbortSignal;
154
- },
155
- ): AsyncGenerator<
156
- import('../interfaces/encrypted-chunk').IEncryptedChunk,
157
- void,
158
- unknown
159
- > {
160
- // Mock implementation
161
- const chunks = [];
162
- if ('getReader' in source) {
163
- const reader = (source as ReadableStream<Uint8Array>).getReader();
164
- try {
165
- while (true) {
166
- const { done, value } = await reader.read();
167
- if (done) break;
168
- chunks.push(value);
169
- }
170
- } finally {
171
- reader.releaseLock();
172
- }
173
- } else {
174
- for await (const chunk of source as AsyncIterable<Uint8Array>) {
175
- chunks.push(chunk);
176
- }
177
- }
178
- let index = 0;
179
- for (const chunk of chunks) {
180
- yield {
181
- index: index++,
182
- data: hexToUint8Array(
183
- faker.string.hexadecimal({ length: chunk.length * 2 }),
184
- ),
185
- isLast: index === chunks.length,
186
- metadata: {
187
- originalSize: chunk.length,
188
- encryptedSize: chunk.length * 2,
189
- timestamp: Date.now(),
190
- },
191
- };
192
- }
193
- }
194
-
195
- async *decryptDataStream(
196
- source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
197
- options?: {
198
- onProgress?: (progress: {
199
- bytesProcessed: number;
200
- chunksProcessed: number;
201
- }) => void;
202
- signal?: AbortSignal;
203
- },
204
- ): AsyncGenerator<Uint8Array, void, unknown> {
205
- // Mock implementation
206
- if ('getReader' in source) {
207
- const reader = (source as ReadableStream<Uint8Array>).getReader();
208
- try {
209
- while (true) {
210
- const { done, value } = await reader.read();
211
- if (done) break;
212
- yield value;
213
- }
214
- } finally {
215
- reader.releaseLock();
216
- }
217
- } else {
218
- for await (const chunk of source as AsyncIterable<Uint8Array>) {
219
- yield chunk;
220
- }
221
- }
222
- }
223
-
224
- toJson(): string {
225
- return JSON.stringify({
226
- id: this._id.toString(),
227
- type: this._type,
228
- name: this._name,
229
- email: this._email.toString(),
230
- publicKey: btoa(String.fromCharCode(...this._publicKey)),
231
- creatorId: this._creatorId.toString(),
232
- dateCreated: this._dateCreated.toISOString(),
233
- dateUpdated: this._dateUpdated.toISOString(),
234
- });
235
- }
236
-
237
- dispose(): void {}
238
-
239
- static create(
240
- overrides: Partial<{
241
- id: ObjectId;
242
- type: MemberType;
243
- name: string;
244
- email: EmailString;
245
- publicKey: Uint8Array;
246
- privateKey: SecureBuffer;
247
- wallet: Wallet;
248
- creatorId: ObjectId;
249
- dateCreated: Date;
250
- dateUpdated: Date;
251
- hasPrivateKey: boolean;
252
- }> = {},
253
- ): MockFrontendMember {
254
- return new MockFrontendMember(overrides);
255
- }
256
-
257
- static createMultiple(count: number): MockFrontendMember[] {
258
- return Array.from({ length: count }, () => this.create());
259
- }
260
-
261
- static createWithPrivateKey(): MockFrontendMember {
262
- return new MockFrontendMember({
263
- privateKey: new SecureBuffer(
264
- hexToUint8Array(faker.string.hexadecimal({ length: 64 })),
265
- ),
266
- hasPrivateKey: true,
267
- });
268
- }
269
-
270
- static createWithoutPrivateKey(): MockFrontendMember {
271
- return new MockFrontendMember({
272
- privateKey: undefined,
273
- hasPrivateKey: false,
274
- });
275
- }
276
- }
@@ -1,11 +0,0 @@
1
- export type DeepPartial<T> = {
2
- [P in keyof T]?: T[P] extends (...args: any[]) => any
3
- ? T[P]
4
- : T[P] extends ReadonlyArray<infer U>
5
- ? ReadonlyArray<DeepPartial<U>>
6
- : T[P] extends Array<infer U>
7
- ? Array<DeepPartial<U>>
8
- : T[P] extends object
9
- ? DeepPartial<T[P]>
10
- : T[P];
11
- };
@@ -1,76 +0,0 @@
1
- import {
2
- EciesEncryptionType,
3
- EciesEncryptionTypeEnum,
4
- EciesEncryptionTypeEnumTypeMap,
5
- EciesEncryptionTypeStringMap,
6
- } from '../enumerations/ecies-encryption-type';
7
- import { ECIESErrorTypeEnum } from '../enumerations/ecies-error-type';
8
- import { ECIESError } from '../errors/ecies';
9
-
10
- /**
11
- * Converts an encryption type (string or enum) to its string representation
12
- * @param type The encryption type to convert
13
- * @returns The string representation of the encryption type
14
- * @throws ECIESError if the type is invalid
15
- */
16
- export function encryptionTypeToString(
17
- type: EciesEncryptionType | EciesEncryptionTypeEnum,
18
- ): string {
19
- // if enum
20
- let resultType: EciesEncryptionType;
21
- if (typeof type === 'number') {
22
- resultType = EciesEncryptionTypeEnumTypeMap[type];
23
- if (resultType === undefined) {
24
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
25
- }
26
- } else {
27
- resultType = type;
28
- }
29
- const result = EciesEncryptionTypeStringMap[resultType];
30
- if (result === undefined) {
31
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
32
- }
33
- return result;
34
- }
35
-
36
- /**
37
- * Converts an encryption type enum to its type representation
38
- * @param type The encryption type enum to convert
39
- * @returns The type representation of the encryption type
40
- * @throws ECIESError if the type is invalid
41
- */
42
- export function encryptionTypeEnumToType(
43
- type: EciesEncryptionTypeEnum,
44
- ): EciesEncryptionType {
45
- const result = EciesEncryptionTypeEnumTypeMap[type];
46
- if (result === undefined) {
47
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
48
- }
49
- return result;
50
- }
51
-
52
- /**
53
- * Validates that a value is a valid EciesEncryptionTypeEnum
54
- * @param type The value to validate
55
- * @returns true if the value is a valid EciesEncryptionTypeEnum, false otherwise
56
- */
57
- export function validateEciesEncryptionTypeEnum(
58
- type: EciesEncryptionTypeEnum,
59
- ): boolean {
60
- return Object.values(EciesEncryptionTypeEnum).includes(type);
61
- }
62
-
63
- /**
64
- * Ensures that a value is a valid EciesEncryptionTypeEnum
65
- * @param type The value to validate
66
- * @returns The validated EciesEncryptionTypeEnum
67
- * @throws ECIESError if the type is invalid
68
- */
69
- export function ensureEciesEncryptionTypeEnum(
70
- type: EciesEncryptionTypeEnum,
71
- ): EciesEncryptionTypeEnum {
72
- if (!validateEciesEncryptionTypeEnum(type)) {
73
- throw new ECIESError(ECIESErrorTypeEnum.InvalidEncryptionType);
74
- }
75
- return type;
76
- }
package/src/utils.ts DELETED
@@ -1,329 +0,0 @@
1
- import { EciesStringKey } from './enumerations/ecies-string-key';
2
- import { LengthEncodingType } from './enumerations/length-encoding-type';
3
- import { LengthErrorType } from './enumerations/length-error-type';
4
- import { LengthError } from './errors';
5
- import { EciesComponentId, getEciesI18nEngine } from './i18n-setup';
6
-
7
- /**
8
- * Encodes the length of the data in the buffer
9
- * @param buffer The buffer to encode
10
- * @returns The encoded buffer
11
- */
12
- export function lengthEncodeData(buffer: Uint8Array): Uint8Array {
13
- const lengthType: LengthEncodingType = getLengthEncodingTypeForLength(
14
- buffer.length,
15
- );
16
- const lengthTypeSize: number = getLengthForLengthType(lengthType);
17
- const result = new Uint8Array(1 + lengthTypeSize + buffer.length);
18
- const view = new DataView(result.buffer);
19
-
20
- view.setUint8(0, lengthType);
21
- switch (lengthType) {
22
- case LengthEncodingType.UInt8:
23
- view.setUint8(1, buffer.length);
24
- break;
25
- case LengthEncodingType.UInt16:
26
- view.setUint16(1, buffer.length, false); // big-endian
27
- break;
28
- case LengthEncodingType.UInt32:
29
- view.setUint32(1, buffer.length, false); // big-endian
30
- break;
31
- case LengthEncodingType.UInt64:
32
- view.setBigUint64(1, BigInt(buffer.length), false); // big-endian
33
- break;
34
- }
35
- result.set(buffer, 1 + lengthTypeSize);
36
- return result;
37
- }
38
-
39
- export function decodeLengthEncodedData(buffer: Uint8Array): {
40
- data: Uint8Array;
41
- totalLength: number;
42
- } {
43
- if (buffer.length < 1) {
44
- throw new LengthError(LengthErrorType.LengthIsTooShort);
45
- }
46
-
47
- const view = new DataView(
48
- buffer.buffer,
49
- buffer.byteOffset,
50
- buffer.byteLength,
51
- );
52
- const lengthType: LengthEncodingType = getLengthEncodingTypeFromValue(
53
- view.getUint8(0),
54
- );
55
- const lengthTypeSize: number = getLengthForLengthType(lengthType);
56
-
57
- if (buffer.length < 1 + lengthTypeSize) {
58
- throw new LengthError(LengthErrorType.LengthIsTooShort);
59
- }
60
-
61
- let length: number | BigInt;
62
- switch (lengthType) {
63
- case LengthEncodingType.UInt8:
64
- length = view.getUint8(1);
65
- break;
66
- case LengthEncodingType.UInt16:
67
- length = view.getUint16(1, false); // big-endian
68
- break;
69
- case LengthEncodingType.UInt32:
70
- length = view.getUint32(1, false); // big-endian
71
- break;
72
- case LengthEncodingType.UInt64:
73
- length = view.getBigUint64(1, false); // big-endian
74
- if (length.valueOf() > BigInt(Number.MAX_SAFE_INTEGER)) {
75
- throw new LengthError(LengthErrorType.LengthIsTooLong);
76
- }
77
- break;
78
- default:
79
- throw new LengthError(LengthErrorType.LengthIsInvalidType);
80
- }
81
-
82
- const totalLength = 1 + lengthTypeSize + Number(length);
83
- if (totalLength > buffer.length) {
84
- throw new LengthError(LengthErrorType.LengthIsTooShort);
85
- }
86
- return {
87
- data: buffer.subarray(1 + lengthTypeSize, totalLength),
88
- totalLength,
89
- };
90
- }
91
-
92
- export function uint8ArrayToBase64(uint8Array: Uint8Array): string {
93
- let binaryString = '';
94
- for (let i = 0; i < uint8Array.length; i++) {
95
- binaryString += String.fromCharCode(uint8Array[i]);
96
- }
97
- return btoa(binaryString);
98
- }
99
-
100
- export function base64ToUint8Array(base64String: string): Uint8Array {
101
- const binaryString = atob(base64String);
102
- const len = binaryString.length;
103
- const bytes = new Uint8Array(len);
104
- for (let i = 0; i < len; i++) {
105
- bytes[i] = binaryString.charCodeAt(i);
106
- }
107
- return bytes;
108
- }
109
-
110
- export function uint8ArrayToHex(uint8Array: Uint8Array): string {
111
- return Array.from(uint8Array)
112
- .map((byte) => byte.toString(16).padStart(2, '0'))
113
- .join('');
114
- }
115
-
116
- export function hexToUint8Array(hexString: string): Uint8Array {
117
- const engine = getEciesI18nEngine();
118
- if (!hexString || typeof hexString !== 'string') {
119
- throw new Error(
120
- engine.translate(
121
- EciesComponentId,
122
- EciesStringKey.Error_Utils_InvalidHexString,
123
- ),
124
- );
125
- }
126
- if (hexString.length % 2 !== 0) {
127
- throw new Error(
128
- engine.translate(
129
- EciesComponentId,
130
- EciesStringKey.Error_Utils_HexStringMustHaveEvenLength,
131
- ),
132
- );
133
- }
134
- if (!/^[0-9a-fA-F]*$/.test(hexString)) {
135
- throw new Error(
136
- engine.translate(
137
- EciesComponentId,
138
- EciesStringKey.Error_Utils_HexStringContainsInvalidCharacters,
139
- ),
140
- );
141
- }
142
- const len = hexString.length;
143
- const bytes = new Uint8Array(len / 2);
144
- for (let i = 0; i < len; i += 2) {
145
- bytes[i / 2] = parseInt(hexString.substring(i, i + 2), 16);
146
- }
147
- return bytes;
148
- }
149
-
150
- /**
151
- * Utility functions for browser ECIES implementation
152
- */
153
-
154
- /**
155
- * CRC16-CCITT implementation for data integrity checking
156
- * Uses CRC16-CCITT-FALSE variant (init 0xFFFF)
157
- */
158
- export function crc16(data: Uint8Array): Uint8Array {
159
- let crc = 0xffff; // Initial value for CRC16-CCITT-FALSE
160
- const polynomial = 0x1021; // CRC16-CCITT polynomial
161
-
162
- for (let i = 0; i < data.length; i++) {
163
- crc ^= data[i] << 8;
164
- for (let j = 0; j < 8; j++) {
165
- if (crc & 0x8000) {
166
- crc = (crc << 1) ^ polynomial;
167
- } else {
168
- crc = crc << 1;
169
- }
170
- crc &= 0xffff; // Keep it 16-bit
171
- }
172
- }
173
-
174
- const result = new Uint8Array(2);
175
- result[0] = (crc >>> 8) & 0xff; // Big-endian
176
- result[1] = crc & 0xff;
177
- return result;
178
- }
179
-
180
- /**
181
- * Convert string to Uint8Array (UTF-8 encoding)
182
- */
183
- export function stringToUint8Array(str: string): Uint8Array {
184
- return new TextEncoder().encode(str);
185
- }
186
-
187
- /**
188
- * Convert Uint8Array to string (UTF-8 decoding)
189
- */
190
- export function uint8ArrayToString(array: Uint8Array): string {
191
- return new TextDecoder().decode(array);
192
- }
193
-
194
- /**
195
- * Secure random bytes generation
196
- */
197
- export function randomBytes(length: number): Uint8Array {
198
- return crypto.getRandomValues(new Uint8Array(length));
199
- }
200
-
201
- /**
202
- * Compare two Uint8Arrays for equality
203
- */
204
- export function arraysEqual(a: Uint8Array, b: Uint8Array): boolean {
205
- if (a.length !== b.length) return false;
206
- let result = 0;
207
- for (let i = 0; i < a.length; i++) {
208
- result |= a[i] ^ b[i];
209
- }
210
- return result === 0;
211
- }
212
-
213
- /**
214
- * Concatenate multiple Uint8Arrays
215
- */
216
- export function concatUint8Arrays(...arrays: Uint8Array[]): Uint8Array {
217
- const totalLength = arrays.reduce((sum, arr) => sum + arr.length, 0);
218
- const result = new Uint8Array(totalLength);
219
- let offset = 0;
220
- for (const array of arrays) {
221
- result.set(array, offset);
222
- offset += array.length;
223
- }
224
- return result;
225
- }
226
-
227
- /**
228
- * Get the length encoding type for a given length
229
- * @param length The length to evaluate
230
- * @returns The corresponding LengthEncodingType
231
- */
232
- export function getLengthEncodingTypeForLength<
233
- TStringKey extends string,
234
- TLanguage extends string,
235
- >(length: number | BigInt): LengthEncodingType {
236
- if (typeof length === 'number') {
237
- if (length < 256) {
238
- return LengthEncodingType.UInt8;
239
- } else if (length < 65536) {
240
- return LengthEncodingType.UInt16;
241
- } else if (length < 4294967296) {
242
- return LengthEncodingType.UInt32;
243
- } else if (length < Number.MAX_SAFE_INTEGER) {
244
- return LengthEncodingType.UInt64;
245
- } else {
246
- throw new LengthError(LengthErrorType.LengthIsTooLong);
247
- }
248
- } else if (typeof length === 'bigint') {
249
- if (length < 256n) {
250
- return LengthEncodingType.UInt8;
251
- } else if (length < 65536n) {
252
- return LengthEncodingType.UInt16;
253
- } else if (length < 4294967296n) {
254
- return LengthEncodingType.UInt32;
255
- } else if (length < 18446744073709551616n) {
256
- return LengthEncodingType.UInt64;
257
- } else {
258
- throw new LengthError(LengthErrorType.LengthIsTooLong);
259
- }
260
- } else {
261
- throw new LengthError(LengthErrorType.LengthIsInvalidType);
262
- }
263
- }
264
-
265
- /**
266
- * Get the length encoding type for a given value
267
- * @param value The value to evaluate
268
- * @returns The corresponding LengthEncodingType
269
- */
270
- export function getLengthEncodingTypeFromValue<
271
- TStringKey extends string,
272
- TLanguage extends string,
273
- >(value: number): LengthEncodingType {
274
- for (const length of Object.values(LengthEncodingType)) {
275
- if (length === value) {
276
- return length;
277
- }
278
- }
279
- throw new LengthError(LengthErrorType.LengthIsInvalidType);
280
- }
281
-
282
- /**
283
- * Safely converts BigInt to Number, throwing if value exceeds safe integer range
284
- * @param value The BigInt value to convert
285
- * @returns The number value
286
- */
287
- export function safeBigIntToNumber(value: bigint): number {
288
- const engine = getEciesI18nEngine();
289
- if (value > BigInt(Number.MAX_SAFE_INTEGER)) {
290
- throw new Error(
291
- engine.translate(
292
- EciesComponentId,
293
- EciesStringKey.Error_Utils_ValueExceedsSafeIntegerRange,
294
- ),
295
- );
296
- }
297
- if (value < BigInt(Number.MIN_SAFE_INTEGER)) {
298
- throw new Error(
299
- engine.translate(
300
- EciesComponentId,
301
- EciesStringKey.Error_Utils_ValueBelowSafeIntegerRange,
302
- ),
303
- );
304
- }
305
- return Number(value);
306
- }
307
-
308
- /**
309
- * Get the length in bytes for a given LengthEncodingType
310
- * @param type The LengthEncodingType to evaluate
311
- * @returns The length in bytes
312
- */
313
- export function getLengthForLengthType<
314
- TStringKey extends string,
315
- TLanguage extends string,
316
- >(type: LengthEncodingType): number {
317
- switch (type) {
318
- case LengthEncodingType.UInt8:
319
- return 1;
320
- case LengthEncodingType.UInt16:
321
- return 2;
322
- case LengthEncodingType.UInt32:
323
- return 4;
324
- case LengthEncodingType.UInt64:
325
- return 8;
326
- default:
327
- throw new LengthError(LengthErrorType.LengthIsInvalidType);
328
- }
329
- }