@digitaldefiance/ecies-lib 4.4.13 → 4.4.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/package.json +5 -4
  2. package/src/builders/ecies-builder.d.ts +18 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +34 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -1
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +9 -0
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +51 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +101 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +60 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +457 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +34 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +60 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/{index.ts → index.d.ts} +1 -1
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/index.js +9 -0
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +16 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +16 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/email-string.d.ts +42 -0
  31. package/src/email-string.d.ts.map +1 -0
  32. package/src/email-string.js +72 -0
  33. package/src/email-string.js.map +1 -0
  34. package/src/enumerations/disposed-error-type.d.ts +12 -0
  35. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  36. package/src/enumerations/disposed-error-type.js +16 -0
  37. package/src/enumerations/disposed-error-type.js.map +1 -0
  38. package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
  39. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
  40. package/src/enumerations/ecies-cipher-suite.js +9 -0
  41. package/src/enumerations/ecies-cipher-suite.js.map +1 -0
  42. package/src/enumerations/ecies-encryption-type.d.ts +11 -0
  43. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
  44. package/src/enumerations/ecies-encryption-type.js +30 -0
  45. package/src/enumerations/ecies-encryption-type.js.map +1 -0
  46. package/src/enumerations/ecies-error-type.d.ts +44 -0
  47. package/src/enumerations/ecies-error-type.d.ts.map +1 -0
  48. package/src/enumerations/ecies-error-type.js +48 -0
  49. package/src/enumerations/ecies-error-type.js.map +1 -0
  50. package/src/enumerations/ecies-string-key.d.ts +192 -0
  51. package/src/enumerations/ecies-string-key.d.ts.map +1 -0
  52. package/src/enumerations/ecies-string-key.js +202 -0
  53. package/src/enumerations/ecies-string-key.js.map +1 -0
  54. package/src/enumerations/ecies-version.d.ts +4 -0
  55. package/src/enumerations/ecies-version.d.ts.map +1 -0
  56. package/src/enumerations/ecies-version.js +8 -0
  57. package/src/enumerations/ecies-version.js.map +1 -0
  58. package/src/enumerations/guid-brand-type.d.ts +27 -0
  59. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  60. package/src/enumerations/guid-brand-type.js +31 -0
  61. package/src/enumerations/guid-brand-type.js.map +1 -0
  62. package/src/enumerations/guid-error-type.d.ts +7 -0
  63. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  64. package/src/enumerations/guid-error-type.js +11 -0
  65. package/src/enumerations/guid-error-type.js.map +1 -0
  66. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  67. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  68. package/src/enumerations/id-provider-error-type.js +47 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/index.js +21 -0
  73. package/src/enumerations/index.js.map +1 -0
  74. package/src/enumerations/invalid-email-type.d.ts +6 -0
  75. package/src/enumerations/invalid-email-type.d.ts.map +1 -0
  76. package/src/enumerations/invalid-email-type.js +10 -0
  77. package/src/enumerations/invalid-email-type.js.map +1 -0
  78. package/src/enumerations/length-encoding-type.d.ts +7 -0
  79. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  80. package/src/enumerations/length-encoding-type.js +11 -0
  81. package/src/enumerations/length-encoding-type.js.map +1 -0
  82. package/src/enumerations/length-error-type.d.ts +6 -0
  83. package/src/enumerations/length-error-type.d.ts.map +1 -0
  84. package/src/enumerations/length-error-type.js +10 -0
  85. package/src/enumerations/length-error-type.js.map +1 -0
  86. package/src/enumerations/member-error-type.d.ts +87 -0
  87. package/src/enumerations/member-error-type.d.ts.map +1 -0
  88. package/src/enumerations/member-error-type.js +91 -0
  89. package/src/enumerations/member-error-type.js.map +1 -0
  90. package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
  91. package/src/enumerations/member-type.d.ts.map +1 -0
  92. package/src/enumerations/member-type.js +19 -0
  93. package/src/enumerations/member-type.js.map +1 -0
  94. package/src/enumerations/password-login-error-type.d.ts +5 -0
  95. package/src/enumerations/password-login-error-type.d.ts.map +1 -0
  96. package/src/enumerations/password-login-error-type.js +9 -0
  97. package/src/enumerations/password-login-error-type.js.map +1 -0
  98. package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
  99. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  100. package/src/enumerations/pbkdf2-error-type.js +10 -0
  101. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  102. package/src/enumerations/pbkdf2-profile.d.ts +6 -0
  103. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  104. package/src/enumerations/pbkdf2-profile.js +10 -0
  105. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  106. package/src/enumerations/secure-storage-error-type.d.ts +6 -0
  107. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
  108. package/src/enumerations/secure-storage-error-type.js +10 -0
  109. package/src/enumerations/secure-storage-error-type.js.map +1 -0
  110. package/src/errors/disposed.d.ts +22 -0
  111. package/src/errors/disposed.d.ts.map +1 -0
  112. package/src/errors/disposed.js +32 -0
  113. package/src/errors/disposed.js.map +1 -0
  114. package/src/errors/ecies.d.ts +52 -0
  115. package/src/errors/ecies.d.ts.map +1 -0
  116. package/src/errors/ecies.js +82 -0
  117. package/src/errors/ecies.js.map +1 -0
  118. package/src/errors/guid.d.ts +49 -0
  119. package/src/errors/guid.d.ts.map +1 -0
  120. package/src/errors/guid.js +100 -0
  121. package/src/errors/guid.js.map +1 -0
  122. package/src/errors/id-provider.d.ts +23 -0
  123. package/src/errors/id-provider.d.ts.map +1 -0
  124. package/src/errors/id-provider.js +33 -0
  125. package/src/errors/id-provider.js.map +1 -0
  126. package/src/errors/{index.ts → index.d.ts} +1 -0
  127. package/src/errors/index.d.ts.map +1 -0
  128. package/src/errors/index.js +13 -0
  129. package/src/errors/index.js.map +1 -0
  130. package/src/errors/invalid-email.d.ts +8 -0
  131. package/src/errors/invalid-email.d.ts.map +1 -0
  132. package/src/errors/invalid-email.js +19 -0
  133. package/src/errors/invalid-email.js.map +1 -0
  134. package/src/errors/length.d.ts +7 -0
  135. package/src/errors/length.d.ts.map +1 -0
  136. package/src/errors/length.js +15 -0
  137. package/src/errors/length.js.map +1 -0
  138. package/src/errors/member.d.ts +7 -0
  139. package/src/errors/member.d.ts.map +1 -0
  140. package/src/errors/member.js +15 -0
  141. package/src/errors/member.js.map +1 -0
  142. package/src/errors/pbkdf2.d.ts +7 -0
  143. package/src/errors/pbkdf2.d.ts.map +1 -0
  144. package/src/errors/pbkdf2.js +15 -0
  145. package/src/errors/pbkdf2.js.map +1 -0
  146. package/src/errors/secure-storage.d.ts +7 -0
  147. package/src/errors/secure-storage.d.ts.map +1 -0
  148. package/src/errors/secure-storage.js +16 -0
  149. package/src/errors/secure-storage.js.map +1 -0
  150. package/src/errors/simple-ecies.d.ts +6 -0
  151. package/src/errors/simple-ecies.d.ts.map +1 -0
  152. package/src/errors/simple-ecies.js +16 -0
  153. package/src/errors/simple-ecies.js.map +1 -0
  154. package/src/errors/simple-test-error.d.ts +4 -0
  155. package/src/errors/simple-test-error.d.ts.map +1 -0
  156. package/src/errors/simple-test-error.js +11 -0
  157. package/src/errors/simple-test-error.js.map +1 -0
  158. package/src/i18n-setup.d.ts +32 -0
  159. package/src/i18n-setup.d.ts.map +1 -0
  160. package/src/i18n-setup.js +109 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/{index.ts → index.d.ts} +12 -72
  163. package/src/index.d.ts.map +1 -0
  164. package/src/index.js +146 -0
  165. package/src/index.js.map +1 -0
  166. package/src/interfaces/checksum-config.d.ts +5 -0
  167. package/src/interfaces/checksum-config.d.ts.map +1 -0
  168. package/src/interfaces/checksum-config.js +3 -0
  169. package/src/interfaces/checksum-config.js.map +1 -0
  170. package/src/interfaces/checksum-consts.d.ts +11 -0
  171. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  172. package/src/interfaces/checksum-consts.js +3 -0
  173. package/src/interfaces/checksum-consts.js.map +1 -0
  174. package/src/interfaces/configuration-provenance.d.ts +43 -0
  175. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  176. package/src/interfaces/configuration-provenance.js +8 -0
  177. package/src/interfaces/configuration-provenance.js.map +1 -0
  178. package/src/interfaces/constants.d.ts +70 -0
  179. package/src/interfaces/constants.d.ts.map +1 -0
  180. package/src/interfaces/constants.js +3 -0
  181. package/src/interfaces/constants.js.map +1 -0
  182. package/src/interfaces/ecies-config.d.ts +9 -0
  183. package/src/interfaces/ecies-config.d.ts.map +1 -0
  184. package/src/interfaces/ecies-config.js +3 -0
  185. package/src/interfaces/ecies-config.js.map +1 -0
  186. package/src/interfaces/ecies-consts.d.ts +61 -0
  187. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  188. package/src/interfaces/ecies-consts.js +3 -0
  189. package/src/interfaces/ecies-consts.js.map +1 -0
  190. package/src/interfaces/ecies-file-service.d.ts +7 -0
  191. package/src/interfaces/ecies-file-service.d.ts.map +1 -0
  192. package/src/interfaces/ecies-file-service.js +3 -0
  193. package/src/interfaces/ecies-file-service.js.map +1 -0
  194. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  195. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  196. package/src/interfaces/encrypted-chunk.js +15 -0
  197. package/src/interfaces/encrypted-chunk.js.map +1 -0
  198. package/src/interfaces/encryption-state.d.ts +18 -0
  199. package/src/interfaces/encryption-state.d.ts.map +1 -0
  200. package/src/interfaces/encryption-state.js +5 -0
  201. package/src/interfaces/encryption-state.js.map +1 -0
  202. package/src/interfaces/frontend-member-operational.d.ts +51 -0
  203. package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
  204. package/src/interfaces/frontend-member-operational.js +3 -0
  205. package/src/interfaces/frontend-member-operational.js.map +1 -0
  206. package/src/interfaces/guid.d.ts +78 -0
  207. package/src/interfaces/guid.d.ts.map +1 -0
  208. package/src/interfaces/guid.js +3 -0
  209. package/src/interfaces/guid.js.map +1 -0
  210. package/src/interfaces/id-provider.d.ts +107 -0
  211. package/src/interfaces/id-provider.d.ts.map +1 -0
  212. package/src/interfaces/id-provider.js +56 -0
  213. package/src/interfaces/id-provider.js.map +1 -0
  214. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  215. package/src/interfaces/index.d.ts.map +1 -0
  216. package/src/interfaces/index.js +16 -0
  217. package/src/interfaces/index.js.map +1 -0
  218. package/src/interfaces/invariant.d.ts +46 -0
  219. package/src/interfaces/invariant.d.ts.map +1 -0
  220. package/src/interfaces/invariant.js +22 -0
  221. package/src/interfaces/invariant.js.map +1 -0
  222. package/src/interfaces/library-error.d.ts +23 -0
  223. package/src/interfaces/library-error.d.ts.map +1 -0
  224. package/src/interfaces/library-error.js +3 -0
  225. package/src/interfaces/library-error.js.map +1 -0
  226. package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
  227. package/src/interfaces/member-storage.d.ts.map +1 -0
  228. package/src/interfaces/member-storage.js +3 -0
  229. package/src/interfaces/member-storage.js.map +1 -0
  230. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  231. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  232. package/src/interfaces/member-with-mnemonic.js +3 -0
  233. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  234. package/src/interfaces/member.d.ts +55 -0
  235. package/src/interfaces/member.d.ts.map +1 -0
  236. package/src/interfaces/member.js +3 -0
  237. package/src/interfaces/member.js.map +1 -0
  238. package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
  239. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  240. package/src/interfaces/multi-recipient-chunk.js +16 -0
  241. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  242. package/src/interfaces/pbkdf2-config.d.ts +7 -0
  243. package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
  244. package/src/interfaces/pbkdf2-config.js +3 -0
  245. package/src/interfaces/pbkdf2-config.js.map +1 -0
  246. package/src/interfaces/pbkdf2-consts.d.ts +9 -0
  247. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
  248. package/src/interfaces/pbkdf2-consts.js +3 -0
  249. package/src/interfaces/pbkdf2-consts.js.map +1 -0
  250. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  251. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  252. package/src/interfaces/pbkdf2-result.js +3 -0
  253. package/src/interfaces/pbkdf2-result.js.map +1 -0
  254. package/src/interfaces/stream-config.d.ts +14 -0
  255. package/src/interfaces/stream-config.d.ts.map +1 -0
  256. package/src/interfaces/stream-config.js +11 -0
  257. package/src/interfaces/stream-config.js.map +1 -0
  258. package/src/interfaces/stream-header.d.ts +29 -0
  259. package/src/interfaces/stream-header.d.ts.map +1 -0
  260. package/src/interfaces/stream-header.js +12 -0
  261. package/src/interfaces/stream-header.js.map +1 -0
  262. package/src/interfaces/stream-progress.d.ts +33 -0
  263. package/src/interfaces/stream-progress.d.ts.map +1 -0
  264. package/src/interfaces/stream-progress.js +3 -0
  265. package/src/interfaces/stream-progress.js.map +1 -0
  266. package/src/lib/configuration-provenance-utils.d.ts +11 -0
  267. package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
  268. package/src/lib/configuration-provenance-utils.js +30 -0
  269. package/src/lib/configuration-provenance-utils.js.map +1 -0
  270. package/src/lib/crypto-container.d.ts +25 -0
  271. package/src/lib/crypto-container.d.ts.map +1 -0
  272. package/src/lib/crypto-container.js +50 -0
  273. package/src/lib/crypto-container.js.map +1 -0
  274. package/src/lib/guid.d.ts +344 -0
  275. package/src/lib/guid.d.ts.map +1 -0
  276. package/src/lib/guid.js +919 -0
  277. package/src/lib/guid.js.map +1 -0
  278. package/src/lib/id-providers/custom-provider.d.ts +46 -0
  279. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  280. package/src/lib/id-providers/custom-provider.js +89 -0
  281. package/src/lib/id-providers/custom-provider.js.map +1 -0
  282. package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
  283. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  284. package/src/lib/id-providers/guidv4-provider.js +126 -0
  285. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  286. package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
  287. package/src/lib/id-providers/index.d.ts.map +1 -0
  288. package/src/lib/id-providers/index.js +37 -0
  289. package/src/lib/id-providers/index.js.map +1 -0
  290. package/src/lib/id-providers/objectid-provider.d.ts +43 -0
  291. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  292. package/src/lib/id-providers/objectid-provider.js +108 -0
  293. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  294. package/src/lib/id-providers/uuid-provider.d.ts +52 -0
  295. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  296. package/src/lib/id-providers/uuid-provider.js +114 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/{index.ts → index.d.ts} +2 -2
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/index.js +9 -0
  301. package/src/lib/index.js.map +1 -0
  302. package/src/lib/invariant-validator.d.ts +59 -0
  303. package/src/lib/invariant-validator.d.ts.map +1 -0
  304. package/src/lib/invariant-validator.js +101 -0
  305. package/src/lib/invariant-validator.js.map +1 -0
  306. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  307. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  308. package/src/lib/invariants/encryption-algorithm-consistency.js +53 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/{index.ts → index.d.ts} +1 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/index.js +7 -0
  313. package/src/lib/invariants/index.js.map +1 -0
  314. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  315. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  316. package/src/lib/invariants/pbkdf2-profiles-validity.js +62 -0
  317. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  318. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  319. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  320. package/src/lib/invariants/recipient-id-consistency.js +35 -0
  321. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  322. package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
  323. package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
  324. package/src/lib/multi-recipient-chunk-utils.js +45 -0
  325. package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
  326. package/src/member.d.ts +92 -0
  327. package/src/member.d.ts.map +1 -0
  328. package/src/member.js +327 -0
  329. package/src/member.js.map +1 -0
  330. package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
  331. package/src/pbkdf2-profiles.d.ts.map +1 -0
  332. package/src/pbkdf2-profiles.js +3 -0
  333. package/src/pbkdf2-profiles.js.map +1 -0
  334. package/src/phone-number.d.ts +6 -0
  335. package/src/phone-number.d.ts.map +1 -0
  336. package/src/phone-number.js +22 -0
  337. package/src/phone-number.js.map +1 -0
  338. package/src/regexes.d.ts +7 -0
  339. package/src/regexes.d.ts.map +1 -0
  340. package/src/regexes.js +10 -0
  341. package/src/regexes.js.map +1 -0
  342. package/src/secure-buffer.d.ts +61 -0
  343. package/src/secure-buffer.d.ts.map +1 -0
  344. package/src/secure-buffer.js +205 -0
  345. package/src/secure-buffer.js.map +1 -0
  346. package/src/secure-string.d.ts +46 -0
  347. package/src/secure-string.d.ts.map +1 -0
  348. package/src/secure-string.js +210 -0
  349. package/src/secure-string.js.map +1 -0
  350. package/src/services/aes-gcm.d.ts +57 -0
  351. package/src/services/aes-gcm.d.ts.map +1 -0
  352. package/src/services/aes-gcm.js +146 -0
  353. package/src/services/aes-gcm.js.map +1 -0
  354. package/src/services/chunk-processor.d.ts +31 -0
  355. package/src/services/chunk-processor.d.ts.map +1 -0
  356. package/src/services/chunk-processor.js +149 -0
  357. package/src/services/chunk-processor.js.map +1 -0
  358. package/src/services/ecies/crypto-core.d.ts +72 -0
  359. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  360. package/src/services/ecies/crypto-core.js +209 -0
  361. package/src/services/ecies/crypto-core.js.map +1 -0
  362. package/src/services/ecies/example.d.ts +25 -0
  363. package/src/services/ecies/example.d.ts.map +1 -0
  364. package/src/services/ecies/example.js +128 -0
  365. package/src/services/ecies/example.js.map +1 -0
  366. package/src/services/ecies/file.d.ts +18 -0
  367. package/src/services/ecies/file.d.ts.map +1 -0
  368. package/src/services/ecies/file.js +110 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/{index.ts → index.d.ts} +1 -3
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/index.js +44 -0
  373. package/src/services/ecies/index.js.map +1 -0
  374. package/src/services/ecies/integration.d.ts +59 -0
  375. package/src/services/ecies/integration.d.ts.map +1 -0
  376. package/src/services/ecies/integration.js +172 -0
  377. package/src/services/ecies/integration.js.map +1 -0
  378. package/src/services/ecies/interfaces.d.ts +54 -0
  379. package/src/services/ecies/interfaces.d.ts.map +1 -0
  380. package/src/services/ecies/interfaces.js +6 -0
  381. package/src/services/ecies/interfaces.js.map +1 -0
  382. package/src/services/ecies/manual-test.d.ts +29 -0
  383. package/src/services/ecies/manual-test.d.ts.map +1 -0
  384. package/src/services/ecies/manual-test.js +171 -0
  385. package/src/services/ecies/manual-test.js.map +1 -0
  386. package/src/services/ecies/multi-recipient.d.ts +56 -0
  387. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  388. package/src/services/ecies/multi-recipient.js +348 -0
  389. package/src/services/ecies/multi-recipient.js.map +1 -0
  390. package/src/services/ecies/service.d.ts +120 -0
  391. package/src/services/ecies/service.d.ts.map +1 -0
  392. package/src/services/ecies/service.js +214 -0
  393. package/src/services/ecies/service.js.map +1 -0
  394. package/src/services/ecies/signature.d.ts +27 -0
  395. package/src/services/ecies/signature.d.ts.map +1 -0
  396. package/src/services/ecies/signature.js +76 -0
  397. package/src/services/ecies/signature.js.map +1 -0
  398. package/src/services/ecies/single-recipient.d.ts +46 -0
  399. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  400. package/src/services/ecies/single-recipient.js +326 -0
  401. package/src/services/ecies/single-recipient.js.map +1 -0
  402. package/src/services/encryption-stream.d.ts +71 -0
  403. package/src/services/encryption-stream.d.ts.map +1 -0
  404. package/src/services/encryption-stream.js +299 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/{index.ts → index.d.ts} +1 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/index.js +14 -0
  409. package/src/services/index.js.map +1 -0
  410. package/src/services/multi-recipient-processor.d.ts +35 -0
  411. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  412. package/src/services/multi-recipient-processor.js +293 -0
  413. package/src/services/multi-recipient-processor.js.map +1 -0
  414. package/src/services/password-login.d.ts +47 -0
  415. package/src/services/password-login.d.ts.map +1 -0
  416. package/src/services/password-login.js +119 -0
  417. package/src/services/password-login.js.map +1 -0
  418. package/src/services/pbkdf2.d.ts +54 -0
  419. package/src/services/pbkdf2.d.ts.map +1 -0
  420. package/src/services/pbkdf2.js +112 -0
  421. package/src/services/pbkdf2.js.map +1 -0
  422. package/src/services/progress-tracker.d.ts +23 -0
  423. package/src/services/progress-tracker.d.ts.map +1 -0
  424. package/src/services/progress-tracker.js +107 -0
  425. package/src/services/progress-tracker.js.map +1 -0
  426. package/src/services/resumable-encryption.d.ts +19 -0
  427. package/src/services/resumable-encryption.d.ts.map +1 -0
  428. package/src/services/resumable-encryption.js +109 -0
  429. package/src/services/resumable-encryption.js.map +1 -0
  430. package/src/services/xor.d.ts +37 -0
  431. package/src/services/xor.d.ts.map +1 -0
  432. package/src/services/xor.js +67 -0
  433. package/src/services/xor.js.map +1 -0
  434. package/src/test-mocks/index.d.ts +2 -0
  435. package/src/test-mocks/index.d.ts.map +1 -0
  436. package/src/test-mocks/index.js +5 -0
  437. package/src/test-mocks/index.js.map +1 -0
  438. package/src/test-mocks/mock-frontend-member.d.ts +85 -0
  439. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
  440. package/src/test-mocks/mock-frontend-member.js +194 -0
  441. package/src/test-mocks/mock-frontend-member.js.map +1 -0
  442. package/src/testing.d.ts +2 -0
  443. package/src/testing.d.ts.map +1 -0
  444. package/src/testing.js +6 -0
  445. package/src/testing.js.map +1 -0
  446. package/src/translations/de.d.ts +4 -0
  447. package/src/translations/de.d.ts.map +1 -0
  448. package/src/translations/de.js +207 -0
  449. package/src/translations/de.js.map +1 -0
  450. package/src/translations/en-US.d.ts +4 -0
  451. package/src/translations/en-US.d.ts.map +1 -0
  452. package/src/translations/en-US.js +207 -0
  453. package/src/translations/en-US.js.map +1 -0
  454. package/src/translations/es.d.ts +4 -0
  455. package/src/translations/es.d.ts.map +1 -0
  456. package/src/translations/es.js +207 -0
  457. package/src/translations/es.js.map +1 -0
  458. package/src/translations/fr.d.ts +4 -0
  459. package/src/translations/fr.d.ts.map +1 -0
  460. package/src/translations/fr.js +207 -0
  461. package/src/translations/fr.js.map +1 -0
  462. package/src/translations/ja.d.ts +4 -0
  463. package/src/translations/ja.d.ts.map +1 -0
  464. package/src/translations/ja.js +206 -0
  465. package/src/translations/ja.js.map +1 -0
  466. package/src/translations/uk.d.ts +4 -0
  467. package/src/translations/uk.d.ts.map +1 -0
  468. package/src/translations/uk.js +209 -0
  469. package/src/translations/uk.js.map +1 -0
  470. package/src/translations/zh-cn.d.ts +4 -0
  471. package/src/translations/zh-cn.d.ts.map +1 -0
  472. package/src/translations/zh-cn.js +206 -0
  473. package/src/translations/zh-cn.js.map +1 -0
  474. package/src/types/deep-partial.d.ts +4 -0
  475. package/src/types/deep-partial.d.ts.map +1 -0
  476. package/src/types/deep-partial.js +3 -0
  477. package/src/types/deep-partial.js.map +1 -0
  478. package/src/{types.ts → types.d.ts} +7 -15
  479. package/src/types.d.ts.map +1 -0
  480. package/src/types.js +3 -0
  481. package/src/types.js.map +1 -0
  482. package/src/utils/encryption-type-utils.d.ts +29 -0
  483. package/src/utils/encryption-type-utils.d.ts.map +1 -0
  484. package/src/utils/encryption-type-utils.js +67 -0
  485. package/src/utils/encryption-type-utils.js.map +1 -0
  486. package/src/utils.d.ts +68 -0
  487. package/src/utils.d.ts.map +1 -0
  488. package/src/utils.js +291 -0
  489. package/src/utils.js.map +1 -0
  490. package/LICENSE +0 -21
  491. package/src/builders/ecies-builder.ts +0 -39
  492. package/src/builders/member-builder.ts +0 -155
  493. package/src/constants.ts +0 -609
  494. package/src/core/errors/crypto-error.ts +0 -78
  495. package/src/core/types/result.ts +0 -19
  496. package/src/email-string.ts +0 -82
  497. package/src/enumerations/disposed-error-type.ts +0 -11
  498. package/src/enumerations/ecies-cipher-suite.ts +0 -4
  499. package/src/enumerations/ecies-encryption-type.ts +0 -41
  500. package/src/enumerations/ecies-error-type.ts +0 -43
  501. package/src/enumerations/ecies-string-key.ts +0 -205
  502. package/src/enumerations/ecies-version.ts +0 -3
  503. package/src/enumerations/guid-brand-type.ts +0 -26
  504. package/src/enumerations/guid-error-type.ts +0 -6
  505. package/src/enumerations/id-provider-error-type.ts +0 -50
  506. package/src/enumerations/invalid-email-type.ts +0 -5
  507. package/src/enumerations/length-encoding-type.ts +0 -6
  508. package/src/enumerations/length-error-type.ts +0 -5
  509. package/src/enumerations/member-error-type.ts +0 -106
  510. package/src/enumerations/password-login-error-type.ts +0 -4
  511. package/src/enumerations/pbkdf2-error-type.ts +0 -5
  512. package/src/enumerations/pbkdf2-profile.ts +0 -5
  513. package/src/enumerations/secure-storage-error-type.ts +0 -5
  514. package/src/errors/disposed.ts +0 -36
  515. package/src/errors/ecies.ts +0 -153
  516. package/src/errors/guid.ts +0 -130
  517. package/src/errors/id-provider.ts +0 -40
  518. package/src/errors/invalid-email.ts +0 -23
  519. package/src/errors/length.ts +0 -19
  520. package/src/errors/member.ts +0 -20
  521. package/src/errors/pbkdf2.ts +0 -20
  522. package/src/errors/secure-storage.ts +0 -17
  523. package/src/errors/simple-ecies.ts +0 -21
  524. package/src/errors/simple-test-error.ts +0 -6
  525. package/src/i18n-setup.ts +0 -130
  526. package/src/interfaces/checksum-config.ts +0 -4
  527. package/src/interfaces/checksum-consts.ts +0 -13
  528. package/src/interfaces/configuration-provenance.ts +0 -54
  529. package/src/interfaces/constants.ts +0 -75
  530. package/src/interfaces/ecies-config.ts +0 -8
  531. package/src/interfaces/ecies-consts.ts +0 -76
  532. package/src/interfaces/ecies-file-service.ts +0 -6
  533. package/src/interfaces/encrypted-chunk.ts +0 -64
  534. package/src/interfaces/encryption-state.ts +0 -19
  535. package/src/interfaces/frontend-member-operational.ts +0 -77
  536. package/src/interfaces/guid.ts +0 -86
  537. package/src/interfaces/id-provider.ts +0 -152
  538. package/src/interfaces/invariant.ts +0 -60
  539. package/src/interfaces/library-error.ts +0 -23
  540. package/src/interfaces/member.ts +0 -84
  541. package/src/interfaces/multi-recipient-chunk.ts +0 -61
  542. package/src/interfaces/pbkdf2-config.ts +0 -6
  543. package/src/interfaces/pbkdf2-consts.ts +0 -10
  544. package/src/interfaces/pbkdf2-result.ts +0 -5
  545. package/src/interfaces/stream-config.ts +0 -17
  546. package/src/interfaces/stream-header.ts +0 -34
  547. package/src/interfaces/stream-progress.ts +0 -31
  548. package/src/lib/configuration-provenance-utils.ts +0 -29
  549. package/src/lib/crypto-container.ts +0 -64
  550. package/src/lib/guid.ts +0 -1097
  551. package/src/lib/id-providers/custom-provider.ts +0 -109
  552. package/src/lib/id-providers/guidv4-provider.ts +0 -141
  553. package/src/lib/id-providers/objectid-provider.ts +0 -125
  554. package/src/lib/id-providers/uuid-provider.ts +0 -133
  555. package/src/lib/invariant-validator.ts +0 -133
  556. package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
  557. package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
  558. package/src/lib/invariants/recipient-id-consistency.ts +0 -46
  559. package/src/lib/multi-recipient-chunk-utils.ts +0 -63
  560. package/src/member.ts +0 -495
  561. package/src/phone-number.ts +0 -18
  562. package/src/regexes.ts +0 -10
  563. package/src/secure-buffer.ts +0 -226
  564. package/src/secure-string.ts +0 -244
  565. package/src/services/aes-gcm.ts +0 -220
  566. package/src/services/chunk-processor.ts +0 -188
  567. package/src/services/ecies/README.md +0 -147
  568. package/src/services/ecies/crypto-core.ts +0 -292
  569. package/src/services/ecies/example.ts +0 -185
  570. package/src/services/ecies/file.ts +0 -167
  571. package/src/services/ecies/integration.ts +0 -241
  572. package/src/services/ecies/interfaces.ts +0 -62
  573. package/src/services/ecies/manual-test.ts +0 -219
  574. package/src/services/ecies/multi-recipient.ts +0 -545
  575. package/src/services/ecies/service.ts +0 -370
  576. package/src/services/ecies/signature.ts +0 -93
  577. package/src/services/ecies/single-recipient.ts +0 -476
  578. package/src/services/encryption-stream.ts +0 -435
  579. package/src/services/multi-recipient-processor.ts +0 -377
  580. package/src/services/password-login.ts +0 -226
  581. package/src/services/pbkdf2.ts +0 -169
  582. package/src/services/progress-tracker.ts +0 -128
  583. package/src/services/resumable-encryption.ts +0 -135
  584. package/src/services/xor.ts +0 -65
  585. package/src/test-mocks/index.ts +0 -1
  586. package/src/test-mocks/mock-frontend-member.ts +0 -276
  587. package/src/testing.ts +0 -2
  588. package/src/translations/de.ts +0 -260
  589. package/src/translations/en-US.ts +0 -262
  590. package/src/translations/es.ts +0 -271
  591. package/src/translations/fr.ts +0 -269
  592. package/src/translations/ja.ts +0 -259
  593. package/src/translations/uk.ts +0 -271
  594. package/src/translations/zh-cn.ts +0 -234
  595. package/src/types/deep-partial.ts +0 -11
  596. package/src/utils/encryption-type-utils.ts +0 -76
  597. package/src/utils.ts +0 -329
