@digitaldefiance/ecies-lib 4.12.8 → 4.13.1

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 (399) hide show
  1. package/README.md +60 -12
  2. package/package.json +3 -3
  3. package/src/builders/ecies-builder.d.ts +24 -1
  4. package/src/builders/ecies-builder.d.ts.map +1 -1
  5. package/src/builders/ecies-builder.js +24 -1
  6. package/src/builders/ecies-builder.js.map +1 -1
  7. package/src/builders/member-builder.d.ts +57 -1
  8. package/src/builders/member-builder.d.ts.map +1 -1
  9. package/src/builders/member-builder.js +57 -1
  10. package/src/builders/member-builder.js.map +1 -1
  11. package/src/constants.d.ts +99 -10
  12. package/src/constants.d.ts.map +1 -1
  13. package/src/constants.js +162 -20
  14. package/src/constants.js.map +1 -1
  15. package/src/core/errors/crypto-error.d.ts +28 -1
  16. package/src/core/errors/crypto-error.d.ts.map +1 -1
  17. package/src/core/errors/crypto-error.js +28 -1
  18. package/src/core/errors/crypto-error.js.map +1 -1
  19. package/src/core/types/result.d.ts +21 -1
  20. package/src/core/types/result.d.ts.map +1 -1
  21. package/src/core/types/result.js +17 -1
  22. package/src/core/types/result.js.map +1 -1
  23. package/src/enumerations/ecies-cipher-suite.d.ts +11 -0
  24. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -1
  25. package/src/enumerations/ecies-cipher-suite.js +11 -1
  26. package/src/enumerations/ecies-cipher-suite.js.map +1 -1
  27. package/src/enumerations/ecies-encryption-type.d.ts +26 -3
  28. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -1
  29. package/src/enumerations/ecies-encryption-type.js +29 -10
  30. package/src/enumerations/ecies-encryption-type.js.map +1 -1
  31. package/src/enumerations/ecies-error-type.d.ts +48 -3
  32. package/src/enumerations/ecies-error-type.d.ts.map +1 -1
  33. package/src/enumerations/ecies-error-type.js +45 -0
  34. package/src/enumerations/ecies-error-type.js.map +1 -1
  35. package/src/enumerations/ecies-string-key.d.ts +4 -0
  36. package/src/enumerations/ecies-string-key.d.ts.map +1 -1
  37. package/src/enumerations/ecies-string-key.js +4 -0
  38. package/src/enumerations/ecies-string-key.js.map +1 -1
  39. package/src/enumerations/ecies-version.d.ts +5 -0
  40. package/src/enumerations/ecies-version.d.ts.map +1 -1
  41. package/src/enumerations/ecies-version.js +5 -0
  42. package/src/enumerations/ecies-version.js.map +1 -1
  43. package/src/enumerations/guid-brand-type.d.ts +13 -8
  44. package/src/enumerations/guid-brand-type.d.ts.map +1 -1
  45. package/src/enumerations/guid-brand-type.js +13 -8
  46. package/src/enumerations/guid-brand-type.js.map +1 -1
  47. package/src/enumerations/guid-error-type.d.ts +8 -0
  48. package/src/enumerations/guid-error-type.d.ts.map +1 -1
  49. package/src/enumerations/guid-error-type.js +8 -0
  50. package/src/enumerations/guid-error-type.js.map +1 -1
  51. package/src/enumerations/index.d.ts +4 -0
  52. package/src/enumerations/index.d.ts.map +1 -1
  53. package/src/enumerations/index.js +4 -0
  54. package/src/enumerations/index.js.map +1 -1
  55. package/src/enumerations/invalid-email-type.d.ts +7 -0
  56. package/src/enumerations/invalid-email-type.d.ts.map +1 -1
  57. package/src/enumerations/invalid-email-type.js +7 -0
  58. package/src/enumerations/invalid-email-type.js.map +1 -1
  59. package/src/enumerations/length-encoding-type.d.ts +8 -0
  60. package/src/enumerations/length-encoding-type.d.ts.map +1 -1
  61. package/src/enumerations/length-encoding-type.js +8 -0
  62. package/src/enumerations/length-encoding-type.js.map +1 -1
  63. package/src/enumerations/length-error-type.d.ts +7 -0
  64. package/src/enumerations/length-error-type.d.ts.map +1 -1
  65. package/src/enumerations/length-error-type.js +7 -0
  66. package/src/enumerations/length-error-type.js.map +1 -1
  67. package/src/enumerations/password-login-error-type.d.ts +6 -0
  68. package/src/enumerations/password-login-error-type.d.ts.map +1 -1
  69. package/src/enumerations/password-login-error-type.js +6 -0
  70. package/src/enumerations/password-login-error-type.js.map +1 -1
  71. package/src/enumerations/pbkdf2-error-type.d.ts +7 -0
  72. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -1
  73. package/src/enumerations/pbkdf2-error-type.js +7 -0
  74. package/src/enumerations/pbkdf2-error-type.js.map +1 -1
  75. package/src/enumerations/pbkdf2-profile.d.ts +7 -0
  76. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -1
  77. package/src/enumerations/pbkdf2-profile.js +7 -0
  78. package/src/enumerations/pbkdf2-profile.js.map +1 -1
  79. package/src/enumerations/secure-storage-error-type.d.ts +7 -0
  80. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -1
  81. package/src/enumerations/secure-storage-error-type.js +7 -0
  82. package/src/enumerations/secure-storage-error-type.js.map +1 -1
  83. package/src/errors/index.d.ts +5 -0
  84. package/src/errors/index.d.ts.map +1 -1
  85. package/src/errors/index.js +5 -0
  86. package/src/errors/index.js.map +1 -1
  87. package/src/errors/invalid-email.d.ts +4 -0
  88. package/src/errors/invalid-email.d.ts.map +1 -1
  89. package/src/errors/invalid-email.js +4 -0
  90. package/src/errors/invalid-email.js.map +1 -1
  91. package/src/errors/length.d.ts +4 -0
  92. package/src/errors/length.d.ts.map +1 -1
  93. package/src/errors/length.js +4 -0
  94. package/src/errors/length.js.map +1 -1
  95. package/src/errors/member.d.ts +4 -0
  96. package/src/errors/member.d.ts.map +1 -1
  97. package/src/errors/member.js +4 -0
  98. package/src/errors/member.js.map +1 -1
  99. package/src/errors/pbkdf2.d.ts +4 -0
  100. package/src/errors/pbkdf2.d.ts.map +1 -1
  101. package/src/errors/pbkdf2.js +4 -0
  102. package/src/errors/pbkdf2.js.map +1 -1
  103. package/src/errors/secure-storage.d.ts +4 -0
  104. package/src/errors/secure-storage.d.ts.map +1 -1
  105. package/src/errors/secure-storage.js +4 -0
  106. package/src/errors/secure-storage.js.map +1 -1
  107. package/src/errors/simple-ecies.d.ts +4 -0
  108. package/src/errors/simple-ecies.d.ts.map +1 -1
  109. package/src/errors/simple-ecies.js +4 -0
  110. package/src/errors/simple-ecies.js.map +1 -1
  111. package/src/errors/simple-test-error.d.ts +3 -0
  112. package/src/errors/simple-test-error.d.ts.map +1 -1
  113. package/src/errors/simple-test-error.js +3 -0
  114. package/src/errors/simple-test-error.js.map +1 -1
  115. package/src/errors/translatable.d.ts +8 -0
  116. package/src/errors/translatable.d.ts.map +1 -0
  117. package/src/errors/translatable.js +20 -0
  118. package/src/errors/translatable.js.map +1 -0
  119. package/src/interfaces/checksum-config.d.ts +3 -0
  120. package/src/interfaces/checksum-config.d.ts.map +1 -1
  121. package/src/interfaces/checksum-consts.d.ts +4 -0
  122. package/src/interfaces/checksum-consts.d.ts.map +1 -1
  123. package/src/interfaces/constants.d.ts +21 -6
  124. package/src/interfaces/constants.d.ts.map +1 -1
  125. package/src/interfaces/constants.js +5 -0
  126. package/src/interfaces/constants.js.map +1 -1
  127. package/src/interfaces/ecies-config.d.ts +3 -0
  128. package/src/interfaces/ecies-config.d.ts.map +1 -1
  129. package/src/interfaces/ecies-consts.d.ts +42 -7
  130. package/src/interfaces/ecies-consts.d.ts.map +1 -1
  131. package/src/interfaces/ecies-file-service.d.ts +3 -0
  132. package/src/interfaces/ecies-file-service.d.ts.map +1 -1
  133. package/src/interfaces/guid.d.ts +4 -0
  134. package/src/interfaces/guid.d.ts.map +1 -1
  135. package/src/interfaces/index.d.ts +4 -0
  136. package/src/interfaces/index.d.ts.map +1 -1
  137. package/src/interfaces/index.js +4 -0
  138. package/src/interfaces/index.js.map +1 -1
  139. package/src/interfaces/pbkdf2-config.d.ts +8 -0
  140. package/src/interfaces/pbkdf2-config.d.ts.map +1 -1
  141. package/src/interfaces/pbkdf2-consts.d.ts +7 -3
  142. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -1
  143. package/src/interfaces/pbkdf2-result.d.ts +7 -0
  144. package/src/interfaces/pbkdf2-result.d.ts.map +1 -1
  145. package/src/interfaces/platform-id.d.ts +10 -2
  146. package/src/interfaces/platform-id.d.ts.map +1 -1
  147. package/src/interfaces/platform-id.js +8 -0
  148. package/src/interfaces/platform-id.js.map +1 -1
  149. package/src/interfaces/voting-service.d.ts +5 -6
  150. package/src/interfaces/voting-service.d.ts.map +1 -1
  151. package/src/lib/configuration-provenance-utils.d.ts +5 -1
  152. package/src/lib/configuration-provenance-utils.d.ts.map +1 -1
  153. package/src/lib/configuration-provenance-utils.js +5 -1
  154. package/src/lib/configuration-provenance-utils.js.map +1 -1
  155. package/src/lib/guid.d.ts +47 -29
  156. package/src/lib/guid.d.ts.map +1 -1
  157. package/src/lib/guid.js +127 -104
  158. package/src/lib/guid.js.map +1 -1
  159. package/src/lib/id-providers/guidv4-provider.d.ts +8 -8
  160. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -1
  161. package/src/lib/id-providers/guidv4-provider.js +10 -10
  162. package/src/lib/id-providers/guidv4-provider.js.map +1 -1
  163. package/src/lib/invariants/index.d.ts +3 -0
  164. package/src/lib/invariants/index.d.ts.map +1 -1
  165. package/src/lib/invariants/index.js +3 -0
  166. package/src/lib/invariants/index.js.map +1 -1
  167. package/src/lib/voting/enumerations/audit-event-type.d.ts +3 -0
  168. package/src/lib/voting/enumerations/audit-event-type.d.ts.map +1 -1
  169. package/src/lib/voting/enumerations/audit-event-type.js +3 -0
  170. package/src/lib/voting/enumerations/audit-event-type.js.map +1 -1
  171. package/src/lib/voting/enumerations/event-type.d.ts +3 -0
  172. package/src/lib/voting/enumerations/event-type.d.ts.map +1 -1
  173. package/src/lib/voting/enumerations/event-type.js +3 -0
  174. package/src/lib/voting/enumerations/event-type.js.map +1 -1
  175. package/src/lib/voting/enumerations/index.d.ts +3 -0
  176. package/src/lib/voting/enumerations/index.d.ts.map +1 -1
  177. package/src/lib/voting/enumerations/index.js +3 -0
  178. package/src/lib/voting/enumerations/index.js.map +1 -1
  179. package/src/lib/voting/enumerations/jurisdictional-level.d.ts +3 -0
  180. package/src/lib/voting/enumerations/jurisdictional-level.d.ts.map +1 -1
  181. package/src/lib/voting/enumerations/jurisdictional-level.js +3 -0
  182. package/src/lib/voting/enumerations/jurisdictional-level.js.map +1 -1
  183. package/src/lib/voting/enumerations/security-level.d.ts +3 -0
  184. package/src/lib/voting/enumerations/security-level.d.ts.map +1 -1
  185. package/src/lib/voting/enumerations/security-level.js +3 -0
  186. package/src/lib/voting/enumerations/security-level.js.map +1 -1
  187. package/src/lib/voting/interfaces/aggregated-tally.d.ts +3 -0
  188. package/src/lib/voting/interfaces/aggregated-tally.d.ts.map +1 -1
  189. package/src/lib/voting/interfaces/audit-entry.d.ts +3 -0
  190. package/src/lib/voting/interfaces/audit-entry.d.ts.map +1 -1
  191. package/src/lib/voting/interfaces/audit-log.d.ts +3 -0
  192. package/src/lib/voting/interfaces/audit-log.d.ts.map +1 -1
  193. package/src/lib/voting/interfaces/bulletin-board-entry.d.ts +3 -0
  194. package/src/lib/voting/interfaces/bulletin-board-entry.d.ts.map +1 -1
  195. package/src/lib/voting/interfaces/bulletin-board.d.ts +3 -0
  196. package/src/lib/voting/interfaces/bulletin-board.d.ts.map +1 -1
  197. package/src/lib/voting/interfaces/checkpoint-manager.d.ts +3 -0
  198. package/src/lib/voting/interfaces/checkpoint-manager.d.ts.map +1 -1
  199. package/src/lib/voting/interfaces/checkpoint-metadata.d.ts +3 -0
  200. package/src/lib/voting/interfaces/checkpoint-metadata.d.ts.map +1 -1
  201. package/src/lib/voting/interfaces/event-log-entry.d.ts +3 -0
  202. package/src/lib/voting/interfaces/event-log-entry.d.ts.map +1 -1
  203. package/src/lib/voting/interfaces/event-logger.d.ts +3 -0
  204. package/src/lib/voting/interfaces/event-logger.d.ts.map +1 -1
  205. package/src/lib/voting/interfaces/index.d.ts +3 -0
  206. package/src/lib/voting/interfaces/index.d.ts.map +1 -1
  207. package/src/lib/voting/interfaces/index.js.map +1 -1
  208. package/src/lib/voting/interfaces/jurisdiction-config.d.ts +3 -0
  209. package/src/lib/voting/interfaces/jurisdiction-config.d.ts.map +1 -1
  210. package/src/lib/voting/interfaces/poll-configuration.d.ts +3 -0
  211. package/src/lib/voting/interfaces/poll-configuration.d.ts.map +1 -1
  212. package/src/lib/voting/interfaces/state-snapshot.d.ts +3 -0
  213. package/src/lib/voting/interfaces/state-snapshot.d.ts.map +1 -1
  214. package/src/lib/voting/interfaces/tally-proof.d.ts +3 -0
  215. package/src/lib/voting/interfaces/tally-proof.d.ts.map +1 -1
  216. package/src/lib/voting/interfaces/vote-logger.d.ts +3 -0
  217. package/src/lib/voting/interfaces/vote-logger.d.ts.map +1 -1
  218. package/src/lib/voting/test-voter-pool.d.ts.map +1 -1
  219. package/src/lib/voting/test-voter-pool.js +4 -0
  220. package/src/lib/voting/test-voter-pool.js.map +1 -1
  221. package/src/member.d.ts +198 -9
  222. package/src/member.d.ts.map +1 -1
  223. package/src/member.js +198 -15
  224. package/src/member.js.map +1 -1
  225. package/src/pbkdf2-profiles.d.ts +4 -0
  226. package/src/pbkdf2-profiles.d.ts.map +1 -1
  227. package/src/phone-number.d.ts +12 -0
  228. package/src/phone-number.d.ts.map +1 -1
  229. package/src/phone-number.js +12 -0
  230. package/src/phone-number.js.map +1 -1
  231. package/src/regexes.d.ts +15 -1
  232. package/src/regexes.d.ts.map +1 -1
  233. package/src/regexes.js +16 -2
  234. package/src/regexes.js.map +1 -1
  235. package/src/secure-buffer.d.ts +119 -8
  236. package/src/secure-buffer.d.ts.map +1 -1
  237. package/src/secure-buffer.js +119 -8
  238. package/src/secure-buffer.js.map +1 -1
  239. package/src/secure-string.d.ts +118 -1
  240. package/src/secure-string.d.ts.map +1 -1
  241. package/src/secure-string.js +118 -1
  242. package/src/secure-string.js.map +1 -1
  243. package/src/services/aes-gcm.d.ts.map +1 -1
  244. package/src/services/aes-gcm.js.map +1 -1
  245. package/src/services/chunk-processor.d.ts.map +1 -1
  246. package/src/services/chunk-processor.js +2 -2
  247. package/src/services/chunk-processor.js.map +1 -1
  248. package/src/services/crc.d.ts +80 -2
  249. package/src/services/crc.d.ts.map +1 -1
  250. package/src/services/crc.js +80 -2
  251. package/src/services/crc.js.map +1 -1
  252. package/src/services/ecies/crypto-core.d.ts +2 -1
  253. package/src/services/ecies/crypto-core.d.ts.map +1 -1
  254. package/src/services/ecies/crypto-core.js +4 -1
  255. package/src/services/ecies/crypto-core.js.map +1 -1
  256. package/src/services/ecies/example.d.ts.map +1 -1
  257. package/src/services/ecies/example.js +4 -4
  258. package/src/services/ecies/example.js.map +1 -1
  259. package/src/services/ecies/file.d.ts +4 -0
  260. package/src/services/ecies/file.d.ts.map +1 -1
  261. package/src/services/ecies/file.js +6 -6
  262. package/src/services/ecies/file.js.map +1 -1
  263. package/src/services/ecies/index.d.ts +4 -2
  264. package/src/services/ecies/index.d.ts.map +1 -1
  265. package/src/services/ecies/index.js +4 -2
  266. package/src/services/ecies/index.js.map +1 -1
  267. package/src/services/ecies/integration.d.ts.map +1 -1
  268. package/src/services/ecies/integration.js +10 -4
  269. package/src/services/ecies/integration.js.map +1 -1
  270. package/src/services/ecies/interfaces/decryption-result.d.ts +3 -0
  271. package/src/services/ecies/interfaces/decryption-result.d.ts.map +1 -1
  272. package/src/services/ecies/interfaces/encryption-result.d.ts +3 -0
  273. package/src/services/ecies/interfaces/encryption-result.d.ts.map +1 -1
  274. package/src/services/ecies/interfaces/index.d.ts +3 -0
  275. package/src/services/ecies/interfaces/index.d.ts.map +1 -1
  276. package/src/services/ecies/interfaces/multi-encrypted-message.d.ts +3 -0
  277. package/src/services/ecies/interfaces/multi-encrypted-message.d.ts.map +1 -1
  278. package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts +3 -0
  279. package/src/services/ecies/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -1
  280. package/src/services/ecies/interfaces/multi-recipient.d.ts +3 -0
  281. package/src/services/ecies/interfaces/multi-recipient.d.ts.map +1 -1
  282. package/src/services/ecies/interfaces/simple-keypair.d.ts +3 -0
  283. package/src/services/ecies/interfaces/simple-keypair.d.ts.map +1 -1
  284. package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts +3 -0
  285. package/src/services/ecies/interfaces/single-encrypted-parsed-header.d.ts.map +1 -1
  286. package/src/services/ecies/interfaces/wallet-seed.d.ts +3 -0
  287. package/src/services/ecies/interfaces/wallet-seed.d.ts.map +1 -1
  288. package/src/services/ecies/manual-test.d.ts.map +1 -1
  289. package/src/services/ecies/manual-test.js +7 -7
  290. package/src/services/ecies/manual-test.js.map +1 -1
  291. package/src/services/ecies/multi-recipient.d.ts +1 -1
  292. package/src/services/ecies/multi-recipient.d.ts.map +1 -1
  293. package/src/services/ecies/multi-recipient.js +1 -1
  294. package/src/services/ecies/multi-recipient.js.map +1 -1
  295. package/src/services/ecies/service.d.ts +21 -5
  296. package/src/services/ecies/service.d.ts.map +1 -1
  297. package/src/services/ecies/service.js +34 -18
  298. package/src/services/ecies/service.js.map +1 -1
  299. package/src/services/ecies/single-recipient.d.ts +2 -2
  300. package/src/services/ecies/single-recipient.d.ts.map +1 -1
  301. package/src/services/ecies/single-recipient.js +28 -33
  302. package/src/services/ecies/single-recipient.js.map +1 -1
  303. package/src/services/encryption-stream.d.ts.map +1 -1
  304. package/src/services/encryption-stream.js +1 -1
  305. package/src/services/encryption-stream.js.map +1 -1
  306. package/src/services/index.d.ts +4 -0
  307. package/src/services/index.d.ts.map +1 -1
  308. package/src/services/index.js +4 -0
  309. package/src/services/index.js.map +1 -1
  310. package/src/services/multi-recipient-processor.d.ts +15 -9
  311. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  312. package/src/services/multi-recipient-processor.js +51 -39
  313. package/src/services/multi-recipient-processor.js.map +1 -1
  314. package/src/services/password-login.d.ts +41 -5
  315. package/src/services/password-login.d.ts.map +1 -1
  316. package/src/services/password-login.js +43 -7
  317. package/src/services/password-login.js.map +1 -1
  318. package/src/services/resumable-encryption.d.ts.map +1 -1
  319. package/src/services/resumable-encryption.js +5 -1
  320. package/src/services/resumable-encryption.js.map +1 -1
  321. package/src/test-mocks/index.d.ts +4 -0
  322. package/src/test-mocks/index.d.ts.map +1 -1
  323. package/src/test-mocks/index.js +4 -0
  324. package/src/test-mocks/index.js.map +1 -1
  325. package/src/test-mocks/mock-frontend-member.d.ts +91 -0
  326. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -1
  327. package/src/test-mocks/mock-frontend-member.js +91 -0
  328. package/src/test-mocks/mock-frontend-member.js.map +1 -1
  329. package/src/testing.d.ts +4 -0
  330. package/src/testing.d.ts.map +1 -1
  331. package/src/testing.js +4 -1
  332. package/src/testing.js.map +1 -1
  333. package/src/transforms/checksumTransform.d.ts +17 -0
  334. package/src/transforms/checksumTransform.d.ts.map +1 -1
  335. package/src/transforms/checksumTransform.js +17 -0
  336. package/src/transforms/checksumTransform.js.map +1 -1
  337. package/src/transforms/eciesDecryptTransform.d.ts +19 -0
  338. package/src/transforms/eciesDecryptTransform.d.ts.map +1 -1
  339. package/src/transforms/eciesDecryptTransform.js +21 -2
  340. package/src/transforms/eciesDecryptTransform.js.map +1 -1
  341. package/src/transforms/eciesEncryptTransform.d.ts +20 -0
  342. package/src/transforms/eciesEncryptTransform.d.ts.map +1 -1
  343. package/src/transforms/eciesEncryptTransform.js +23 -3
  344. package/src/transforms/eciesEncryptTransform.js.map +1 -1
  345. package/src/transforms/index.d.ts +4 -0
  346. package/src/transforms/index.d.ts.map +1 -1
  347. package/src/transforms/index.js +4 -0
  348. package/src/transforms/index.js.map +1 -1
  349. package/src/transforms/xorMultipleTransform.d.ts +21 -0
  350. package/src/transforms/xorMultipleTransform.d.ts.map +1 -1
  351. package/src/transforms/xorMultipleTransform.js +21 -0
  352. package/src/transforms/xorMultipleTransform.js.map +1 -1
  353. package/src/transforms/xorTransform.d.ts +13 -0
  354. package/src/transforms/xorTransform.d.ts.map +1 -1
  355. package/src/transforms/xorTransform.js +13 -0
  356. package/src/transforms/xorTransform.js.map +1 -1
  357. package/src/translations/de.d.ts +3 -0
  358. package/src/translations/de.d.ts.map +1 -1
  359. package/src/translations/de.js +3 -0
  360. package/src/translations/de.js.map +1 -1
  361. package/src/translations/en-US.d.ts +3 -0
  362. package/src/translations/en-US.d.ts.map +1 -1
  363. package/src/translations/en-US.js +3 -0
  364. package/src/translations/en-US.js.map +1 -1
  365. package/src/translations/es.d.ts +3 -0
  366. package/src/translations/es.d.ts.map +1 -1
  367. package/src/translations/es.js +3 -0
  368. package/src/translations/es.js.map +1 -1
  369. package/src/translations/fr.d.ts +3 -0
  370. package/src/translations/fr.d.ts.map +1 -1
  371. package/src/translations/fr.js +3 -0
  372. package/src/translations/fr.js.map +1 -1
  373. package/src/translations/ja.d.ts +3 -0
  374. package/src/translations/ja.d.ts.map +1 -1
  375. package/src/translations/ja.js +3 -0
  376. package/src/translations/ja.js.map +1 -1
  377. package/src/translations/uk.d.ts +3 -0
  378. package/src/translations/uk.d.ts.map +1 -1
  379. package/src/translations/uk.js +3 -0
  380. package/src/translations/uk.js.map +1 -1
  381. package/src/translations/zh-cn.d.ts +3 -0
  382. package/src/translations/zh-cn.d.ts.map +1 -1
  383. package/src/translations/zh-cn.js +3 -0
  384. package/src/translations/zh-cn.js.map +1 -1
  385. package/src/typed-configuration.d.ts +2 -2
  386. package/src/typed-configuration.d.ts.map +1 -1
  387. package/src/typed-configuration.js.map +1 -1
  388. package/src/types/deep-partial.d.ts +16 -0
  389. package/src/types/deep-partial.d.ts.map +1 -1
  390. package/src/types/guid-versions.d.ts +5 -9
  391. package/src/types/guid-versions.d.ts.map +1 -1
  392. package/src/types.d.ts +30 -1
  393. package/src/types.d.ts.map +1 -1
  394. package/src/types.js +4 -0
  395. package/src/types.js.map +1 -1
  396. package/src/utils.d.ts +69 -18
  397. package/src/utils.d.ts.map +1 -1
  398. package/src/utils.js +70 -19
  399. package/src/utils.js.map +1 -1
