@zudojs/crypto 0.1.0 → 1.0.0

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 (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -14
  3. package/dist/compare/compare.helper.d.ts +10 -2
  4. package/dist/compare/compare.helper.js +22 -6
  5. package/dist/cryptoCipher/cryptoCipher.core.d.ts +11 -1
  6. package/dist/cryptoCipher/cryptoCipher.core.js +19 -3
  7. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts +7 -2
  8. package/dist/cryptoCipher/cryptoCipher.envelope.js +33 -14
  9. package/dist/cryptoCipher/cryptoCipher.string.d.ts +2 -1
  10. package/dist/cryptoCipher/cryptoCipher.string.js +2 -2
  11. package/dist/cryptoConstants/cryptoConstants.guard.d.ts +9 -0
  12. package/dist/cryptoConstants/cryptoConstants.guard.js +16 -1
  13. package/dist/cryptoConstants/cryptoConstants.security.d.ts +34 -1
  14. package/dist/cryptoConstants/cryptoConstants.security.js +34 -1
  15. package/dist/cryptoConstants/cryptoConstants.token.d.ts +2 -0
  16. package/dist/cryptoConstants/cryptoConstants.token.js +2 -0
  17. package/dist/cryptoConstants/cryptoConstants.type.d.ts +36 -14
  18. package/dist/cryptoConstants/cryptoConstants.type.js +36 -14
  19. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts +4 -1
  20. package/dist/cryptoEncoding/cryptoEncoding.compare.js +11 -4
  21. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts +22 -0
  22. package/dist/cryptoEncoding/cryptoEncoding.core.js +41 -3
  23. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts +10 -2
  24. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js +24 -16
  25. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts +9 -1
  26. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js +23 -20
  27. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts +9 -2
  28. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js +17 -11
  29. package/dist/cryptoErrors/cryptoErrors.helper.d.ts +30 -0
  30. package/dist/cryptoErrors/cryptoErrors.helper.js +72 -0
  31. package/dist/cryptoFactory/cryptoFactory.core.d.ts +37 -6
  32. package/dist/cryptoFactory/cryptoFactory.core.js +56 -30
  33. package/dist/cryptoFactory/cryptoFactory.password.d.ts +4 -3
  34. package/dist/cryptoFactory/cryptoFactory.password.js +4 -4
  35. package/dist/cryptoFactory/cryptoFactory.token.d.ts +9 -8
  36. package/dist/cryptoFactory/cryptoFactory.token.js +16 -15
  37. package/dist/cryptoHash/cryptoHash.codec.d.ts +2 -0
  38. package/dist/cryptoHash/cryptoHash.codec.js +12 -12
  39. package/dist/cryptoHash/cryptoHash.compare.d.ts +3 -1
  40. package/dist/cryptoHash/cryptoHash.compare.js +5 -9
  41. package/dist/cryptoHash/cryptoHash.core.d.ts +6 -2
  42. package/dist/cryptoHash/cryptoHash.core.js +9 -2
  43. package/dist/cryptoHash/cryptoHmac.core.d.ts +8 -5
  44. package/dist/cryptoHash/cryptoHmac.core.js +22 -9
  45. package/dist/cryptoKey/cryptoKey.factory.d.ts +29 -2
  46. package/dist/cryptoKey/cryptoKey.factory.js +82 -18
  47. package/dist/cryptoKey/cryptoKey.utils.d.ts +5 -3
  48. package/dist/cryptoKey/cryptoKey.utils.js +5 -3
  49. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts +7 -1
  50. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js +40 -15
  51. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts +2 -1
  52. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js +2 -3
  53. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts +5 -1
  54. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts +2 -2
  55. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +16 -6
  56. package/dist/cryptoPassword/cryptoPassword.codec.d.ts +15 -1
  57. package/dist/cryptoPassword/cryptoPassword.codec.js +127 -56
  58. package/dist/cryptoPassword/cryptoPassword.core.d.ts +17 -3
  59. package/dist/cryptoPassword/cryptoPassword.core.js +29 -21
  60. package/dist/cryptoPassword/cryptoPassword.helper.js +6 -5
  61. package/dist/cryptoPassword/cryptoPassword.type.d.ts +33 -5
  62. package/dist/cryptoPassword/cryptoPassword.validate.d.ts +14 -3
  63. package/dist/cryptoPassword/cryptoPassword.validate.js +51 -20
  64. package/dist/cryptoProvider/cryptoProvider.default.d.ts +18 -0
  65. package/dist/cryptoProvider/cryptoProvider.default.js +31 -0
  66. package/dist/cryptoProvider/cryptoProvider.interface.d.ts +9 -34
  67. package/dist/cryptoProvider/cryptoProvider.type.d.ts +32 -3
  68. package/dist/cryptoProvider/cryptoProvider.type.js +40 -1
  69. package/dist/cryptoProvider/index.d.ts +5 -2
  70. package/dist/cryptoProvider/index.js +2 -0
  71. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts +11 -6
  72. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts +39 -3
  73. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts +5 -5
  74. package/dist/cryptoProvider/types/index.d.ts +1 -1
  75. package/dist/cryptoRandom/cryptoRandom.choice.d.ts +6 -3
  76. package/dist/cryptoRandom/cryptoRandom.choice.js +10 -6
  77. package/dist/cryptoRandom/cryptoRandom.core.d.ts +8 -5
  78. package/dist/cryptoRandom/cryptoRandom.core.js +8 -7
  79. package/dist/cryptoRandom/cryptoRandom.string.d.ts +11 -9
  80. package/dist/cryptoRandom/cryptoRandom.string.js +28 -29
  81. package/dist/cryptoService/cryptoService.core.d.ts +47 -9
  82. package/dist/cryptoService/cryptoService.core.js +65 -33
  83. package/dist/cryptoService/cryptoService.derivation.d.ts +3 -3
  84. package/dist/cryptoService/cryptoService.derivation.js +8 -6
  85. package/dist/cryptoService/cryptoService.encoding.js +6 -5
  86. package/dist/cryptoService/index.d.ts +1 -5
  87. package/dist/cryptoService/index.js +1 -5
  88. package/dist/cryptoService/operations/cryptoService.cipher.d.ts +3 -2
  89. package/dist/cryptoService/operations/cryptoService.cipher.js +13 -9
  90. package/dist/cryptoService/operations/cryptoService.hash.d.ts +3 -2
  91. package/dist/cryptoService/operations/cryptoService.hash.js +7 -8
  92. package/dist/cryptoService/operations/cryptoService.password.d.ts +7 -2
  93. package/dist/cryptoService/operations/cryptoService.password.js +20 -9
  94. package/dist/cryptoService/operations/cryptoService.token.d.ts +9 -4
  95. package/dist/cryptoService/operations/cryptoService.token.js +31 -17
  96. package/dist/cryptoSignature/cryptoSignature.core.d.ts +10 -2
  97. package/dist/cryptoSignature/cryptoSignature.core.js +7 -3
  98. package/dist/cryptoToken/cryptoToken.core.d.ts +15 -9
  99. package/dist/cryptoToken/cryptoToken.core.js +63 -38
  100. package/dist/cryptoToken/cryptoToken.hash.d.ts +9 -7
  101. package/dist/cryptoToken/cryptoToken.hash.js +19 -43
  102. package/dist/cryptoUtils/cryptoUtils.compare.d.ts +3 -1
  103. package/dist/cryptoUtils/cryptoUtils.compare.js +5 -14
  104. package/dist/cryptoUtils/cryptoUtils.number.d.ts +3 -0
  105. package/dist/cryptoUtils/cryptoUtils.number.js +12 -6
  106. package/dist/cryptoUtils/cryptoUtils.validation.d.ts +2 -2
  107. package/dist/cryptoUtils/cryptoUtils.validation.js +6 -8
  108. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts +4 -4
  109. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js +5 -23
  110. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts +4 -4
  111. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js +5 -32
  112. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts +4 -4
  113. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js +5 -20
  114. package/dist/index.d.ts +1 -2
  115. package/dist/index.js +1 -2
  116. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts +6 -29
  117. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js +0 -1
  118. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts +9 -4
  119. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js +25 -43
  120. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts +7 -0
  121. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js +89 -30
  122. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts +17 -10
  123. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js +112 -72
  124. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts +3 -12
  125. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js +74 -25
  126. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js +7 -2
  127. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts +6 -0
  128. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js +18 -18
  129. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts +10 -12
  130. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js +75 -20
  131. package/dist/node/signing/signing.conversion.d.ts +13 -3
  132. package/dist/node/signing/signing.conversion.js +35 -15
  133. package/dist/node/signing/signing.core.d.ts +2 -1
  134. package/dist/node/signing/signing.core.js +2 -3
  135. package/dist/node/signing/signing.utils.d.ts +10 -2
  136. package/dist/node/signing/signing.utils.js +26 -5
  137. package/package.json +24 -14
  138. package/dist/.tsbuildinfo +0 -1
  139. package/dist/compare/compare.helper.d.ts.map +0 -1
  140. package/dist/compare/compare.helper.js.map +0 -1
  141. package/dist/compare/index.d.ts.map +0 -1
  142. package/dist/compare/index.js.map +0 -1
  143. package/dist/cryptoAlgorithm/index.d.ts +0 -8
  144. package/dist/cryptoAlgorithm/index.d.ts.map +0 -1
  145. package/dist/cryptoAlgorithm/index.js +0 -8
  146. package/dist/cryptoAlgorithm/index.js.map +0 -1
  147. package/dist/cryptoCipher/cryptoCipher.core.d.ts.map +0 -1
  148. package/dist/cryptoCipher/cryptoCipher.core.js.map +0 -1
  149. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts.map +0 -1
  150. package/dist/cryptoCipher/cryptoCipher.envelope.js.map +0 -1
  151. package/dist/cryptoCipher/cryptoCipher.string.d.ts.map +0 -1
  152. package/dist/cryptoCipher/cryptoCipher.string.js.map +0 -1
  153. package/dist/cryptoCipher/index.d.ts.map +0 -1
  154. package/dist/cryptoCipher/index.js.map +0 -1
  155. package/dist/cryptoConstants/cryptoConstants.config.d.ts.map +0 -1
  156. package/dist/cryptoConstants/cryptoConstants.config.js.map +0 -1
  157. package/dist/cryptoConstants/cryptoConstants.guard.d.ts.map +0 -1
  158. package/dist/cryptoConstants/cryptoConstants.guard.js.map +0 -1
  159. package/dist/cryptoConstants/cryptoConstants.security.d.ts.map +0 -1
  160. package/dist/cryptoConstants/cryptoConstants.security.js.map +0 -1
  161. package/dist/cryptoConstants/cryptoConstants.token.d.ts.map +0 -1
  162. package/dist/cryptoConstants/cryptoConstants.token.js.map +0 -1
  163. package/dist/cryptoConstants/cryptoConstants.type.d.ts.map +0 -1
  164. package/dist/cryptoConstants/cryptoConstants.type.js.map +0 -1
  165. package/dist/cryptoConstants/index.d.ts.map +0 -1
  166. package/dist/cryptoConstants/index.js.map +0 -1
  167. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts.map +0 -1
  168. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js.map +0 -1
  169. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts.map +0 -1
  170. package/dist/cryptoEncoding/cryptoEncoding.compare.js.map +0 -1
  171. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts.map +0 -1
  172. package/dist/cryptoEncoding/cryptoEncoding.core.js.map +0 -1
  173. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts.map +0 -1
  174. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js.map +0 -1
  175. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts.map +0 -1
  176. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js.map +0 -1
  177. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts.map +0 -1
  178. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js.map +0 -1
  179. package/dist/cryptoEncoding/encoding/index.d.ts.map +0 -1
  180. package/dist/cryptoEncoding/encoding/index.js.map +0 -1
  181. package/dist/cryptoEncoding/index.d.ts.map +0 -1
  182. package/dist/cryptoEncoding/index.js.map +0 -1
  183. package/dist/cryptoErrors/index.d.ts.map +0 -1
  184. package/dist/cryptoErrors/index.js.map +0 -1
  185. package/dist/cryptoFactory/cryptoFactory.core.d.ts.map +0 -1
  186. package/dist/cryptoFactory/cryptoFactory.core.js.map +0 -1
  187. package/dist/cryptoFactory/cryptoFactory.encoding.d.ts.map +0 -1
  188. package/dist/cryptoFactory/cryptoFactory.encoding.js.map +0 -1
  189. package/dist/cryptoFactory/cryptoFactory.options.d.ts +0 -2
  190. package/dist/cryptoFactory/cryptoFactory.options.d.ts.map +0 -1
  191. package/dist/cryptoFactory/cryptoFactory.options.js +0 -6
  192. package/dist/cryptoFactory/cryptoFactory.options.js.map +0 -1
  193. package/dist/cryptoFactory/cryptoFactory.password.d.ts.map +0 -1
  194. package/dist/cryptoFactory/cryptoFactory.password.js.map +0 -1
  195. package/dist/cryptoFactory/cryptoFactory.token.d.ts.map +0 -1
  196. package/dist/cryptoFactory/cryptoFactory.token.js.map +0 -1
  197. package/dist/cryptoFactory/index.d.ts.map +0 -1
  198. package/dist/cryptoFactory/index.js.map +0 -1
  199. package/dist/cryptoHash/cryptoHash.codec.d.ts.map +0 -1
  200. package/dist/cryptoHash/cryptoHash.codec.js.map +0 -1
  201. package/dist/cryptoHash/cryptoHash.compare.d.ts.map +0 -1
  202. package/dist/cryptoHash/cryptoHash.compare.js.map +0 -1
  203. package/dist/cryptoHash/cryptoHash.convenience.d.ts.map +0 -1
  204. package/dist/cryptoHash/cryptoHash.convenience.js.map +0 -1
  205. package/dist/cryptoHash/cryptoHash.core.d.ts.map +0 -1
  206. package/dist/cryptoHash/cryptoHash.core.js.map +0 -1
  207. package/dist/cryptoHash/cryptoHmac.core.d.ts.map +0 -1
  208. package/dist/cryptoHash/cryptoHmac.core.js.map +0 -1
  209. package/dist/cryptoHash/index.d.ts.map +0 -1
  210. package/dist/cryptoHash/index.js.map +0 -1
  211. package/dist/cryptoKey/cryptoKey.factory.d.ts.map +0 -1
  212. package/dist/cryptoKey/cryptoKey.factory.js.map +0 -1
  213. package/dist/cryptoKey/cryptoKey.type.d.ts.map +0 -1
  214. package/dist/cryptoKey/cryptoKey.type.js.map +0 -1
  215. package/dist/cryptoKey/cryptoKey.utils.d.ts.map +0 -1
  216. package/dist/cryptoKey/cryptoKey.utils.js.map +0 -1
  217. package/dist/cryptoKey/index.d.ts.map +0 -1
  218. package/dist/cryptoKey/index.js.map +0 -1
  219. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts.map +0 -1
  220. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js.map +0 -1
  221. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts.map +0 -1
  222. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js.map +0 -1
  223. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts.map +0 -1
  224. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js.map +0 -1
  225. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts.map +0 -1
  226. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js.map +0 -1
  227. package/dist/cryptoKeyDerivation/index.d.ts.map +0 -1
  228. package/dist/cryptoKeyDerivation/index.js.map +0 -1
  229. package/dist/cryptoPassword/cryptoPassword.codec.d.ts.map +0 -1
  230. package/dist/cryptoPassword/cryptoPassword.codec.js.map +0 -1
  231. package/dist/cryptoPassword/cryptoPassword.core.d.ts.map +0 -1
  232. package/dist/cryptoPassword/cryptoPassword.core.js.map +0 -1
  233. package/dist/cryptoPassword/cryptoPassword.helper.d.ts.map +0 -1
  234. package/dist/cryptoPassword/cryptoPassword.helper.js.map +0 -1
  235. package/dist/cryptoPassword/cryptoPassword.type.d.ts.map +0 -1
  236. package/dist/cryptoPassword/cryptoPassword.type.js.map +0 -1
  237. package/dist/cryptoPassword/cryptoPassword.validate.d.ts.map +0 -1
  238. package/dist/cryptoPassword/cryptoPassword.validate.js.map +0 -1
  239. package/dist/cryptoPassword/index.d.ts.map +0 -1
  240. package/dist/cryptoPassword/index.js.map +0 -1
  241. package/dist/cryptoProvider/cryptoProvider.core.d.ts.map +0 -1
  242. package/dist/cryptoProvider/cryptoProvider.core.js.map +0 -1
  243. package/dist/cryptoProvider/cryptoProvider.interface.d.ts.map +0 -1
  244. package/dist/cryptoProvider/cryptoProvider.interface.js.map +0 -1
  245. package/dist/cryptoProvider/cryptoProvider.type.d.ts.map +0 -1
  246. package/dist/cryptoProvider/cryptoProvider.type.js.map +0 -1
  247. package/dist/cryptoProvider/index.d.ts.map +0 -1
  248. package/dist/cryptoProvider/index.js.map +0 -1
  249. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts.map +0 -1
  250. package/dist/cryptoProvider/types/cryptoCipher.type.js.map +0 -1
  251. package/dist/cryptoProvider/types/cryptoHash.type.d.ts.map +0 -1
  252. package/dist/cryptoProvider/types/cryptoHash.type.js.map +0 -1
  253. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts.map +0 -1
  254. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js.map +0 -1
  255. package/dist/cryptoProvider/types/cryptoRandom.type.d.ts.map +0 -1
  256. package/dist/cryptoProvider/types/cryptoRandom.type.js.map +0 -1
  257. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts.map +0 -1
  258. package/dist/cryptoProvider/types/cryptoSignature.type.js.map +0 -1
  259. package/dist/cryptoProvider/types/index.d.ts.map +0 -1
  260. package/dist/cryptoProvider/types/index.js.map +0 -1
  261. package/dist/cryptoRandom/cryptoRandom.choice.d.ts.map +0 -1
  262. package/dist/cryptoRandom/cryptoRandom.choice.js.map +0 -1
  263. package/dist/cryptoRandom/cryptoRandom.core.d.ts.map +0 -1
  264. package/dist/cryptoRandom/cryptoRandom.core.js.map +0 -1
  265. package/dist/cryptoRandom/cryptoRandom.string.d.ts.map +0 -1
  266. package/dist/cryptoRandom/cryptoRandom.string.js.map +0 -1
  267. package/dist/cryptoRandom/index.d.ts.map +0 -1
  268. package/dist/cryptoRandom/index.js.map +0 -1
  269. package/dist/cryptoService/cryptoService.core.d.ts.map +0 -1
  270. package/dist/cryptoService/cryptoService.core.js.map +0 -1
  271. package/dist/cryptoService/cryptoService.derivation.d.ts.map +0 -1
  272. package/dist/cryptoService/cryptoService.derivation.js.map +0 -1
  273. package/dist/cryptoService/cryptoService.encoding.d.ts.map +0 -1
  274. package/dist/cryptoService/cryptoService.encoding.js.map +0 -1
  275. package/dist/cryptoService/index.d.ts.map +0 -1
  276. package/dist/cryptoService/index.js.map +0 -1
  277. package/dist/cryptoService/operations/cryptoService.cipher.d.ts.map +0 -1
  278. package/dist/cryptoService/operations/cryptoService.cipher.js.map +0 -1
  279. package/dist/cryptoService/operations/cryptoService.hash.d.ts.map +0 -1
  280. package/dist/cryptoService/operations/cryptoService.hash.js.map +0 -1
  281. package/dist/cryptoService/operations/cryptoService.password.d.ts.map +0 -1
  282. package/dist/cryptoService/operations/cryptoService.password.js.map +0 -1
  283. package/dist/cryptoService/operations/cryptoService.token.d.ts.map +0 -1
  284. package/dist/cryptoService/operations/cryptoService.token.js.map +0 -1
  285. package/dist/cryptoService/operations/index.d.ts.map +0 -1
  286. package/dist/cryptoService/operations/index.js.map +0 -1
  287. package/dist/cryptoSignature/cryptoSignature.core.d.ts.map +0 -1
  288. package/dist/cryptoSignature/cryptoSignature.core.js.map +0 -1
  289. package/dist/cryptoSignature/index.d.ts.map +0 -1
  290. package/dist/cryptoSignature/index.js.map +0 -1
  291. package/dist/cryptoToken/cryptoToken.core.d.ts.map +0 -1
  292. package/dist/cryptoToken/cryptoToken.core.js.map +0 -1
  293. package/dist/cryptoToken/cryptoToken.hash.d.ts.map +0 -1
  294. package/dist/cryptoToken/cryptoToken.hash.js.map +0 -1
  295. package/dist/cryptoToken/cryptoToken.utils.d.ts.map +0 -1
  296. package/dist/cryptoToken/cryptoToken.utils.js.map +0 -1
  297. package/dist/cryptoToken/index.d.ts.map +0 -1
  298. package/dist/cryptoToken/index.js.map +0 -1
  299. package/dist/cryptoUtils/cryptoUtils.compare.d.ts.map +0 -1
  300. package/dist/cryptoUtils/cryptoUtils.compare.js.map +0 -1
  301. package/dist/cryptoUtils/cryptoUtils.conversion.d.ts.map +0 -1
  302. package/dist/cryptoUtils/cryptoUtils.conversion.js.map +0 -1
  303. package/dist/cryptoUtils/cryptoUtils.number.d.ts.map +0 -1
  304. package/dist/cryptoUtils/cryptoUtils.number.js.map +0 -1
  305. package/dist/cryptoUtils/cryptoUtils.text.d.ts.map +0 -1
  306. package/dist/cryptoUtils/cryptoUtils.text.js.map +0 -1
  307. package/dist/cryptoUtils/cryptoUtils.validation.d.ts.map +0 -1
  308. package/dist/cryptoUtils/cryptoUtils.validation.js.map +0 -1
  309. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts.map +0 -1
  310. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js.map +0 -1
  311. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts.map +0 -1
  312. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js.map +0 -1
  313. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts.map +0 -1
  314. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js.map +0 -1
  315. package/dist/cryptoUtils/encoding/index.d.ts.map +0 -1
  316. package/dist/cryptoUtils/encoding/index.js.map +0 -1
  317. package/dist/cryptoUtils/index.d.ts.map +0 -1
  318. package/dist/cryptoUtils/index.js.map +0 -1
  319. package/dist/index.d.ts.map +0 -1
  320. package/dist/index.js.map +0 -1
  321. package/dist/node/index.d.ts.map +0 -1
  322. package/dist/node/index.js.map +0 -1
  323. package/dist/node/nodeCryptoProvider/index.d.ts.map +0 -1
  324. package/dist/node/nodeCryptoProvider/index.js.map +0 -1
  325. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts.map +0 -1
  326. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js.map +0 -1
  327. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts.map +0 -1
  328. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js.map +0 -1
  329. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts.map +0 -1
  330. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js.map +0 -1
  331. package/dist/node/nodeCryptoProvider/operations/index.d.ts.map +0 -1
  332. package/dist/node/nodeCryptoProvider/operations/index.js.map +0 -1
  333. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts.map +0 -1
  334. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js.map +0 -1
  335. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts.map +0 -1
  336. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js.map +0 -1
  337. package/dist/node/nodeCryptoProvider/primitives/index.d.ts.map +0 -1
  338. package/dist/node/nodeCryptoProvider/primitives/index.js.map +0 -1
  339. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts.map +0 -1
  340. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js.map +0 -1
  341. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts.map +0 -1
  342. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js.map +0 -1
  343. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts.map +0 -1
  344. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js.map +0 -1
  345. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts.map +0 -1
  346. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js.map +0 -1
  347. package/dist/node/signing/index.d.ts.map +0 -1
  348. package/dist/node/signing/index.js.map +0 -1
  349. package/dist/node/signing/signing.conversion.d.ts.map +0 -1
  350. package/dist/node/signing/signing.conversion.js.map +0 -1
  351. package/dist/node/signing/signing.core.d.ts.map +0 -1
  352. package/dist/node/signing/signing.core.js.map +0 -1
  353. package/dist/node/signing/signing.utils.d.ts.map +0 -1
  354. package/dist/node/signing/signing.utils.js.map +0 -1
@@ -1,12 +1,14 @@
1
1
  import { deriveKey } from "../cryptoKeyDerivation/cryptoKeyDerivation.core.js";
2
- import { cryptoKeyDerivationError } from "@zudojs/errors";
3
- import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
4
- export async function serviceDeriveKey(password, algorithm, options) {
2
+ import { keyDerivationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
3
+ export async function serviceDeriveKey(password, algorithm, options, provider) {
5
4
  try {
6
- return await deriveKey(password, algorithm, options);
5
+ return await deriveKey(password, algorithm, {
6
+ ...options,
7
+ provider: options?.provider ?? provider,
8
+ });
7
9
  }
8
- catch {
9
- throw cryptoKeyDerivationError("Key derivation failed.", algorithm);
10
+ catch (error) {
11
+ return rethrowAsCryptoError(error, (cause) => keyDerivationError("Key derivation failed.", algorithm, cause));
10
12
  }
11
13
  }
12
14
  //# sourceMappingURL=cryptoService.derivation.js.map
@@ -1,19 +1,20 @@
1
1
  import { encode, decode } from "../cryptoEncoding/cryptoEncoding.core.js";
2
- import { createCryptoError } from "@zudojs/errors";
2
+ import { CryptoOperation } from "@zudojs/errors";
3
+ import { operationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
3
4
  export function serviceEncode(value, encoding = "base64url") {
4
5
  try {
5
6
  return encode(value, encoding);
6
7
  }
7
- catch {
8
- throw createCryptoError("Crypto encoding failed.", {});
8
+ catch (error) {
9
+ return rethrowAsCryptoError(error, (cause) => operationError("Crypto encoding failed.", CryptoOperation.ENCODE, cause));
9
10
  }
10
11
  }
11
12
  export function serviceDecode(value, encoding = "base64url") {
12
13
  try {
13
14
  return decode(value, encoding);
14
15
  }
15
- catch {
16
- throw createCryptoError("Crypto decoding failed.", {});
16
+ catch (error) {
17
+ return rethrowAsCryptoError(error, (cause) => operationError("Crypto decoding failed.", CryptoOperation.DECODE, cause));
17
18
  }
18
19
  }
19
20
  //# sourceMappingURL=cryptoService.encoding.js.map
@@ -3,9 +3,5 @@
3
3
  *
4
4
  * High-level cryptographic service interface.
5
5
  */
6
- export * from "./cryptoService.core.js";
7
- export { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
8
- export { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
9
- export { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
10
- export { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
6
+ export { CryptoService, createCryptoService, cryptoService, getCryptoService, type CryptoServiceOptions, } from "./cryptoService.core.js";
11
7
  //# sourceMappingURL=index.d.ts.map
@@ -3,9 +3,5 @@
3
3
  *
4
4
  * High-level cryptographic service interface.
5
5
  */
6
- export * from "./cryptoService.core.js";
7
- export { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
8
- export { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
9
- export { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
10
- export { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
6
+ export { CryptoService, createCryptoService, cryptoService, getCryptoService, } from "./cryptoService.core.js";
11
7
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,6 @@
1
+ import type { CryptoProvider } from "../../cryptoProvider/index.js";
1
2
  import type { CipherOptions, CipherResult } from "../../cryptoCipher/cryptoCipher.core.js";
2
3
  export type { CipherOptions, CipherResult };
3
- export declare function serviceEncrypt(plaintext: Uint8Array, key: Uint8Array, options?: CipherOptions): Promise<CipherResult>;
4
- export declare function serviceDecrypt(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array, authTag: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
4
+ export declare function serviceEncrypt(plaintext: Uint8Array, key: Uint8Array, options?: CipherOptions, provider?: CryptoProvider): Promise<CipherResult>;
5
+ export declare function serviceDecrypt(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array, authTag: Uint8Array, aad?: Uint8Array, provider?: CryptoProvider): Promise<Uint8Array>;
5
6
  //# sourceMappingURL=cryptoService.cipher.d.ts.map
@@ -1,19 +1,23 @@
1
1
  import { encrypt, decrypt } from "../../cryptoCipher/cryptoCipher.core.js";
2
- import { cryptoCipherError, CryptoOperation } from "@zudojs/errors";
3
- export async function serviceEncrypt(plaintext, key, options) {
2
+ import { CryptoOperation } from "@zudojs/errors";
3
+ import { cipherError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
4
+ export async function serviceEncrypt(plaintext, key, options, provider) {
4
5
  try {
5
- return await encrypt(plaintext, key, options);
6
+ return await encrypt(plaintext, key, {
7
+ ...options,
8
+ provider: options?.provider ?? provider,
9
+ });
6
10
  }
7
- catch {
8
- throw cryptoCipherError("Encryption failed.", CryptoOperation.ENCRYPT);
11
+ catch (error) {
12
+ return rethrowAsCryptoError(error, (cause) => cipherError("Encryption failed.", CryptoOperation.ENCRYPT, "aes-256-gcm", cause));
9
13
  }
10
14
  }
11
- export async function serviceDecrypt(ciphertext, key, iv, authTag, aad) {
15
+ export async function serviceDecrypt(ciphertext, key, iv, authTag, aad, provider) {
12
16
  try {
13
- return await decrypt(ciphertext, key, iv, authTag, aad);
17
+ return await decrypt(ciphertext, key, iv, authTag, aad, provider);
14
18
  }
15
- catch {
16
- throw cryptoCipherError("Decryption failed.", CryptoOperation.DECRYPT);
19
+ catch (error) {
20
+ return rethrowAsCryptoError(error, (cause) => cipherError("Decryption failed.", CryptoOperation.DECRYPT, "aes-256-gcm", cause));
17
21
  }
18
22
  }
19
23
  //# sourceMappingURL=cryptoService.cipher.js.map
@@ -1,3 +1,4 @@
1
- export declare function serviceHash(value: string | Uint8Array): Promise<Uint8Array>;
2
- export declare function serviceHashHex(value: string | Uint8Array): Promise<string>;
1
+ import type { CryptoProvider } from "../../cryptoProvider/index.js";
2
+ export declare function serviceHash(value: string | Uint8Array, provider?: CryptoProvider): Promise<Uint8Array>;
3
+ export declare function serviceHashHex(value: string | Uint8Array, provider?: CryptoProvider): Promise<string>;
3
4
  //# sourceMappingURL=cryptoService.hash.d.ts.map
@@ -1,16 +1,15 @@
1
- import { createNodeCryptoProvider } from "../../node/index.js";
1
+ import { getDefaultCryptoProvider } from "../../cryptoProvider/cryptoProvider.default.js";
2
2
  import { encode } from "../../cryptoEncoding/cryptoEncoding.core.js";
3
- import { cryptoHashError } from "@zudojs/errors";
4
- const provider = createNodeCryptoProvider();
5
- export async function serviceHash(value) {
3
+ import { hashError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
4
+ export async function serviceHash(value, provider = getDefaultCryptoProvider()) {
6
5
  try {
7
6
  return await provider.hash("sha256", value);
8
7
  }
9
- catch {
10
- throw cryptoHashError("Hashing failed.", "sha256");
8
+ catch (error) {
9
+ return rethrowAsCryptoError(error, (cause) => hashError("Hashing failed.", "sha256", cause));
11
10
  }
12
11
  }
13
- export async function serviceHashHex(value) {
14
- return encode(await serviceHash(value), "hex");
12
+ export async function serviceHashHex(value, provider) {
13
+ return encode(await serviceHash(value, provider), "hex");
15
14
  }
16
15
  //# sourceMappingURL=cryptoService.hash.js.map
@@ -1,5 +1,10 @@
1
+ import type { CryptoProvider } from "../../cryptoProvider/index.js";
1
2
  import type { PasswordHashOptions, PasswordHashResult } from "../../cryptoPassword/cryptoPassword.type.js";
2
3
  export type { PasswordHashOptions, PasswordHashResult };
3
- export declare function serviceHashPassword(password: string, options?: PasswordHashOptions): Promise<PasswordHashResult>;
4
- export declare function serviceVerifyPassword(password: string, encodedHash: string): Promise<boolean>;
4
+ export declare function serviceHashPassword(password: string, options?: PasswordHashOptions, provider?: CryptoProvider): Promise<PasswordHashResult>;
5
+ /**
6
+ * Verifies a password. Wrong passwords and malformed hashes yield false;
7
+ * non-string arguments are programmer errors and throw.
8
+ */
9
+ export declare function serviceVerifyPassword(password: string, encodedHash: string, provider?: CryptoProvider): Promise<boolean>;
5
10
  //# sourceMappingURL=cryptoService.password.d.ts.map
@@ -1,19 +1,30 @@
1
1
  import { hashPassword, verifyPassword, } from "../../cryptoPassword/cryptoPassword.core.js";
2
- import { createCryptoError } from "@zudojs/errors";
3
- export async function serviceHashPassword(password, options) {
2
+ import { CryptoOperation } from "@zudojs/errors";
3
+ import { operationError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
4
+ export async function serviceHashPassword(password, options, provider) {
4
5
  try {
5
- return await hashPassword(password, options);
6
+ return await hashPassword(password, { ...options, provider });
6
7
  }
7
- catch {
8
- throw createCryptoError("Password hashing failed.", {});
8
+ catch (error) {
9
+ return rethrowAsCryptoError(error, (cause) => operationError("Password hashing failed.", CryptoOperation.KEY_DERIVATION, cause));
9
10
  }
10
11
  }
11
- export async function serviceVerifyPassword(password, encodedHash) {
12
+ /**
13
+ * Verifies a password. Wrong passwords and malformed hashes yield false;
14
+ * non-string arguments are programmer errors and throw.
15
+ */
16
+ export async function serviceVerifyPassword(password, encodedHash, provider) {
17
+ if (typeof password !== "string") {
18
+ throw new TypeError("Password must be a string.");
19
+ }
20
+ if (typeof encodedHash !== "string") {
21
+ throw new TypeError("Encoded password hash must be a string.");
22
+ }
12
23
  try {
13
- return await verifyPassword(password, encodedHash);
24
+ return await verifyPassword(password, encodedHash, provider);
14
25
  }
15
- catch {
16
- return false;
26
+ catch (error) {
27
+ return rethrowAsCryptoError(error, (cause) => operationError("Password verification failed.", CryptoOperation.VERIFY_HASH, cause));
17
28
  }
18
29
  }
19
30
  //# sourceMappingURL=cryptoService.password.js.map
@@ -1,7 +1,12 @@
1
+ import type { CryptoProvider } from "../../cryptoProvider/index.js";
1
2
  import type { TokenOptions, TokenEncoding } from "../../cryptoToken/cryptoToken.core.js";
2
3
  export type { TokenOptions, TokenEncoding };
3
- export declare function serviceGenerateToken(options?: TokenOptions): Promise<string>;
4
- export declare function serviceGenerateOtp(digits?: number): Promise<string>;
5
- export declare function serviceHashToken(token: string): Promise<string>;
6
- export declare function serviceVerifyToken(token: string, expectedHash: string): Promise<boolean>;
4
+ export declare function serviceGenerateToken(options?: TokenOptions, provider?: CryptoProvider): Promise<string>;
5
+ export declare function serviceGenerateOtp(digits?: number, provider?: CryptoProvider): Promise<string>;
6
+ export declare function serviceHashToken(token: string, provider?: CryptoProvider): Promise<string>;
7
+ /**
8
+ * Verifies a token against its stored hash. Mismatches and malformed
9
+ * hashes yield false; non-string arguments throw.
10
+ */
11
+ export declare function serviceVerifyToken(token: string, expectedHash: string, provider?: CryptoProvider): Promise<boolean>;
7
12
  //# sourceMappingURL=cryptoService.token.d.ts.map
@@ -1,36 +1,50 @@
1
1
  import { generateToken, generateOtp, } from "../../cryptoToken/cryptoToken.core.js";
2
2
  import { hashToken, verifyTokenHash, } from "../../cryptoToken/cryptoToken.hash.js";
3
- import { createCryptoError, cryptoHashError } from "@zudojs/errors";
4
- export async function serviceGenerateToken(options) {
3
+ import { CryptoOperation } from "@zudojs/errors";
4
+ import { hashError, operationError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
5
+ export async function serviceGenerateToken(options, provider) {
5
6
  try {
6
- return await generateToken(options);
7
+ return await generateToken({
8
+ ...options,
9
+ provider: options?.provider ?? provider,
10
+ });
7
11
  }
8
- catch {
9
- throw createCryptoError("Token generation failed.", {});
12
+ catch (error) {
13
+ return rethrowAsCryptoError(error, (cause) => operationError("Token generation failed.", CryptoOperation.RANDOM, cause));
10
14
  }
11
15
  }
12
- export async function serviceGenerateOtp(digits = 6) {
16
+ export async function serviceGenerateOtp(digits = 6, provider) {
13
17
  try {
14
- return await generateOtp(digits);
18
+ return await generateOtp(digits, provider);
15
19
  }
16
- catch {
17
- throw createCryptoError("OTP generation failed.", {});
20
+ catch (error) {
21
+ return rethrowAsCryptoError(error, (cause) => operationError("OTP generation failed.", CryptoOperation.RANDOM, cause));
18
22
  }
19
23
  }
20
- export async function serviceHashToken(token) {
24
+ export async function serviceHashToken(token, provider) {
21
25
  try {
22
- return await hashToken(token);
26
+ return await hashToken(token, provider);
23
27
  }
24
- catch {
25
- throw cryptoHashError("Token hashing failed.", "sha256");
28
+ catch (error) {
29
+ return rethrowAsCryptoError(error, (cause) => hashError("Token hashing failed.", "sha256", cause));
26
30
  }
27
31
  }
28
- export async function serviceVerifyToken(token, expectedHash) {
32
+ /**
33
+ * Verifies a token against its stored hash. Mismatches and malformed
34
+ * hashes yield false; non-string arguments throw.
35
+ */
36
+ export async function serviceVerifyToken(token, expectedHash, provider) {
37
+ if (typeof token !== "string") {
38
+ throw new TypeError("Token must be a string.");
39
+ }
40
+ if (typeof expectedHash !== "string") {
41
+ throw new TypeError("Expected token hash must be a string.");
42
+ }
29
43
  try {
30
- return await verifyTokenHash(token, expectedHash);
44
+ return await verifyTokenHash(token, expectedHash, provider);
31
45
  }
32
- catch {
33
- return false;
46
+ catch (error) {
47
+ return rethrowAsCryptoError(error, (cause) => hashError("Token verification failed.", "sha256", cause));
34
48
  }
35
49
  }
36
50
  //# sourceMappingURL=cryptoService.token.js.map
@@ -1,17 +1,25 @@
1
+ import type { CryptoProvider } from "../cryptoProvider/index.js";
1
2
  import type { CryptoInput } from "../cryptoProvider/index.js";
2
3
  import type { SignatureAlgorithm } from "../cryptoProvider/index.js";
3
4
  /**
4
- * Supported signature algorithms.
5
+ * Signature options.
6
+ *
7
+ * The algorithm binds the key type: RSA algorithms require RSA keys,
8
+ * ECDSA algorithms require EC keys and `ed25519` requires an Ed25519 key.
5
9
  */
6
10
  export type SignatureOptions = {
7
11
  readonly algorithm?: SignatureAlgorithm;
12
+ readonly provider?: CryptoProvider;
8
13
  };
9
14
  /**
10
- * Signs arbitrary data using a private key.
15
+ * Signs arbitrary data using a private key (PEM text, DER bytes or KeyObject).
11
16
  */
12
17
  export declare function sign(data: Uint8Array, privateKey: CryptoInput, options?: SignatureOptions): Promise<Uint8Array>;
13
18
  /**
14
19
  * Verifies a signature using a public key.
20
+ *
21
+ * Returns false for malformed keys or signatures; throws only when the
22
+ * algorithm is unsupported or incompatible with the key type.
15
23
  */
16
24
  export declare function verify(data: Uint8Array, signature: Uint8Array, publicKey: CryptoInput, options?: SignatureOptions): Promise<boolean>;
17
25
  /**
@@ -1,9 +1,9 @@
1
- import { createNodeCryptoProvider } from "../node/index.js";
2
- const provider = createNodeCryptoProvider();
1
+ import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
3
2
  /**
4
- * Signs arbitrary data using a private key.
3
+ * Signs arbitrary data using a private key (PEM text, DER bytes or KeyObject).
5
4
  */
6
5
  export async function sign(data, privateKey, options = {}) {
6
+ const provider = options.provider ?? getDefaultCryptoProvider();
7
7
  return provider.sign({
8
8
  key: privateKey,
9
9
  data,
@@ -12,8 +12,12 @@ export async function sign(data, privateKey, options = {}) {
12
12
  }
13
13
  /**
14
14
  * Verifies a signature using a public key.
15
+ *
16
+ * Returns false for malformed keys or signatures; throws only when the
17
+ * algorithm is unsupported or incompatible with the key type.
15
18
  */
16
19
  export async function verify(data, signature, publicKey, options = {}) {
20
+ const provider = options.provider ?? getDefaultCryptoProvider();
17
21
  return provider.verify({
18
22
  key: publicKey,
19
23
  data,
@@ -1,3 +1,4 @@
1
+ import type { CryptoProvider } from "../cryptoProvider/index.js";
1
2
  /**
2
3
  * Supported token encodings.
3
4
  */
@@ -9,47 +10,52 @@ export interface TokenOptions {
9
10
  readonly bytes?: number;
10
11
  readonly encoding?: TokenEncoding;
11
12
  readonly prefix?: string;
13
+ readonly provider?: CryptoProvider;
12
14
  }
13
15
  /**
14
16
  * Creates a cryptographically secure opaque token.
17
+ *
18
+ * The encoding is validated at runtime: only `hex`, `base64` and
19
+ * `base64url` are accepted, so a misconfigured `"utf8"` can never
20
+ * produce a lossy token.
15
21
  */
16
22
  export declare function generateToken(options?: TokenOptions): Promise<string>;
17
23
  /**
18
24
  * Generates a secure API key.
19
25
  */
20
- export declare function generateApiKey(prefix?: string, bytes?: number): Promise<string>;
26
+ export declare function generateApiKey(prefix?: string, bytes?: number, provider?: CryptoProvider): Promise<string>;
21
27
  /**
22
28
  * Generates a secure session token.
23
29
  */
24
- export declare function generateSessionToken(bytes?: number): Promise<string>;
30
+ export declare function generateSessionToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
25
31
  /**
26
32
  * Generates a secure refresh token.
27
33
  */
28
- export declare function generateRefreshToken(bytes?: number): Promise<string>;
34
+ export declare function generateRefreshToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
29
35
  /**
30
36
  * Generates a secure verification token.
31
37
  */
32
- export declare function generateVerificationToken(bytes?: number): Promise<string>;
38
+ export declare function generateVerificationToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
33
39
  /**
34
40
  * Generates a secure password-reset token.
35
41
  */
36
- export declare function generatePasswordResetToken(bytes?: number): Promise<string>;
42
+ export declare function generatePasswordResetToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
37
43
  /**
38
44
  * Generates a secure CSRF token.
39
45
  */
40
- export declare function generateCsrfToken(bytes?: number): Promise<string>;
46
+ export declare function generateCsrfToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
41
47
  /**
42
48
  * Generates a numeric one-time password.
43
49
  *
44
50
  * Leading zeroes are preserved.
45
51
  */
46
- export declare function generateOtp(digits?: number): Promise<string>;
52
+ export declare function generateOtp(digits?: number, provider?: CryptoProvider): Promise<string>;
47
53
  /**
48
54
  * Generates a short-lived email verification code.
49
55
  */
50
- export declare function generateEmailVerificationCode(digits?: number): Promise<string>;
56
+ export declare function generateEmailVerificationCode(digits?: number, provider?: CryptoProvider): Promise<string>;
51
57
  /**
52
58
  * Generates a short-lived login verification code.
53
59
  */
54
- export declare function generateLoginCode(digits?: number): Promise<string>;
60
+ export declare function generateLoginCode(digits?: number, provider?: CryptoProvider): Promise<string>;
55
61
  //# sourceMappingURL=cryptoToken.core.d.ts.map
@@ -1,90 +1,115 @@
1
- import { createNodeCryptoProvider } from "../node/index.js";
1
+ import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
2
2
  import { randomInteger } from "../cryptoRandom/cryptoRandom.core.js";
3
- let defaultProvider;
4
- /**
5
- * Returns a lazily created default crypto provider.
6
- *
7
- * The provider abstraction keeps token generation free of direct
8
- * `node:crypto` usage while still allowing callers to inject their own.
9
- */
10
- function getDefaultProvider() {
11
- if (defaultProvider === undefined) {
12
- defaultProvider = createNodeCryptoProvider();
13
- }
14
- return defaultProvider;
15
- }
3
+ import { assertBinaryEncoding } from "../cryptoEncoding/cryptoEncoding.core.js";
4
+ import { RANDOM, TOKEN, TOKEN_PREFIX, } from "../cryptoConstants/cryptoConstants.token.js";
16
5
  /**
17
6
  * Creates a cryptographically secure opaque token.
7
+ *
8
+ * The encoding is validated at runtime: only `hex`, `base64` and
9
+ * `base64url` are accepted, so a misconfigured `"utf8"` can never
10
+ * produce a lossy token.
18
11
  */
19
12
  export async function generateToken(options = {}) {
20
- const bytes = options.bytes ?? 32;
13
+ const bytes = options.bytes ?? TOKEN.DEFAULT_BYTES;
21
14
  const encoding = options.encoding ?? "base64url";
22
- if (!Number.isInteger(bytes) || bytes < 16) {
23
- throw new RangeError("Token byte length must be an integer of at least 16.");
15
+ if (!Number.isInteger(bytes) || bytes < RANDOM.MIN_BYTES) {
16
+ throw new RangeError(`Token byte length must be an integer of at least ${RANDOM.MIN_BYTES}.`);
17
+ }
18
+ assertBinaryEncoding(encoding);
19
+ if (options.prefix !== undefined && typeof options.prefix !== "string") {
20
+ throw new TypeError("Token prefix must be a string.");
24
21
  }
25
- const raw = await getDefaultProvider().randomBytes(bytes);
22
+ const provider = options.provider ?? getDefaultCryptoProvider();
23
+ const raw = await provider.randomBytes(bytes);
26
24
  const token = Buffer.from(raw).toString(encoding);
27
25
  return options.prefix ? `${options.prefix}${token}` : token;
28
26
  }
29
27
  /**
30
28
  * Generates a secure API key.
31
29
  */
32
- export async function generateApiKey(prefix = "lat_", bytes = 32) {
33
- return generateToken({ bytes, encoding: "base64url", prefix });
30
+ export async function generateApiKey(prefix = TOKEN_PREFIX.API_KEY, bytes = TOKEN.API_KEY_BYTES, provider) {
31
+ return generateToken({ bytes, encoding: "base64url", prefix, provider });
34
32
  }
35
33
  /**
36
34
  * Generates a secure session token.
37
35
  */
38
- export async function generateSessionToken(bytes = 32) {
39
- return generateToken({ bytes, encoding: "base64url", prefix: "sess_" });
36
+ export async function generateSessionToken(bytes = TOKEN.SESSION_BYTES, provider) {
37
+ return generateToken({
38
+ bytes,
39
+ encoding: "base64url",
40
+ prefix: TOKEN_PREFIX.SESSION,
41
+ provider,
42
+ });
40
43
  }
41
44
  /**
42
45
  * Generates a secure refresh token.
43
46
  */
44
- export async function generateRefreshToken(bytes = 48) {
45
- return generateToken({ bytes, encoding: "base64url", prefix: "ref_" });
47
+ export async function generateRefreshToken(bytes = TOKEN.REFRESH_BYTES, provider) {
48
+ return generateToken({
49
+ bytes,
50
+ encoding: "base64url",
51
+ prefix: TOKEN_PREFIX.REFRESH,
52
+ provider,
53
+ });
46
54
  }
47
55
  /**
48
56
  * Generates a secure verification token.
49
57
  */
50
- export async function generateVerificationToken(bytes = 32) {
51
- return generateToken({ bytes, encoding: "base64url", prefix: "verify_" });
58
+ export async function generateVerificationToken(bytes = TOKEN.VERIFICATION_BYTES, provider) {
59
+ return generateToken({
60
+ bytes,
61
+ encoding: "base64url",
62
+ prefix: TOKEN_PREFIX.VERIFICATION,
63
+ provider,
64
+ });
52
65
  }
53
66
  /**
54
67
  * Generates a secure password-reset token.
55
68
  */
56
- export async function generatePasswordResetToken(bytes = 32) {
57
- return generateToken({ bytes, encoding: "base64url", prefix: "reset_" });
69
+ export async function generatePasswordResetToken(bytes = TOKEN.PASSWORD_RESET_BYTES, provider) {
70
+ return generateToken({
71
+ bytes,
72
+ encoding: "base64url",
73
+ prefix: TOKEN_PREFIX.PASSWORD_RESET,
74
+ provider,
75
+ });
58
76
  }
59
77
  /**
60
78
  * Generates a secure CSRF token.
61
79
  */
62
- export async function generateCsrfToken(bytes = 32) {
63
- return generateToken({ bytes, encoding: "base64url", prefix: "csrf_" });
80
+ export async function generateCsrfToken(bytes = TOKEN.CSRF_BYTES, provider) {
81
+ return generateToken({
82
+ bytes,
83
+ encoding: "base64url",
84
+ prefix: TOKEN_PREFIX.CSRF,
85
+ provider,
86
+ });
64
87
  }
65
88
  /**
66
89
  * Generates a numeric one-time password.
67
90
  *
68
91
  * Leading zeroes are preserved.
69
92
  */
70
- export async function generateOtp(digits = 6) {
71
- if (!Number.isInteger(digits) || digits < 4 || digits > 12) {
72
- throw new RangeError("OTP digits must be an integer between 4 and 12.");
93
+ export async function generateOtp(digits = TOKEN.OTP_DIGITS, provider) {
94
+ if (!Number.isInteger(digits) ||
95
+ digits < TOKEN.OTP_MIN_DIGITS ||
96
+ digits > TOKEN.OTP_MAX_DIGITS) {
97
+ throw new RangeError(`OTP digits must be an integer between ${TOKEN.OTP_MIN_DIGITS} and ${TOKEN.OTP_MAX_DIGITS}.`);
73
98
  }
74
99
  const max = 10 ** digits;
75
- const value = await randomInteger(0, max);
100
+ const value = await randomInteger(0, max, provider);
76
101
  return String(value).padStart(digits, "0");
77
102
  }
78
103
  /**
79
104
  * Generates a short-lived email verification code.
80
105
  */
81
- export async function generateEmailVerificationCode(digits = 6) {
82
- return generateOtp(digits);
106
+ export async function generateEmailVerificationCode(digits = TOKEN.OTP_DIGITS, provider) {
107
+ return generateOtp(digits, provider);
83
108
  }
84
109
  /**
85
110
  * Generates a short-lived login verification code.
86
111
  */
87
- export async function generateLoginCode(digits = 6) {
88
- return generateOtp(digits);
112
+ export async function generateLoginCode(digits = TOKEN.OTP_DIGITS, provider) {
113
+ return generateOtp(digits, provider);
89
114
  }
90
115
  //# sourceMappingURL=cryptoToken.core.js.map
@@ -1,24 +1,26 @@
1
+ import type { CryptoProvider } from "../cryptoProvider/index.js";
1
2
  /**
2
3
  * Creates a deterministic SHA-256 identifier from a token.
3
4
  *
4
5
  * The returned value does not expose the original token.
5
6
  */
6
- export declare function hashToken(token: string): Promise<string>;
7
+ export declare function hashToken(token: string, provider?: CryptoProvider): Promise<string>;
7
8
  /**
8
9
  * Creates a Base64URL SHA-256 digest of a token.
9
10
  */
10
- export declare function hashTokenBase64Url(token: string): Promise<string>;
11
+ export declare function hashTokenBase64Url(token: string, provider?: CryptoProvider): Promise<string>;
11
12
  /**
12
- * Compares a token with a stored hash.
13
+ * Compares a token with a stored hex SHA-256 hash.
13
14
  *
14
- * Comparison is performed with a constant-time XOR accumulation to
15
- * avoid timing side-channels.
15
+ * The comparison is constant time and case-insensitive on the hex digits,
16
+ * so hashes upper-cased by a database or copied from another tool still
17
+ * match. Returns false for a malformed token or stored hash.
16
18
  */
17
- export declare function verifyTokenHash(token: string, expectedHash: string): Promise<boolean>;
19
+ export declare function verifyTokenHash(token: string, expectedHash: string, provider?: CryptoProvider): Promise<boolean>;
18
20
  /**
19
21
  * Hashes a token using SHA-256 before storage.
20
22
  *
21
23
  * This is useful when a raw bearer token must never be persisted.
22
24
  */
23
- export declare function hashTokenForStorage(token: string): Promise<string>;
25
+ export declare function hashTokenForStorage(token: string, provider?: CryptoProvider): Promise<string>;
24
26
  //# sourceMappingURL=cryptoToken.hash.d.ts.map