@@ -0,0 +1,52 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
4
+ *
5
+ * Uses the 'uuid' npm package for UUID generation and validation.
6
+ * Serialization uses the standard UUID format with dashes (36 characters).
7
+ *
8
+ * This is functionally similar to GuidV4Provider but uses standard UUID
9
+ * string formatting (with dashes) instead of base64.
10
+ */
11
+ export declare class UuidProvider extends BaseIdProvider {
12
+ readonly byteLength = 16;
13
+ readonly name = "UUID";
14
+ /**
15
+ * Generate a new random UUIDv4.
16
+ */
17
+ generate(): Uint8Array;
18
+ /**
19
+ * Validate a UUID buffer.
20
+ * Checks length and RFC 4122 compliance.
21
+ */
22
+ validate(id: Uint8Array): boolean;
23
+ /**
24
+ * Serialize UUID to standard format with dashes (36 characters).
25
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a UUID string (with or without dashes) to buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ /**
33
+ * Extract the version from a UUID buffer.
34
+ * Should return 4 for v4 UUIDs.
35
+ */
36
+ getVersion(id: Uint8Array): number | undefined;
37
+ /**
38
+ * Check if a UUID is the nil UUID (all zeros).
39
+ */
40
+ isNil(id: Uint8Array): boolean;
41
+ /**
42
+ * Convert an ID of unknown type to a string representation.
43
+ * Delegates to base implementation.
44
+ */
45
+ idToString(id: unknown): string;
46
+ /**
47
+ * Convert a string representation of an ID back to an ID buffer.
48
+ * Delegates to deserialize.
49
+ */
50
+ idFromString(str: string): Uint8Array;
51
+ }
52
+ //# sourceMappingURL=uuid-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/uuid-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,UAAU;IAEvB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAMtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAcjC;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAWjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IA4BpC;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAQ9C;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAW9B;;;OAGG;IACM,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IAIxC;;;OAGG;IACM,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAG/C"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UuidProvider = void 0;
4
+ const id_provider_1 = require("../../interfaces/id-provider");
5
+ const uuid_1 = require("uuid");
6
+ const id_provider_2 = require("../../errors/id-provider");
7
+ const id_provider_error_type_1 = require("../../enumerations/id-provider-error-type");
8
+ /**
9
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
10
+ *
11
+ * Uses the 'uuid' npm package for UUID generation and validation.
12
+ * Serialization uses the standard UUID format with dashes (36 characters).
13
+ *
14
+ * This is functionally similar to GuidV4Provider but uses standard UUID
15
+ * string formatting (with dashes) instead of base64.
16
+ */
17
+ class UuidProvider extends id_provider_1.BaseIdProvider {
18
+ byteLength = 16;
19
+ name = 'UUID';
20
+ /**
21
+ * Generate a new random UUIDv4.
22
+ */
23
+ generate() {
24
+ const buffer = new Uint8Array(16);
25
+ (0, uuid_1.v4)(undefined, buffer);
26
+ return buffer;
27
+ }
28
+ /**
29
+ * Validate a UUID buffer.
30
+ * Checks length and RFC 4122 compliance.
31
+ */
32
+ validate(id) {
33
+ if (id.length !== this.byteLength) {
34
+ return false;
35
+ }
36
+ try {
37
+ // Convert to string and validate
38
+ const str = this.serialize(id);
39
+ return (0, uuid_1.validate)(str);
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ }
45
+ /**
46
+ * Serialize UUID to standard format with dashes (36 characters).
47
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
48
+ */
49
+ serialize(id) {
50
+ this.validateLength(id, 'UuidProvider.serialize');
51
+ const hex = Array.from(id)
52
+ .map(b => b.toString(16).padStart(2, '0'))
53
+ .join('');
54
+ // Insert dashes at proper positions
55
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
56
+ }
57
+ /**
58
+ * Deserialize a UUID string (with or without dashes) to buffer.
59
+ */
60
+ deserialize(str) {
61
+ if (typeof str !== 'string') {
62
+ throw new id_provider_2.IdProviderError(id_provider_error_type_1.IdProviderErrorType.InputMustBeString);
63
+ }
64
+ // Validate format
65
+ if (!(0, uuid_1.validate)(str)) {
66
+ throw new id_provider_2.IdProviderError(id_provider_error_type_1.IdProviderErrorType.InvalidUuidFormat, undefined, undefined, { input: str });
67
+ }
68
+ try {
69
+ const buffer = (0, uuid_1.parse)(str);
70
+ return buffer;
71
+ }
72
+ catch (error) {
73
+ throw new id_provider_2.IdProviderError(id_provider_error_type_1.IdProviderErrorType.ParseFailed, { cause: error instanceof Error ? error : undefined }, undefined, { input: str, message: error instanceof Error ? error.message : String(error) });
74
+ }
75
+ }
76
+ /**
77
+ * Extract the version from a UUID buffer.
78
+ * Should return 4 for v4 UUIDs.
79
+ */
80
+ getVersion(id) {
81
+ this.validateLength(id, 'UuidProvider.getVersion');
82
+ // Version is in the most significant 4 bits of byte 6
83
+ const versionByte = id[6];
84
+ return (versionByte >> 4) & 0x0F;
85
+ }
86
+ /**
87
+ * Check if a UUID is the nil UUID (all zeros).
88
+ */
89
+ isNil(id) {
90
+ this.validateLength(id, 'UuidProvider.isNil');
91
+ for (let i = 0; i < id.length; i++) {
92
+ if (id[i] !== 0) {
93
+ return false;
94
+ }
95
+ }
96
+ return true;
97
+ }
98
+ /**
99
+ * Convert an ID of unknown type to a string representation.
100
+ * Delegates to base implementation.
101
+ */
102
+ idToString(id) {
103
+ return super.idToString(id);
104
+ }
105
+ /**
106
+ * Convert a string representation of an ID back to an ID buffer.
107
+ * Delegates to deserialize.
108
+ */
109
+ idFromString(str) {
110
+ return this.deserialize(str);
111
+ }
112
+ }
113
+ exports.UuidProvider = UuidProvider;
114
+ //# sourceMappingURL=uuid-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/uuid-provider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Library exports for v2 architecture
3
3
  */
4
-
5
4
  export * from './crypto-container';
6
- export * from './guid';
5
+ export * from './guid';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Library exports for v2 architecture
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tslib_1 = require("tslib");
7
+ tslib_1.__exportStar(require("./crypto-container"), exports);
8
+ tslib_1.__exportStar(require("./guid"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6DAAmC;AACnC,iDAAuB"}
@@ -0,0 +1,59 @@
1
+ import { IConstants } from '../interfaces/constants';
2
+ import { IInvariant } from '../interfaces/invariant';
3
+ /**
4
+ * Validates all configuration invariants.
5
+ *
6
+ * This class maintains a registry of all invariants and validates them
7
+ * whenever a configuration is created or modified.
8
+ *
9
+ * Adding new invariants is easy - just:
10
+ * 1. Create a class implementing IInvariant
11
+ * 2. Add it to the DEFAULT_INVARIANTS array
12
+ * 3. Tests will automatically validate it
13
+ */
14
+ export declare class InvariantValidator {
15
+ /**
16
+ * Default invariants that are always checked
17
+ */
18
+ private static readonly DEFAULT_INVARIANTS;
19
+ /**
20
+ * Custom invariants registered at runtime
21
+ */
22
+ private static customInvariants;
23
+ /**
24
+ * Register a custom invariant to be checked alongside default invariants
25
+ */
26
+ static registerInvariant(invariant: IInvariant): void;
27
+ /**
28
+ * Clear all custom invariants (useful for testing)
29
+ */
30
+ static clearCustomInvariants(): void;
31
+ /**
32
+ * Get all invariants (default + custom)
33
+ */
34
+ static getAllInvariants(): readonly IInvariant[];
35
+ /**
36
+ * Validate all invariants for a given configuration
37
+ *
38
+ * @param config The configuration to validate
39
+ * @throws Error if any invariant fails
40
+ */
41
+ static validateAll(config: IConstants): void;
42
+ /**
43
+ * Check a single invariant
44
+ *
45
+ * @param config The configuration to validate
46
+ * @param invariantName Name of the invariant to check
47
+ * @returns true if invariant passes, false otherwise
48
+ */
49
+ static checkInvariant(config: IConstants, invariantName: string): boolean;
50
+ /**
51
+ * Get failure details for a specific invariant
52
+ *
53
+ * @param config The configuration to validate
54
+ * @param invariantName Name of the invariant to check
55
+ * @returns Error message if invariant fails, null if it passes
56
+ */
57
+ static getFailureDetails(config: IConstants, invariantName: string): string | null;
58
+ }
59
+ //# sourceMappingURL=invariant-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant-validator.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariant-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAIxC;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAoB;IAEnD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAIrD;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI,IAAI;IAIpC;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,SAAS,UAAU,EAAE;IAIhD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAuB5C;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAgBzE;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAenF"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvariantValidator = void 0;
4
+ const invariants_1 = require("./invariants");
5
+ const i18n_setup_1 = require("../i18n-setup");
6
+ const ecies_string_key_1 = require("../enumerations/ecies-string-key");
7
+ const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
8
+ /**
9
+ * Validates all configuration invariants.
10
+ *
11
+ * This class maintains a registry of all invariants and validates them
12
+ * whenever a configuration is created or modified.
13
+ *
14
+ * Adding new invariants is easy - just:
15
+ * 1. Create a class implementing IInvariant
16
+ * 2. Add it to the DEFAULT_INVARIANTS array
17
+ * 3. Tests will automatically validate it
18
+ */
19
+ class InvariantValidator {
20
+ /**
21
+ * Default invariants that are always checked
22
+ */
23
+ static DEFAULT_INVARIANTS = [
24
+ new invariants_1.RecipientIdConsistencyInvariant(),
25
+ new invariants_1.Pbkdf2ProfilesValidityInvariant(),
26
+ new invariants_1.EncryptionAlgorithmConsistencyInvariant(),
27
+ ];
28
+ /**
29
+ * Custom invariants registered at runtime
30
+ */
31
+ static customInvariants = [];
32
+ /**
33
+ * Register a custom invariant to be checked alongside default invariants
34
+ */
35
+ static registerInvariant(invariant) {
36
+ this.customInvariants.push(invariant);
37
+ }
38
+ /**
39
+ * Clear all custom invariants (useful for testing)
40
+ */
41
+ static clearCustomInvariants() {
42
+ this.customInvariants = [];
43
+ }
44
+ /**
45
+ * Get all invariants (default + custom)
46
+ */
47
+ static getAllInvariants() {
48
+ return [...this.DEFAULT_INVARIANTS, ...this.customInvariants];
49
+ }
50
+ /**
51
+ * Validate all invariants for a given configuration
52
+ *
53
+ * @param config The configuration to validate
54
+ * @throws Error if any invariant fails
55
+ */
56
+ static validateAll(config) {
57
+ const allInvariants = this.getAllInvariants();
58
+ const failures = [];
59
+ for (const invariant of allInvariants) {
60
+ if (!invariant.check(config)) {
61
+ failures.push(invariant.errorMessage(config));
62
+ }
63
+ }
64
+ if (failures.length > 0) {
65
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
66
+ throw i18n_lib_1.TranslatableGenericError.withEngine(engine, i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Invariant_ConfigurationValidationFailedMultipleTemplate, { count: failures.length, failures: failures.join('\n\n') }, undefined, { invariantCount: failures.length });
67
+ }
68
+ }
69
+ /**
70
+ * Check a single invariant
71
+ *
72
+ * @param config The configuration to validate
73
+ * @param invariantName Name of the invariant to check
74
+ * @returns true if invariant passes, false otherwise
75
+ */
76
+ static checkInvariant(config, invariantName) {
77
+ const invariant = this.getAllInvariants().find(i => i.name === invariantName);
78
+ if (!invariant) {
79
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
80
+ throw i18n_lib_1.TranslatableGenericError.withEngine(engine, i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Invariant_UnknownInvariantTemplate, { name: invariantName }, undefined, { invariantName });
81
+ }
82
+ return invariant.check(config);
83
+ }
84
+ /**
85
+ * Get failure details for a specific invariant
86
+ *
87
+ * @param config The configuration to validate
88
+ * @param invariantName Name of the invariant to check
89
+ * @returns Error message if invariant fails, null if it passes
90
+ */
91
+ static getFailureDetails(config, invariantName) {
92
+ const invariant = this.getAllInvariants().find(i => i.name === invariantName);
93
+ if (!invariant) {
94
+ const engine = (0, i18n_setup_1.getEciesI18nEngine)();
95
+ throw i18n_lib_1.TranslatableGenericError.withEngine(engine, i18n_setup_1.EciesComponentId, ecies_string_key_1.EciesStringKey.Error_Invariant_UnknownInvariantTemplate, { name: invariantName }, undefined, { invariantName });
96
+ }
97
+ return invariant.check(config) ? null : invariant.errorMessage(config);
98
+ }
99
+ }
100
+ exports.InvariantValidator = InvariantValidator;
101
+ //# sourceMappingURL=invariant-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant-validator.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariant-validator.ts"],"names":[],"mappings":";;;AAEA,6CAIsB;AACtB,8CAAqE;AACrE,uEAAkE;AAClE,wDAAqE;AAErE;;;;;;;;;;GAUG;AACH,MAAa,kBAAkB;IAC7B;;OAEG;IACK,MAAM,CAAU,kBAAkB,GAAiB;QACzD,IAAI,4CAA+B,EAAE;QACrC,IAAI,4CAA+B,EAAE;QACrC,IAAI,oDAAuC,EAAE;KAC9C,CAAC;IAEF;;OAEG;IACK,MAAM,CAAC,gBAAgB,GAAiB,EAAE,CAAC;IAEnD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAqB;QAC5C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB;QAC1B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,MAAkB;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAA,+BAAkB,GAAE,CAAC;YACpC,MAAM,mCAAwB,CAAC,UAAU,CACvC,MAAM,EACN,6BAAgB,EAChB,iCAAc,CAAC,6DAA6D,EAC5E,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAC3D,SAAS,EACT,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAkB,EAAE,aAAqB;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAA,+BAAkB,GAAE,CAAC;YACpC,MAAM,mCAAwB,CAAC,UAAU,CACvC,MAAM,EACN,6BAAgB,EAChB,iCAAc,CAAC,wCAAwC,EACvD,EAAE,IAAI,EAAE,aAAa,EAAE,EACvB,SAAS,EACT,EAAE,aAAa,EAAE,CAClB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAkB,EAAE,aAAqB;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAA,+BAAkB,GAAE,CAAC;YACpC,MAAM,mCAAwB,CAAC,UAAU,CACvC,MAAM,EACN,6BAAgB,EAChB,iCAAc,CAAC,wCAAwC,EACvD,EAAE,IAAI,EAAE,aAAa,EAAE,EACvB,SAAS,EACT,EAAE,aAAa,EAAE,CAClB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;;AA7GH,gDA8GC"}
@@ -0,0 +1,17 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that encryption algorithm parameters are consistent.
5
+ *
6
+ * Checks:
7
+ * - Symmetric key size matches the algorithm (AES-256 = 32 bytes)
8
+ * - Curve name is supported
9
+ * - Key derivation path is valid
10
+ */
11
+ export declare class EncryptionAlgorithmConsistencyInvariant extends BaseInvariant {
12
+ private static readonly SUPPORTED_CURVES;
13
+ constructor();
14
+ check(config: IConstants): boolean;
15
+ errorMessage(config: IConstants): string;
16
+ }
17
+ //# sourceMappingURL=encryption-algorithm-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-algorithm-consistency.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/encryption-algorithm-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;GAOG;AACH,qBAAa,uCAAwC,SAAQ,aAAa;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKtC;;IASF,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAqBlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAyBzC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EncryptionAlgorithmConsistencyInvariant = void 0;
4
+ const invariant_1 = require("../../interfaces/invariant");
5
+ /**
6
+ * Validates that encryption algorithm parameters are consistent.
7
+ *
8
+ * Checks:
9
+ * - Symmetric key size matches the algorithm (AES-256 = 32 bytes)
10
+ * - Curve name is supported
11
+ * - Key derivation path is valid
12
+ */
13
+ class EncryptionAlgorithmConsistencyInvariant extends invariant_1.BaseInvariant {
14
+ static SUPPORTED_CURVES = [
15
+ 'secp256k1',
16
+ 'p256',
17
+ 'p384',
18
+ 'p521',
19
+ ];
20
+ constructor() {
21
+ super('EncryptionAlgorithmConsistency', 'Encryption algorithm parameters must be consistent');
22
+ }
23
+ check(config) {
24
+ // AES-256 requires 32-byte keys
25
+ if (config.ECIES.SYMMETRIC.KEY_SIZE !== 32) {
26
+ return false;
27
+ }
28
+ // Check curve is supported
29
+ if (!EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.includes(config.ECIES.CURVE_NAME)) {
30
+ return false;
31
+ }
32
+ // Key derivation path should be valid BIP32 path
33
+ if (!config.ECIES.PRIMARY_KEY_DERIVATION_PATH.startsWith('m/')) {
34
+ return false;
35
+ }
36
+ return true;
37
+ }
38
+ errorMessage(config) {
39
+ const issues = [];
40
+ if (config.ECIES.SYMMETRIC.KEY_SIZE !== 32) {
41
+ issues.push(`SYMMETRIC.KEY_SIZE (${config.ECIES.SYMMETRIC.KEY_SIZE}) must be 32 for AES-256`);
42
+ }
43
+ if (!EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.includes(config.ECIES.CURVE_NAME)) {
44
+ issues.push(`CURVE_NAME (${config.ECIES.CURVE_NAME}) must be one of: ${EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.join(', ')}`);
45
+ }
46
+ if (!config.ECIES.PRIMARY_KEY_DERIVATION_PATH.startsWith('m/')) {
47
+ issues.push(`PRIMARY_KEY_DERIVATION_PATH (${config.ECIES.PRIMARY_KEY_DERIVATION_PATH}) must be a valid BIP32 path starting with 'm/'`);
48
+ }
49
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
50
+ }
51
+ }
52
+ exports.EncryptionAlgorithmConsistencyInvariant = EncryptionAlgorithmConsistencyInvariant;
53
+ //# sourceMappingURL=encryption-algorithm-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-algorithm-consistency.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/encryption-algorithm-consistency.ts"],"names":[],"mappings":";;;AACA,0DAA2D;AAE3D;;;;;;;GAOG;AACH,MAAa,uCAAwC,SAAQ,yBAAa;IAChE,MAAM,CAAU,gBAAgB,GAAG;QACzC,WAAW;QACX,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IAEF;QACE,KAAK,CACH,gCAAgC,EAChC,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,gCAAgC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,QAAQ,CACpE,MAAM,CAAC,KAAK,CAAC,UAAU,CACxB,EAAE,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,uBAAuB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,0BAA0B,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,QAAQ,CACpE,MAAM,CAAC,KAAK,CAAC,UAAU,CACxB,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CACT,eAAe,MAAM,CAAC,KAAK,CAAC,UAAU,qBAAqB,uCAAuC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjI,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CACT,gCAAgC,MAAM,CAAC,KAAK,CAAC,2BAA2B,iDAAiD,CAC1H,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;;AA5DH,0FA6DC"}
@@ -1,3 +1,4 @@
1
1
  export * from './recipient-id-consistency';
2
2
  export * from './pbkdf2-profiles-validity';
3
3
  export * from './encryption-algorithm-consistency';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./recipient-id-consistency"), exports);
5
+ tslib_1.__exportStar(require("./pbkdf2-profiles-validity"), exports);
6
+ tslib_1.__exportStar(require("./encryption-algorithm-consistency"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/index.ts"],"names":[],"mappings":";;;AAAA,qEAA2C;AAC3C,qEAA2C;AAC3C,6EAAmD"}
@@ -0,0 +1,16 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that PBKDF2 profiles have sensible parameters.
5
+ *
6
+ * Checks:
7
+ * - iterations > 0 and not too low (security risk)
8
+ * - saltBytes > 0 and reasonable
9
+ * - hashBytes > 0 and matches expected hash output
10
+ */
11
+ export declare class Pbkdf2ProfilesValidityInvariant extends BaseInvariant {
12
+ constructor();
13
+ check(config: IConstants): boolean;
14
+ errorMessage(config: IConstants): string;
15
+ }
16
+ //# sourceMappingURL=pbkdf2-profiles-validity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2-profiles-validity.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/pbkdf2-profiles-validity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D;;;;;;;GAOG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;;IAQhE,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IA2BlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CA8BzC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pbkdf2ProfilesValidityInvariant = void 0;
4
+ const invariant_1 = require("../../interfaces/invariant");
5
+ const pbkdf2_profile_1 = require("../../enumerations/pbkdf2-profile");
6
+ /**
7
+ * Validates that PBKDF2 profiles have sensible parameters.
8
+ *
9
+ * Checks:
10
+ * - iterations > 0 and not too low (security risk)
11
+ * - saltBytes > 0 and reasonable
12
+ * - hashBytes > 0 and matches expected hash output
13
+ */
14
+ class Pbkdf2ProfilesValidityInvariant extends invariant_1.BaseInvariant {
15
+ constructor() {
16
+ super('Pbkdf2ProfilesValidity', 'PBKDF2 profiles must have valid cryptographic parameters');
17
+ }
18
+ check(config) {
19
+ const profiles = [
20
+ config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD],
21
+ config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.HIGH_SECURITY],
22
+ config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.TEST_FAST],
23
+ ];
24
+ for (const profile of profiles) {
25
+ // iterations must be positive and reasonable
26
+ if (profile.iterations < 1000 || profile.iterations > 10_000_000) {
27
+ return false;
28
+ }
29
+ // saltBytes must be at least 16 bytes (128 bits)
30
+ if (profile.saltBytes < 16 || profile.saltBytes > 256) {
31
+ return false;
32
+ }
33
+ // hashBytes must be positive and reasonable for sha256
34
+ if (profile.hashBytes < 16 || profile.hashBytes > 64) {
35
+ return false;
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+ errorMessage(config) {
41
+ const issues = [];
42
+ const profileTests = [
43
+ { name: 'BROWSER_PASSWORD', profile: config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.BROWSER_PASSWORD] },
44
+ { name: 'HIGH_SECURITY', profile: config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.HIGH_SECURITY] },
45
+ { name: 'TEST_FAST', profile: config.PBKDF2_PROFILES[pbkdf2_profile_1.Pbkdf2ProfileEnum.TEST_FAST] },
46
+ ];
47
+ for (const { name, profile } of profileTests) {
48
+ if (profile.iterations < 1000 || profile.iterations > 10_000_000) {
49
+ issues.push(`${name}.iterations (${profile.iterations}) must be between 1000 and 10,000,000`);
50
+ }
51
+ if (profile.saltBytes < 16 || profile.saltBytes > 256) {
52
+ issues.push(`${name}.saltBytes (${profile.saltBytes}) must be between 16 and 256`);
53
+ }
54
+ if (profile.hashBytes < 16 || profile.hashBytes > 64) {
55
+ issues.push(`${name}.hashBytes (${profile.hashBytes}) must be between 16 and 64`);
56
+ }
57
+ }
58
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
59
+ }
60
+ }
61
+ exports.Pbkdf2ProfilesValidityInvariant = Pbkdf2ProfilesValidityInvariant;
62
+ //# sourceMappingURL=pbkdf2-profiles-validity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2-profiles-validity.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/pbkdf2-profiles-validity.ts"],"names":[],"mappings":";;;AACA,0DAA2D;AAC3D,sEAAsE;AAEtE;;;;;;;GAOG;AACH,MAAa,+BAAgC,SAAQ,yBAAa;IAChE;QACE,KAAK,CACH,wBAAwB,EACxB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,MAAM,QAAQ,GAAG;YACf,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,gBAAgB,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,aAAa,CAAC;YACvD,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,SAAS,CAAC;SACpD,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,6CAA6C;YAC7C,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,iDAAiD;YACjD,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,uDAAuD;YACvD,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG;YACnB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,gBAAgB,CAAC,EAAE;YACjG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,aAAa,CAAC,EAAE;YAC3F,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,kCAAiB,CAAC,SAAS,CAAC,EAAE;SACpF,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBACjE,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,gBAAgB,OAAO,CAAC,UAAU,uCAAuC,CACjF,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,eAAe,OAAO,CAAC,SAAS,8BAA8B,CACtE,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,eAAe,OAAO,CAAC,SAAS,6BAA6B,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;CACF;AAjED,0EAiEC"}
@@ -0,0 +1,18 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that all recipient ID size configurations are consistent.
5
+ *
6
+ * This invariant would have caught the 12 vs 32 byte discrepancy.
7
+ *
8
+ * Checks:
9
+ * - MEMBER_ID_LENGTH === idProvider.byteLength
10
+ * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
11
+ * - All three values must be in sync
12
+ */
13
+ export declare class RecipientIdConsistencyInvariant extends BaseInvariant {
14
+ constructor();
15
+ check(config: IConstants): boolean;
16
+ errorMessage(config: IConstants): string;
17
+ }
18
+ //# sourceMappingURL=recipient-id-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient-id-consistency.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;;IAQhE,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAOlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAiBzC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecipientIdConsistencyInvariant = void 0;
4
+ const invariant_1 = require("../../interfaces/invariant");
5
+ /**
6
+ * Validates that all recipient ID size configurations are consistent.
7
+ *
8
+ * This invariant would have caught the 12 vs 32 byte discrepancy.
9
+ *
10
+ * Checks:
11
+ * - MEMBER_ID_LENGTH === idProvider.byteLength
12
+ * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
13
+ * - All three values must be in sync
14
+ */
15
+ class RecipientIdConsistencyInvariant extends invariant_1.BaseInvariant {
16
+ constructor() {
17
+ super('RecipientIdConsistency', 'All recipient ID size configurations must match the ID provider byte length');
18
+ }
19
+ check(config) {
20
+ return (config.MEMBER_ID_LENGTH === config.idProvider.byteLength &&
21
+ config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE === config.idProvider.byteLength);
22
+ }
23
+ errorMessage(config) {
24
+ const issues = [];
25
+ if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
26
+ issues.push(`MEMBER_ID_LENGTH (${config.MEMBER_ID_LENGTH}) !== idProvider.byteLength (${config.idProvider.byteLength})`);
27
+ }
28
+ if (config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
29
+ issues.push(`ECIES.MULTIPLE.RECIPIENT_ID_SIZE (${config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE}) !== idProvider.byteLength (${config.idProvider.byteLength})`);
30
+ }
31
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
32
+ }
33
+ }
34
+ exports.RecipientIdConsistencyInvariant = RecipientIdConsistencyInvariant;
35
+ //# sourceMappingURL=recipient-id-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient-id-consistency.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":";;;AACA,0DAA2D;AAE3D;;;;;;;;;GASG;AACH,MAAa,+BAAgC,SAAQ,yBAAa;IAChE;QACE,KAAK,CACH,wBAAwB,EACxB,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,OAAO,CACL,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU;YACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CACzE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CACT,qBAAqB,MAAM,CAAC,gBAAgB,gCAAgC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAC5G,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CACT,qCAAqC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,gCAAgC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAC5I,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;CACF;AAhCD,0EAgCC"}