@zudojs/crypto 0.1.0 → 1.1.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 +42 -1
  14. package/dist/cryptoConstants/cryptoConstants.security.js +42 -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 +13 -2
  55. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +53 -16
  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 +112 -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 +28 -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,83 +1,107 @@
1
- import { createNodeCryptoProvider } from "../node/index.js";
2
- import { generateCryptoKey } from "../cryptoKey/cryptoKey.factory.js";
1
+ import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
2
+ import { generateCryptoKey, defaultKeyLength, } from "../cryptoKey/cryptoKey.factory.js";
3
3
  import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
4
- import { createCryptoError } from "@zudojs/errors";
4
+ import { CryptoOperation } from "@zudojs/errors";
5
+ import { operationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
5
6
  import { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
6
7
  import { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
7
8
  import { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
8
- import { serviceDeriveKey } from "./cryptoService.derivation.js";
9
+ import { serviceDeriveKey, } from "./cryptoService.derivation.js";
9
10
  import { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
10
- import { serviceEncode, serviceDecode } from "./cryptoService.encoding.js";
11
- const provider = createNodeCryptoProvider();
11
+ import { serviceEncode, serviceDecode, } from "./cryptoService.encoding.js";
12
12
  /**
13
13
  * High-level service facade for cryptographic operations.
14
+ *
15
+ * Every failure is surfaced as a `CryptoError` whose `cause` holds the
16
+ * underlying error, so misconfiguration (wrong key length, invalid
17
+ * option) can be distinguished from environmental failures.
14
18
  */
15
19
  export class CryptoService {
16
- /** Generates a cryptographic key. */
20
+ configuredProvider;
21
+ constructor(options = {}) {
22
+ this.configuredProvider = options.provider;
23
+ }
24
+ /**
25
+ * Returns the provider backing this service.
26
+ *
27
+ * When none was configured, the process-wide default is resolved on
28
+ * each call, so `setDefaultCryptoProvider` also affects this service.
29
+ */
30
+ getProvider() {
31
+ return this.configuredProvider ?? getDefaultCryptoProvider();
32
+ }
33
+ get provider() {
34
+ return this.getProvider();
35
+ }
36
+ /**
37
+ * Generates a random symmetric key sized for the algorithm.
38
+ *
39
+ * Asymmetric algorithms are rejected: random bytes are not a usable
40
+ * signing key. Use `generateEd25519KeyPair` for those.
41
+ */
17
42
  async generateKey(algorithm = CryptoAlgorithm.AES_256_GCM) {
18
- const length = algorithm.includes("256")
19
- ? 32
20
- : algorithm.includes("384")
21
- ? 48
22
- : algorithm.includes("512")
23
- ? 64
24
- : 32;
25
- return generateCryptoKey(length, { algorithm, extractable: true });
43
+ try {
44
+ return await generateCryptoKey(defaultKeyLength(algorithm), { algorithm, extractable: true }, this.provider);
45
+ }
46
+ catch (error) {
47
+ return rethrowAsCryptoError(error, (cause) => operationError("Key generation failed.", CryptoOperation.KEY_GENERATION, cause));
48
+ }
26
49
  }
27
50
  /** Generates random bytes. */
28
51
  async randomBytes(length = 32) {
29
- if (!Number.isInteger(length) || length <= 0)
52
+ if (!Number.isInteger(length) || length <= 0) {
30
53
  throw new TypeError("Random byte length must be a positive integer.");
54
+ }
31
55
  try {
32
- return await provider.randomBytes(length);
56
+ return await this.provider.randomBytes(length);
33
57
  }
34
- catch {
35
- throw createCryptoError("Failed to generate random bytes.", {});
58
+ catch (error) {
59
+ return rethrowAsCryptoError(error, (cause) => operationError("Failed to generate random bytes.", CryptoOperation.RANDOM, cause));
36
60
  }
37
61
  }
38
62
  /** Encrypts data using the supplied key. */
39
63
  async encrypt(plaintext, key, options) {
40
- return serviceEncrypt(plaintext, key, options);
64
+ return serviceEncrypt(plaintext, key, options, this.provider);
41
65
  }
42
66
  /** Decrypts data using the supplied key. */
43
67
  async decrypt(ciphertext, key, iv, authTag, aad) {
44
- return serviceDecrypt(ciphertext, key, iv, authTag, aad);
68
+ return serviceDecrypt(ciphertext, key, iv, authTag, aad, this.provider);
45
69
  }
46
70
  /** Hashes arbitrary data with SHA-256. */
47
71
  async hash(value) {
48
- return serviceHash(value);
72
+ return serviceHash(value, this.provider);
49
73
  }
50
74
  /** Hashes arbitrary data and returns hexadecimal output. */
51
75
  async hashHex(value) {
52
- return serviceHashHex(value);
76
+ return serviceHashHex(value, this.provider);
53
77
  }
54
- /** Hashes a password using the configured algorithm. */
78
+ /** Hashes a password using scrypt. */
55
79
  async hashPassword(password, options) {
56
- return serviceHashPassword(password, options);
80
+ return serviceHashPassword(password, options, this.provider);
57
81
  }
58
82
  /** Verifies a password against a stored password hash. */
59
83
  async verifyPassword(password, encodedHash) {
60
- return serviceVerifyPassword(password, encodedHash);
84
+ return serviceVerifyPassword(password, encodedHash, this.provider);
61
85
  }
62
86
  /** Derives a cryptographic key from password material. */
63
87
  async deriveKey(password, algorithm, options) {
64
- return serviceDeriveKey(password, algorithm, options);
88
+ return serviceDeriveKey(password, algorithm, options, this.provider);
65
89
  }
66
90
  /** Generates a cryptographically secure opaque token. */
67
91
  async generateToken(options) {
68
- return serviceGenerateToken(options);
92
+ return serviceGenerateToken(options, this.provider);
69
93
  }
70
94
  /** Generates a secure one-time password. */
71
95
  async generateOtp(digits = 6) {
72
- return serviceGenerateOtp(digits);
96
+ return serviceGenerateOtp(digits, this.provider);
73
97
  }
74
98
  /** Hashes an opaque token before database storage. */
75
99
  async hashToken(token) {
76
- return serviceHashToken(token);
100
+ return serviceHashToken(token, this.provider);
77
101
  }
78
102
  /** Verifies an opaque token against its stored hash. */
79
103
  async verifyToken(token, expectedHash) {
80
- return serviceVerifyToken(token, expectedHash);
104
+ return serviceVerifyToken(token, expectedHash, this.provider);
81
105
  }
82
106
  /** Encodes binary data. */
83
107
  encode(value, encoding = "base64url") {
@@ -91,11 +115,19 @@ export class CryptoService {
91
115
  /**
92
116
  * Creates a new CryptoService instance.
93
117
  */
94
- export function createCryptoService() {
95
- return new CryptoService();
118
+ export function createCryptoService(options = {}) {
119
+ return new CryptoService(options);
96
120
  }
97
121
  /**
98
122
  * Default crypto service instance.
123
+ *
124
+ * Construction is trivial (no provider is created until first use).
99
125
  */
100
126
  export const cryptoService = createCryptoService();
127
+ /**
128
+ * Returns the default crypto service instance.
129
+ */
130
+ export function getCryptoService() {
131
+ return cryptoService;
132
+ }
101
133
  //# sourceMappingURL=cryptoService.core.js.map
@@ -1,6 +1,6 @@
1
- import type { DerivedKeyResult } from "../cryptoProvider/index.js";
1
+ import type { CryptoProvider, DerivedKeyResult } from "../cryptoProvider/index.js";
2
2
  import type { Pbkdf2Options, ScryptOptions } from "../cryptoKeyDerivation/cryptoKeyDerivation.type.js";
3
- import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
3
+ import type { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
4
4
  export type { DerivedKeyResult, Pbkdf2Options, ScryptOptions };
5
- export declare function serviceDeriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions): Promise<DerivedKeyResult>;
5
+ export declare function serviceDeriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions, provider?: CryptoProvider): Promise<DerivedKeyResult>;
6
6
  //# sourceMappingURL=cryptoService.derivation.d.ts.map
@@ -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