@@ -1,13 +1,26 @@
1
1
  /**
2
- * A secure string buffer is a buffer whose intent is to prevent the raw password from being stored in memory.
3
- * The buffer is encrypted with a key derived from a random ID.
4
- * The ID is stored in the clear, but the buffer is encrypted with a key derived from the ID.
5
- * This allows the buffer to be decrypted, but only if the ID and salt are known.
2
+ * A secure buffer that prevents raw sensitive data from being stored in memory.
3
+ * The buffer is obfuscated with a key derived from a random ID.
6
4
  *
7
- * Supports explicit resource management (TC39 proposal) for automatic disposal:
5
+ * Features:
6
+ * - XOR obfuscation of sensitive data
7
+ * - Automatic disposal support (TC39 explicit resource management)
8
+ * - Checksum validation for data integrity
9
+ * - Stack trace capture for debugging disposed access
10
+ *
11
+ * @example
8
12
  * ```typescript
13
+ * // Using explicit resource management
9
14
  * using buffer = new SecureBuffer(sensitiveData);
10
15
  * // buffer automatically disposed when leaving scope
16
+ *
17
+ * // Manual disposal
18
+ * const buffer = new SecureBuffer(sensitiveData);
19
+ * try {
20
+ * const data = buffer.value;
21
+ * } finally {
22
+ * buffer.dispose();
23
+ * }
11
24
  * ```
12
25
  */
13
26
  export declare class SecureBuffer implements Disposable {
@@ -19,7 +32,15 @@ export declare class SecureBuffer implements Disposable {
19
32
  private readonly _key;
20
33
  private readonly _obfuscatedChecksum;
21
34
  private _disposedAt?;
35
+ /**
36
+ * Creates a new SecureBuffer instance.
37
+ * @param data Optional data to secure. If undefined or empty, creates an empty buffer.
38
+ */
22
39
  constructor(data?: Uint8Array);
40
+ /**
41
+ * Disposes the secure buffer, zeroing out all sensitive data.
42
+ * Captures a stack trace for debugging if the buffer is accessed after disposal.
43
+ */
23
44
  dispose(): void;
24
45
  /**
25
46
  * Symbol.dispose implementation for explicit resource management
@@ -27,34 +48,124 @@ export declare class SecureBuffer implements Disposable {
27
48
  */
28
49
  [Symbol.dispose](): void;
29
50
  /**
30
- * Factory method for backward compatibility that uses the default ObjectIdProvider
51
+ * Factory method for backward compatibility that uses the default ObjectIdProvider.
31
52
  * @param data Optional data to secure
32
53
  * @returns A new SecureBuffer instance using the default ID provider
33
54
  */
34
55
  static create(data?: Uint8Array): SecureBuffer;
35
56
  /**
36
- * Static factory method that creates a SecureBuffer for a symmetric key
37
- * Useful for managing encryption keys securely
57
+ * Static factory method that creates a SecureBuffer for a symmetric key.
58
+ * Useful for managing encryption keys securely.
59
+ * @param sizeBytes Size of the key in bytes (default: 32)
60
+ * @returns A new SecureBuffer instance for the key
38
61
  */
39
62
  static allocateKey(sizeBytes?: number): SecureBuffer;
63
+ /**
64
+ * Asserts that the buffer has not been disposed.
65
+ * @throws {DisposedError} If the buffer has been disposed
66
+ */
40
67
  private assertNotDisposed;
68
+ /**
69
+ * Creates a SecureBuffer from a string.
70
+ * @param data The string to secure
71
+ * @returns A new SecureBuffer containing the UTF-8 encoded string
72
+ */
41
73
  static fromString(data: string): SecureBuffer;
74
+ /**
75
+ * Gets the stack trace from when the buffer was disposed.
76
+ * Useful for debugging access-after-dispose errors.
77
+ */
42
78
  get disposedAtStack(): string | undefined;
79
+ /**
80
+ * Gets the buffer's unique ID as a string.
81
+ * @throws {DisposedError} If the buffer has been disposed
82
+ */
43
83
  get id(): string;
84
+ /**
85
+ * Gets the buffer's unique ID as a Uint8Array.
86
+ * @throws {DisposedError} If the buffer has been disposed
87
+ */
44
88
  get idUint8Array(): Uint8Array;
89
+ /**
90
+ * Gets the original length of the secured data in bytes.
91
+ * @throws {DisposedError} If the buffer has been disposed
92
+ */
45
93
  get originalLength(): number;
94
+ /**
95
+ * Gets the decrypted value as a Uint8Array.
96
+ * Validates the checksum to ensure data integrity.
97
+ * @throws {DisposedError} If the buffer has been disposed
98
+ * @throws {SecureStorageError} If decryption fails or checksum is invalid
99
+ */
46
100
  get value(): Uint8Array;
101
+ /**
102
+ * Gets the decrypted value as a UTF-8 string.
103
+ * @throws {DisposedError} If the buffer has been disposed
104
+ */
47
105
  get valueAsString(): string;
106
+ /**
107
+ * Gets the decrypted value as a hexadecimal string.
108
+ * @throws {DisposedError} If the buffer has been disposed
109
+ */
48
110
  get valueAsHexString(): string;
111
+ /**
112
+ * Gets the decrypted value as a Base64 string.
113
+ * @throws {DisposedError} If the buffer has been disposed
114
+ */
49
115
  get valueAsBase64String(): string;
116
+ /**
117
+ * Gets the checksum of the secured data.
118
+ * @throws {DisposedError} If the buffer has been disposed
119
+ */
50
120
  get checksum(): string;
121
+ /**
122
+ * Generates a simple checksum for data validation.
123
+ * @param data The data to checksum (string or Uint8Array)
124
+ * @returns Hexadecimal checksum string
125
+ */
51
126
  private generateSimpleChecksum;
127
+ /**
128
+ * Creates an obfuscated checksum for the data.
129
+ * @param data The data to checksum
130
+ * @returns Obfuscated checksum as Uint8Array
131
+ */
52
132
  private createSimpleObfuscatedChecksum;
133
+ /**
134
+ * Validates a checksum against data using timing-safe comparison.
135
+ * @param data The data to validate
136
+ * @param checksum The expected checksum
137
+ * @returns True if checksum is valid
138
+ */
53
139
  private validateSimpleChecksum;
140
+ /**
141
+ * Performs timing-safe equality comparison of two byte arrays.
142
+ * @param a First array
143
+ * @param b Second array
144
+ * @returns True if arrays are equal
145
+ */
54
146
  private timingSafeEqual;
147
+ /**
148
+ * Validates the obfuscated checksum against data.
149
+ * @param data The data to validate
150
+ * @returns True if checksum is valid
151
+ */
55
152
  private validateObfuscatedChecksum;
153
+ /**
154
+ * Obfuscates data using XOR with the key.
155
+ * @param data The data to obfuscate
156
+ * @returns Obfuscated data
157
+ */
56
158
  private obfuscateData;
159
+ /**
160
+ * Deobfuscates data using XOR with the key.
161
+ * @param data The data to deobfuscate
162
+ * @returns Deobfuscated data
163
+ */
57
164
  private deobfuscateData;
165
+ /**
166
+ * Gets the length of the secured data in bytes.
167
+ * @throws {DisposedError} If the buffer has been disposed
168
+ */
58
169
  get length(): number;
59
170
  }
60
171
  //# sourceMappingURL=secure-buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;gBAEjB,IAAI,CAAC,EAAE,UAAU;IAiBtB,OAAO,IAAI,IAAI;IAYtB;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY;IAI9C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,GAAE,MAAW,GAAG,YAAY;IAMxD,OAAO,CAAC,iBAAiB;WAWX,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAGpD,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD,IAAW,KAAK,IAAI,UAAU,CA4B7B;IACD,IAAW,aAAa,IAAI,MAAM,CAGjC;IACD,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,eAAe;IAGvB,IAAW,MAAM,IAAI,MAAM,CAG1B;CACF"}
1
+ {"version":3,"file":"secure-buffer.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;IAE7B;;;OAGG;gBACS,IAAI,CAAC,EAAE,UAAU;IAiB7B;;;OAGG;IACI,OAAO,IAAI,IAAI;IAYtB;;;OAGG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;IAIxB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY;IAI9C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,GAAE,MAAW,GAAG,YAAY;IAMxD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;OAIG;WACW,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAGpD;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD;;;OAGG;IACH,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD;;;OAGG;IACH,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD;;;;;OAKG;IACH,IAAW,KAAK,IAAI,UAAU,CA4B7B;IACD;;;OAGG;IACH,IAAW,aAAa,IAAI,MAAM,CAGjC;IACD;;;OAGG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;IAOtC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAGrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAGvB;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAG1B;CACF"}
@@ -8,15 +8,28 @@ const objectid_provider_1 = require("./lib/id-providers/objectid-provider");
8
8
  const xor_1 = require("./services/xor");
9
9
  const utils_1 = require("./utils");
10
10
  /**
11
- * A secure string buffer is a buffer whose intent is to prevent the raw password from being stored in memory.
12
- * The buffer is encrypted with a key derived from a random ID.
13
- * The ID is stored in the clear, but the buffer is encrypted with a key derived from the ID.
14
- * This allows the buffer to be decrypted, but only if the ID and salt are known.
11
+ * A secure buffer that prevents raw sensitive data from being stored in memory.
12
+ * The buffer is obfuscated with a key derived from a random ID.
15
13
  *
16
- * Supports explicit resource management (TC39 proposal) for automatic disposal:
14
+ * Features:
15
+ * - XOR obfuscation of sensitive data
16
+ * - Automatic disposal support (TC39 explicit resource management)
17
+ * - Checksum validation for data integrity
18
+ * - Stack trace capture for debugging disposed access
19
+ *
20
+ * @example
17
21
  * ```typescript
22
+ * // Using explicit resource management
18
23
  * using buffer = new SecureBuffer(sensitiveData);
19
24
  * // buffer automatically disposed when leaving scope
25
+ *
26
+ * // Manual disposal
27
+ * const buffer = new SecureBuffer(sensitiveData);
28
+ * try {
29
+ * const data = buffer.value;
30
+ * } finally {
31
+ * buffer.dispose();
32
+ * }
20
33
  * ```
21
34
  */
22
35
  class SecureBuffer {
@@ -28,6 +41,10 @@ class SecureBuffer {
28
41
  _key;
29
42
  _obfuscatedChecksum;
30
43
  _disposedAt;
44
+ /**
45
+ * Creates a new SecureBuffer instance.
46
+ * @param data Optional data to secure. If undefined or empty, creates an empty buffer.
47
+ */
31
48
  constructor(data) {
32
49
  this._idProvider = new objectid_provider_1.ObjectIdProvider();
33
50
  this._id = this._idProvider.generate();
@@ -45,6 +62,10 @@ class SecureBuffer {
45
62
  // Create a simple checksum without crypto for synchronous operation
46
63
  this._obfuscatedChecksum = this.createSimpleObfuscatedChecksum(data);
47
64
  }
65
+ /**
66
+ * Disposes the secure buffer, zeroing out all sensitive data.
67
+ * Captures a stack trace for debugging if the buffer is accessed after disposal.
68
+ */
48
69
  dispose() {
49
70
  const err = new disposed_1.DisposedError();
50
71
  if (typeof Error.captureStackTrace === 'function') {
@@ -64,7 +85,7 @@ class SecureBuffer {
64
85
  this.dispose();
65
86
  }
66
87
  /**
67
- * Factory method for backward compatibility that uses the default ObjectIdProvider
88
+ * Factory method for backward compatibility that uses the default ObjectIdProvider.
68
89
  * @param data Optional data to secure
69
90
  * @returns A new SecureBuffer instance using the default ID provider
70
91
  */
@@ -72,14 +93,20 @@ class SecureBuffer {
72
93
  return new SecureBuffer(data);
73
94
  }
74
95
  /**
75
- * Static factory method that creates a SecureBuffer for a symmetric key
76
- * Useful for managing encryption keys securely
96
+ * Static factory method that creates a SecureBuffer for a symmetric key.
97
+ * Useful for managing encryption keys securely.
98
+ * @param sizeBytes Size of the key in bytes (default: 32)
99
+ * @returns A new SecureBuffer instance for the key
77
100
  */
78
101
  static allocateKey(sizeBytes = 32) {
79
102
  const keyData = new Uint8Array(sizeBytes);
80
103
  // Will be filled by crypto.getRandomValues by caller
81
104
  return new SecureBuffer(keyData);
82
105
  }
106
+ /**
107
+ * Asserts that the buffer has not been disposed.
108
+ * @throws {DisposedError} If the buffer has been disposed
109
+ */
83
110
  assertNotDisposed() {
84
111
  if (this._disposed) {
85
112
  const e = new disposed_1.DisposedError();
@@ -92,24 +119,51 @@ class SecureBuffer {
92
119
  throw e;
93
120
  }
94
121
  }
122
+ /**
123
+ * Creates a SecureBuffer from a string.
124
+ * @param data The string to secure
125
+ * @returns A new SecureBuffer containing the UTF-8 encoded string
126
+ */
95
127
  static fromString(data) {
96
128
  return new SecureBuffer(new TextEncoder().encode(data));
97
129
  }
130
+ /**
131
+ * Gets the stack trace from when the buffer was disposed.
132
+ * Useful for debugging access-after-dispose errors.
133
+ */
98
134
  get disposedAtStack() {
99
135
  return this._disposedAt;
100
136
  }
137
+ /**
138
+ * Gets the buffer's unique ID as a string.
139
+ * @throws {DisposedError} If the buffer has been disposed
140
+ */
101
141
  get id() {
102
142
  this.assertNotDisposed();
103
143
  return this._idProvider.serialize(this._id);
104
144
  }
145
+ /**
146
+ * Gets the buffer's unique ID as a Uint8Array.
147
+ * @throws {DisposedError} If the buffer has been disposed
148
+ */
105
149
  get idUint8Array() {
106
150
  this.assertNotDisposed();
107
151
  return this._id;
108
152
  }
153
+ /**
154
+ * Gets the original length of the secured data in bytes.
155
+ * @throws {DisposedError} If the buffer has been disposed
156
+ */
109
157
  get originalLength() {
110
158
  this.assertNotDisposed();
111
159
  return this._length;
112
160
  }
161
+ /**
162
+ * Gets the decrypted value as a Uint8Array.
163
+ * Validates the checksum to ensure data integrity.
164
+ * @throws {DisposedError} If the buffer has been disposed
165
+ * @throws {SecureStorageError} If decryption fails or checksum is invalid
166
+ */
113
167
  get value() {
114
168
  this.assertNotDisposed();
115
169
  if (this._length === 0) {
@@ -134,23 +188,44 @@ class SecureBuffer {
134
188
  throw new secure_storage_1.SecureStorageError(secure_storage_error_type_1.SecureStorageErrorType.DecryptedValueChecksumMismatch);
135
189
  }
136
190
  }
191
+ /**
192
+ * Gets the decrypted value as a UTF-8 string.
193
+ * @throws {DisposedError} If the buffer has been disposed
194
+ */
137
195
  get valueAsString() {
138
196
  this.assertNotDisposed();
139
197
  return new TextDecoder().decode(this.value);
140
198
  }
199
+ /**
200
+ * Gets the decrypted value as a hexadecimal string.
201
+ * @throws {DisposedError} If the buffer has been disposed
202
+ */
141
203
  get valueAsHexString() {
142
204
  this.assertNotDisposed();
143
205
  return (0, utils_1.uint8ArrayToHex)(this.value);
144
206
  }
207
+ /**
208
+ * Gets the decrypted value as a Base64 string.
209
+ * @throws {DisposedError} If the buffer has been disposed
210
+ */
145
211
  get valueAsBase64String() {
146
212
  this.assertNotDisposed();
147
213
  return btoa(String.fromCharCode(...this.value));
148
214
  }
215
+ /**
216
+ * Gets the checksum of the secured data.
217
+ * @throws {DisposedError} If the buffer has been disposed
218
+ */
149
219
  get checksum() {
150
220
  this.assertNotDisposed();
151
221
  const deobfuscatedChecksum = new TextDecoder().decode(this.deobfuscateData(this._obfuscatedChecksum));
152
222
  return deobfuscatedChecksum;
153
223
  }
224
+ /**
225
+ * Generates a simple checksum for data validation.
226
+ * @param data The data to checksum (string or Uint8Array)
227
+ * @returns Hexadecimal checksum string
228
+ */
154
229
  generateSimpleChecksum(data) {
155
230
  const dataBytes = typeof data === 'string' ? new TextEncoder().encode(data) : data;
156
231
  let hash = 0;
@@ -159,17 +234,34 @@ class SecureBuffer {
159
234
  }
160
235
  return hash.toString(16);
161
236
  }
237
+ /**
238
+ * Creates an obfuscated checksum for the data.
239
+ * @param data The data to checksum
240
+ * @returns Obfuscated checksum as Uint8Array
241
+ */
162
242
  createSimpleObfuscatedChecksum(data) {
163
243
  const checksum = this.generateSimpleChecksum(data);
164
244
  const result = this.obfuscateData(new TextEncoder().encode(checksum));
165
245
  return result;
166
246
  }
247
+ /**
248
+ * Validates a checksum against data using timing-safe comparison.
249
+ * @param data The data to validate
250
+ * @param checksum The expected checksum
251
+ * @returns True if checksum is valid
252
+ */
167
253
  validateSimpleChecksum(data, checksum) {
168
254
  const generatedChecksum = this.generateSimpleChecksum(data);
169
255
  const a = new TextEncoder().encode(generatedChecksum);
170
256
  const b = new TextEncoder().encode(checksum);
171
257
  return this.timingSafeEqual(a, b);
172
258
  }
259
+ /**
260
+ * Performs timing-safe equality comparison of two byte arrays.
261
+ * @param a First array
262
+ * @param b Second array
263
+ * @returns True if arrays are equal
264
+ */
173
265
  timingSafeEqual(a, b) {
174
266
  if (a.length !== b.length) {
175
267
  return false;
@@ -180,16 +272,35 @@ class SecureBuffer {
180
272
  }
181
273
  return result === 0;
182
274
  }
275
+ /**
276
+ * Validates the obfuscated checksum against data.
277
+ * @param data The data to validate
278
+ * @returns True if checksum is valid
279
+ */
183
280
  validateObfuscatedChecksum(data) {
184
281
  const deobfuscatedChecksum = new TextDecoder().decode(this.deobfuscateData(this._obfuscatedChecksum));
185
282
  return this.validateSimpleChecksum(data, deobfuscatedChecksum);
186
283
  }
284
+ /**
285
+ * Obfuscates data using XOR with the key.
286
+ * @param data The data to obfuscate
287
+ * @returns Obfuscated data
288
+ */
187
289
  obfuscateData(data) {
188
290
  return xor_1.XorService.xor(data, this._key);
189
291
  }
292
+ /**
293
+ * Deobfuscates data using XOR with the key.
294
+ * @param data The data to deobfuscate
295
+ * @returns Deobfuscated data
296
+ */
190
297
  deobfuscateData(data) {
191
298
  return xor_1.XorService.xor(data, this._key);
192
299
  }
300
+ /**
301
+ * Gets the length of the secured data in bytes.
302
+ * @throws {DisposedError} If the buffer has been disposed
303
+ */
193
304
  get length() {
194
305
  this.assertNotDisposed();
195
306
  return this._length;
@@ -1 +1 @@
1
- {"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secure-buffer.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-buffer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,22 @@
1
1
  import type { ObjectId } from 'bson';
2
2
  import type { IIdProvider } from './interfaces/id-provider';
3
3
  /**
4
- * A secure string buffer is a buffer whose intent is to prevent the raw password from being stored in memory.
4
+ * A secure string buffer that prevents raw sensitive data from being stored in memory.
5
+ * Similar to SecureBuffer but specifically designed for string data.
6
+ *
7
+ * Features:
8
+ * - XOR obfuscation of sensitive string data
9
+ * - Null value support
10
+ * - Checksum validation for data integrity
11
+ * - Stack trace capture for debugging disposed access
12
+ * - Configurable ID provider
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const securePassword = new SecureString('myPassword123');
17
+ * const password = securePassword.value; // Retrieves the original string
18
+ * securePassword.dispose(); // Zeroes out sensitive data
19
+ * ```
5
20
  */
6
21
  export declare class SecureString {
7
22
  private _disposed;
@@ -13,6 +28,11 @@ export declare class SecureString {
13
28
  private readonly _key;
14
29
  private readonly _obfuscatedChecksum;
15
30
  private _disposedAt?;
31
+ /**
32
+ * Creates a new SecureString instance.
33
+ * @param data Optional data to secure (string, Uint8Array, or null)
34
+ * @param idProvider ID provider for generating unique IDs (defaults to ObjectIdProvider)
35
+ */
16
36
  constructor(data?: string | Uint8Array | null, idProvider?: IIdProvider<ObjectId>);
17
37
  /**
18
38
  * Factory method for backward compatibility that uses the default ObjectIdProvider
@@ -20,28 +40,125 @@ export declare class SecureString {
20
40
  * @returns A new SecureString instance using the default ID provider
21
41
  */
22
42
  static create(data?: string | Uint8Array | null): SecureString;
43
+ /**
44
+ * Asserts that the string has not been disposed.
45
+ * @throws {DisposedError} If the string has been disposed
46
+ */
23
47
  private assertNotDisposed;
48
+ /**
49
+ * Disposes the secure string, zeroing out all sensitive data.
50
+ * Captures a stack trace for debugging if the string is accessed after disposal.
51
+ */
24
52
  dispose(): void;
53
+ /**
54
+ * Gets the stack trace from when the string was disposed.
55
+ * Useful for debugging access-after-dispose errors.
56
+ */
25
57
  get disposedAtStack(): string | undefined;
58
+ /**
59
+ * Gets the string's unique ID as a string.
60
+ * @throws {DisposedError} If the string has been disposed
61
+ */
26
62
  get id(): string;
63
+ /**
64
+ * Gets the string's unique ID as a Uint8Array.
65
+ * @throws {DisposedError} If the string has been disposed
66
+ */
27
67
  get idUint8Array(): Uint8Array;
68
+ /**
69
+ * Gets the original length of the secured data in bytes.
70
+ * @throws {DisposedError} If the string has been disposed
71
+ */
28
72
  get originalLength(): number;
73
+ /**
74
+ * Gets the decrypted value as a Uint8Array.
75
+ * Validates the checksum to ensure data integrity.
76
+ * @throws {DisposedError} If the string has been disposed
77
+ * @throws {SecureStorageError} If decryption fails or checksum is invalid
78
+ */
29
79
  get valueAsUint8Array(): Uint8Array;
80
+ /**
81
+ * Gets the decrypted value as a string, or null if the value is null.
82
+ * @throws {DisposedError} If the string has been disposed
83
+ */
30
84
  get value(): string | null;
85
+ /**
86
+ * Gets the decrypted value as a string, throwing if the value is null.
87
+ * @throws {DisposedError} If the string has been disposed
88
+ * @throws {SecureStorageError} If the value is null
89
+ */
31
90
  get notNullValue(): string;
91
+ /**
92
+ * Gets the decrypted value as a hexadecimal string.
93
+ * @throws {DisposedError} If the string has been disposed
94
+ */
32
95
  get valueAsHexString(): string;
96
+ /**
97
+ * Gets the decrypted value as a Base64 string.
98
+ * @throws {DisposedError} If the string has been disposed
99
+ */
33
100
  get valueAsBase64String(): string;
101
+ /**
102
+ * Checks if the string has a non-null, non-empty value.
103
+ * @throws {DisposedError} If the string has been disposed
104
+ */
34
105
  get hasValue(): boolean;
106
+ /**
107
+ * Gets the checksum of the secured data.
108
+ * @throws {DisposedError} If the string has been disposed
109
+ */
35
110
  get checksum(): string;
111
+ /**
112
+ * Gets the length of the secured data in bytes.
113
+ * @throws {DisposedError} If the string has been disposed
114
+ */
36
115
  get length(): number;
116
+ /**
117
+ * Generates a SHA-256 checksum for data validation (async).
118
+ * @param data The data to checksum (string or Uint8Array)
119
+ * @returns Promise resolving to hexadecimal checksum string
120
+ */
37
121
  private generateChecksum;
122
+ /**
123
+ * Creates a simple checksum for data validation (synchronous).
124
+ * @param data The data to checksum
125
+ * @returns Hexadecimal checksum string
126
+ */
38
127
  private createSimpleChecksum;
128
+ /**
129
+ * Creates an obfuscated checksum for the data (synchronous).
130
+ * @param data The data to checksum
131
+ * @returns Obfuscated checksum as Uint8Array
132
+ */
39
133
  private createSimpleObfuscatedChecksum;
40
134
  private __createObfuscatedChecksum;
135
+ /**
136
+ * Validates a checksum against data using timing-safe comparison (async).
137
+ * @param data The data to validate
138
+ * @param checksum The expected checksum
139
+ * @returns Promise resolving to true if checksum is valid
140
+ */
41
141
  private validateChecksum;
142
+ /**
143
+ * Performs timing-safe equality comparison of two byte arrays.
144
+ * Prevents timing attacks by always comparing all bytes.
145
+ * @param a First array
146
+ * @param b Second array
147
+ * @returns True if arrays are equal
148
+ */
42
149
  private timingSafeEqual;
43
150
  private __validateObfuscatedChecksum;
151
+ /**
152
+ * Obfuscates data using XOR with the key.
153
+ * @param data The data to obfuscate
154
+ * @returns Obfuscated data
155
+ */
44
156
  private obfuscateData;
157
+ /**
158
+ * Deobfuscates data using XOR with the key.
159
+ * @param data The data to deobfuscate
160
+ * @returns Deobfuscated data
161
+ */
45
162
  private deobfuscateData;
46
163
  }
47
164
  //# sourceMappingURL=secure-string.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAU5D;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;gBAE3B,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,EACjC,UAAU,GAAE,WAAW,CAAC,QAAQ,CAAuB;IA0BzD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,YAAY;IAI9D,OAAO,CAAC,iBAAiB;IAWlB,OAAO,IAAI,IAAI;IAWtB,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD,IAAW,iBAAiB,IAAI,UAAU,CAsCzC;IACD,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAMhC;IACD,IAAW,YAAY,IAAI,MAAM,CAMhC;IACD,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD,IAAW,QAAQ,IAAI,OAAO,CAG7B;IACD,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD,IAAW,MAAM,IAAI,MAAM,CAG1B;YACa,gBAAgB;IAS9B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,8BAA8B;YASxB,0BAA0B;YAO1B,gBAAgB;IAQ9B,OAAO,CAAC,eAAe;YAUT,4BAA4B;IAQ1C,OAAO,CAAC,aAAa;IAGrB,OAAO,CAAC,eAAe;CAGxB"}
1
+ {"version":3,"file":"secure-string.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/secure-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAU5D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAa;IACjD,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B;;;;OAIG;gBAED,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,EACjC,UAAU,GAAE,WAAW,CAAC,QAAQ,CAAuB;IA0BzD;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,YAAY;IAI9D;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACI,OAAO,IAAI,IAAI;IAWtB;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,GAAG,SAAS,CAE/C;IACD;;;OAGG;IACH,IAAW,EAAE,IAAI,MAAM,CAGtB;IACD;;;OAGG;IACH,IAAW,YAAY,IAAI,UAAU,CAGpC;IACD;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAGlC;IACD;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,UAAU,CAsCzC;IACD;;;OAGG;IACH,IAAW,KAAK,IAAI,MAAM,GAAG,IAAI,CAMhC;IACD;;;;OAIG;IACH,IAAW,YAAY,IAAI,MAAM,CAMhC;IACD;;;OAGG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAGpC;IACD;;;OAGG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAGvC;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,OAAO,CAG7B;IACD;;;OAGG;IACH,IAAW,QAAQ,IAAI,MAAM,CAM5B;IACD;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAG1B;IACD;;;;OAIG;YACW,gBAAgB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;OAIG;IACH,OAAO,CAAC,8BAA8B;YASxB,0BAA0B;IAOxC;;;;;OAKG;YACW,gBAAgB;IAQ9B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;YAUT,4BAA4B;IAQ1C;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAGrB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAGxB"}