@zudojs/crypto 0.0.1 → 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 (353) hide show
  1. package/README.md +43 -14
  2. package/dist/compare/compare.helper.d.ts +10 -2
  3. package/dist/compare/compare.helper.js +22 -6
  4. package/dist/cryptoCipher/cryptoCipher.core.d.ts +11 -1
  5. package/dist/cryptoCipher/cryptoCipher.core.js +19 -3
  6. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts +7 -2
  7. package/dist/cryptoCipher/cryptoCipher.envelope.js +33 -14
  8. package/dist/cryptoCipher/cryptoCipher.string.d.ts +2 -1
  9. package/dist/cryptoCipher/cryptoCipher.string.js +2 -2
  10. package/dist/cryptoConstants/cryptoConstants.guard.d.ts +9 -0
  11. package/dist/cryptoConstants/cryptoConstants.guard.js +16 -1
  12. package/dist/cryptoConstants/cryptoConstants.security.d.ts +34 -1
  13. package/dist/cryptoConstants/cryptoConstants.security.js +34 -1
  14. package/dist/cryptoConstants/cryptoConstants.token.d.ts +2 -0
  15. package/dist/cryptoConstants/cryptoConstants.token.js +2 -0
  16. package/dist/cryptoConstants/cryptoConstants.type.d.ts +36 -14
  17. package/dist/cryptoConstants/cryptoConstants.type.js +36 -14
  18. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts +4 -1
  19. package/dist/cryptoEncoding/cryptoEncoding.compare.js +11 -4
  20. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts +22 -0
  21. package/dist/cryptoEncoding/cryptoEncoding.core.js +41 -3
  22. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts +10 -2
  23. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js +24 -16
  24. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts +9 -1
  25. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js +23 -20
  26. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts +9 -2
  27. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js +17 -11
  28. package/dist/cryptoErrors/cryptoErrors.helper.d.ts +30 -0
  29. package/dist/cryptoErrors/cryptoErrors.helper.js +72 -0
  30. package/dist/cryptoFactory/cryptoFactory.core.d.ts +37 -6
  31. package/dist/cryptoFactory/cryptoFactory.core.js +56 -30
  32. package/dist/cryptoFactory/cryptoFactory.password.d.ts +4 -3
  33. package/dist/cryptoFactory/cryptoFactory.password.js +4 -4
  34. package/dist/cryptoFactory/cryptoFactory.token.d.ts +9 -8
  35. package/dist/cryptoFactory/cryptoFactory.token.js +16 -15
  36. package/dist/cryptoHash/cryptoHash.codec.d.ts +2 -0
  37. package/dist/cryptoHash/cryptoHash.codec.js +12 -12
  38. package/dist/cryptoHash/cryptoHash.compare.d.ts +3 -1
  39. package/dist/cryptoHash/cryptoHash.compare.js +5 -9
  40. package/dist/cryptoHash/cryptoHash.core.d.ts +6 -2
  41. package/dist/cryptoHash/cryptoHash.core.js +9 -2
  42. package/dist/cryptoHash/cryptoHmac.core.d.ts +8 -5
  43. package/dist/cryptoHash/cryptoHmac.core.js +22 -9
  44. package/dist/cryptoKey/cryptoKey.factory.d.ts +29 -2
  45. package/dist/cryptoKey/cryptoKey.factory.js +82 -18
  46. package/dist/cryptoKey/cryptoKey.utils.d.ts +5 -3
  47. package/dist/cryptoKey/cryptoKey.utils.js +5 -3
  48. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts +7 -1
  49. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js +40 -15
  50. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts +2 -1
  51. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js +2 -3
  52. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts +5 -1
  53. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts +2 -2
  54. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +16 -6
  55. package/dist/cryptoPassword/cryptoPassword.codec.d.ts +15 -1
  56. package/dist/cryptoPassword/cryptoPassword.codec.js +127 -56
  57. package/dist/cryptoPassword/cryptoPassword.core.d.ts +17 -3
  58. package/dist/cryptoPassword/cryptoPassword.core.js +29 -21
  59. package/dist/cryptoPassword/cryptoPassword.helper.js +6 -5
  60. package/dist/cryptoPassword/cryptoPassword.type.d.ts +33 -5
  61. package/dist/cryptoPassword/cryptoPassword.validate.d.ts +14 -3
  62. package/dist/cryptoPassword/cryptoPassword.validate.js +51 -20
  63. package/dist/cryptoProvider/cryptoProvider.default.d.ts +18 -0
  64. package/dist/cryptoProvider/cryptoProvider.default.js +31 -0
  65. package/dist/cryptoProvider/cryptoProvider.interface.d.ts +9 -34
  66. package/dist/cryptoProvider/cryptoProvider.type.d.ts +32 -3
  67. package/dist/cryptoProvider/cryptoProvider.type.js +40 -1
  68. package/dist/cryptoProvider/index.d.ts +5 -2
  69. package/dist/cryptoProvider/index.js +2 -0
  70. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts +11 -6
  71. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts +39 -3
  72. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts +5 -5
  73. package/dist/cryptoProvider/types/index.d.ts +1 -1
  74. package/dist/cryptoRandom/cryptoRandom.choice.d.ts +6 -3
  75. package/dist/cryptoRandom/cryptoRandom.choice.js +10 -6
  76. package/dist/cryptoRandom/cryptoRandom.core.d.ts +8 -5
  77. package/dist/cryptoRandom/cryptoRandom.core.js +8 -7
  78. package/dist/cryptoRandom/cryptoRandom.string.d.ts +11 -9
  79. package/dist/cryptoRandom/cryptoRandom.string.js +28 -29
  80. package/dist/cryptoService/cryptoService.core.d.ts +47 -9
  81. package/dist/cryptoService/cryptoService.core.js +65 -33
  82. package/dist/cryptoService/cryptoService.derivation.d.ts +3 -3
  83. package/dist/cryptoService/cryptoService.derivation.js +8 -6
  84. package/dist/cryptoService/cryptoService.encoding.js +6 -5
  85. package/dist/cryptoService/index.d.ts +1 -5
  86. package/dist/cryptoService/index.js +1 -5
  87. package/dist/cryptoService/operations/cryptoService.cipher.d.ts +3 -2
  88. package/dist/cryptoService/operations/cryptoService.cipher.js +13 -9
  89. package/dist/cryptoService/operations/cryptoService.hash.d.ts +3 -2
  90. package/dist/cryptoService/operations/cryptoService.hash.js +7 -8
  91. package/dist/cryptoService/operations/cryptoService.password.d.ts +7 -2
  92. package/dist/cryptoService/operations/cryptoService.password.js +20 -9
  93. package/dist/cryptoService/operations/cryptoService.token.d.ts +9 -4
  94. package/dist/cryptoService/operations/cryptoService.token.js +31 -17
  95. package/dist/cryptoSignature/cryptoSignature.core.d.ts +10 -2
  96. package/dist/cryptoSignature/cryptoSignature.core.js +7 -3
  97. package/dist/cryptoToken/cryptoToken.core.d.ts +15 -9
  98. package/dist/cryptoToken/cryptoToken.core.js +63 -38
  99. package/dist/cryptoToken/cryptoToken.hash.d.ts +9 -7
  100. package/dist/cryptoToken/cryptoToken.hash.js +19 -43
  101. package/dist/cryptoUtils/cryptoUtils.compare.d.ts +3 -1
  102. package/dist/cryptoUtils/cryptoUtils.compare.js +5 -14
  103. package/dist/cryptoUtils/cryptoUtils.number.d.ts +3 -0
  104. package/dist/cryptoUtils/cryptoUtils.number.js +12 -6
  105. package/dist/cryptoUtils/cryptoUtils.validation.d.ts +2 -2
  106. package/dist/cryptoUtils/cryptoUtils.validation.js +6 -8
  107. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts +4 -4
  108. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js +5 -23
  109. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts +4 -4
  110. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js +5 -32
  111. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts +4 -4
  112. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js +5 -20
  113. package/dist/index.d.ts +1 -2
  114. package/dist/index.js +1 -2
  115. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts +6 -29
  116. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js +0 -1
  117. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts +9 -4
  118. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js +25 -43
  119. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts +7 -0
  120. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js +89 -30
  121. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts +17 -10
  122. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js +112 -72
  123. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts +3 -12
  124. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js +74 -25
  125. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js +7 -2
  126. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts +6 -0
  127. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js +18 -18
  128. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts +10 -12
  129. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js +75 -20
  130. package/dist/node/signing/signing.conversion.d.ts +13 -3
  131. package/dist/node/signing/signing.conversion.js +35 -15
  132. package/dist/node/signing/signing.core.d.ts +2 -1
  133. package/dist/node/signing/signing.core.js +2 -3
  134. package/dist/node/signing/signing.utils.d.ts +10 -2
  135. package/dist/node/signing/signing.utils.js +26 -5
  136. package/package.json +18 -8
  137. package/dist/.tsbuildinfo +0 -1
  138. package/dist/compare/compare.helper.d.ts.map +0 -1
  139. package/dist/compare/compare.helper.js.map +0 -1
  140. package/dist/compare/index.d.ts.map +0 -1
  141. package/dist/compare/index.js.map +0 -1
  142. package/dist/cryptoAlgorithm/index.d.ts +0 -8
  143. package/dist/cryptoAlgorithm/index.d.ts.map +0 -1
  144. package/dist/cryptoAlgorithm/index.js +0 -8
  145. package/dist/cryptoAlgorithm/index.js.map +0 -1
  146. package/dist/cryptoCipher/cryptoCipher.core.d.ts.map +0 -1
  147. package/dist/cryptoCipher/cryptoCipher.core.js.map +0 -1
  148. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts.map +0 -1
  149. package/dist/cryptoCipher/cryptoCipher.envelope.js.map +0 -1
  150. package/dist/cryptoCipher/cryptoCipher.string.d.ts.map +0 -1
  151. package/dist/cryptoCipher/cryptoCipher.string.js.map +0 -1
  152. package/dist/cryptoCipher/index.d.ts.map +0 -1
  153. package/dist/cryptoCipher/index.js.map +0 -1
  154. package/dist/cryptoConstants/cryptoConstants.config.d.ts.map +0 -1
  155. package/dist/cryptoConstants/cryptoConstants.config.js.map +0 -1
  156. package/dist/cryptoConstants/cryptoConstants.guard.d.ts.map +0 -1
  157. package/dist/cryptoConstants/cryptoConstants.guard.js.map +0 -1
  158. package/dist/cryptoConstants/cryptoConstants.security.d.ts.map +0 -1
  159. package/dist/cryptoConstants/cryptoConstants.security.js.map +0 -1
  160. package/dist/cryptoConstants/cryptoConstants.token.d.ts.map +0 -1
  161. package/dist/cryptoConstants/cryptoConstants.token.js.map +0 -1
  162. package/dist/cryptoConstants/cryptoConstants.type.d.ts.map +0 -1
  163. package/dist/cryptoConstants/cryptoConstants.type.js.map +0 -1
  164. package/dist/cryptoConstants/index.d.ts.map +0 -1
  165. package/dist/cryptoConstants/index.js.map +0 -1
  166. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts.map +0 -1
  167. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js.map +0 -1
  168. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts.map +0 -1
  169. package/dist/cryptoEncoding/cryptoEncoding.compare.js.map +0 -1
  170. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts.map +0 -1
  171. package/dist/cryptoEncoding/cryptoEncoding.core.js.map +0 -1
  172. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts.map +0 -1
  173. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js.map +0 -1
  174. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts.map +0 -1
  175. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js.map +0 -1
  176. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts.map +0 -1
  177. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js.map +0 -1
  178. package/dist/cryptoEncoding/encoding/index.d.ts.map +0 -1
  179. package/dist/cryptoEncoding/encoding/index.js.map +0 -1
  180. package/dist/cryptoEncoding/index.d.ts.map +0 -1
  181. package/dist/cryptoEncoding/index.js.map +0 -1
  182. package/dist/cryptoErrors/index.d.ts.map +0 -1
  183. package/dist/cryptoErrors/index.js.map +0 -1
  184. package/dist/cryptoFactory/cryptoFactory.core.d.ts.map +0 -1
  185. package/dist/cryptoFactory/cryptoFactory.core.js.map +0 -1
  186. package/dist/cryptoFactory/cryptoFactory.encoding.d.ts.map +0 -1
  187. package/dist/cryptoFactory/cryptoFactory.encoding.js.map +0 -1
  188. package/dist/cryptoFactory/cryptoFactory.options.d.ts +0 -2
  189. package/dist/cryptoFactory/cryptoFactory.options.d.ts.map +0 -1
  190. package/dist/cryptoFactory/cryptoFactory.options.js +0 -6
  191. package/dist/cryptoFactory/cryptoFactory.options.js.map +0 -1
  192. package/dist/cryptoFactory/cryptoFactory.password.d.ts.map +0 -1
  193. package/dist/cryptoFactory/cryptoFactory.password.js.map +0 -1
  194. package/dist/cryptoFactory/cryptoFactory.token.d.ts.map +0 -1
  195. package/dist/cryptoFactory/cryptoFactory.token.js.map +0 -1
  196. package/dist/cryptoFactory/index.d.ts.map +0 -1
  197. package/dist/cryptoFactory/index.js.map +0 -1
  198. package/dist/cryptoHash/cryptoHash.codec.d.ts.map +0 -1
  199. package/dist/cryptoHash/cryptoHash.codec.js.map +0 -1
  200. package/dist/cryptoHash/cryptoHash.compare.d.ts.map +0 -1
  201. package/dist/cryptoHash/cryptoHash.compare.js.map +0 -1
  202. package/dist/cryptoHash/cryptoHash.convenience.d.ts.map +0 -1
  203. package/dist/cryptoHash/cryptoHash.convenience.js.map +0 -1
  204. package/dist/cryptoHash/cryptoHash.core.d.ts.map +0 -1
  205. package/dist/cryptoHash/cryptoHash.core.js.map +0 -1
  206. package/dist/cryptoHash/cryptoHmac.core.d.ts.map +0 -1
  207. package/dist/cryptoHash/cryptoHmac.core.js.map +0 -1
  208. package/dist/cryptoHash/index.d.ts.map +0 -1
  209. package/dist/cryptoHash/index.js.map +0 -1
  210. package/dist/cryptoKey/cryptoKey.factory.d.ts.map +0 -1
  211. package/dist/cryptoKey/cryptoKey.factory.js.map +0 -1
  212. package/dist/cryptoKey/cryptoKey.type.d.ts.map +0 -1
  213. package/dist/cryptoKey/cryptoKey.type.js.map +0 -1
  214. package/dist/cryptoKey/cryptoKey.utils.d.ts.map +0 -1
  215. package/dist/cryptoKey/cryptoKey.utils.js.map +0 -1
  216. package/dist/cryptoKey/index.d.ts.map +0 -1
  217. package/dist/cryptoKey/index.js.map +0 -1
  218. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts.map +0 -1
  219. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js.map +0 -1
  220. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts.map +0 -1
  221. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js.map +0 -1
  222. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts.map +0 -1
  223. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js.map +0 -1
  224. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts.map +0 -1
  225. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js.map +0 -1
  226. package/dist/cryptoKeyDerivation/index.d.ts.map +0 -1
  227. package/dist/cryptoKeyDerivation/index.js.map +0 -1
  228. package/dist/cryptoPassword/cryptoPassword.codec.d.ts.map +0 -1
  229. package/dist/cryptoPassword/cryptoPassword.codec.js.map +0 -1
  230. package/dist/cryptoPassword/cryptoPassword.core.d.ts.map +0 -1
  231. package/dist/cryptoPassword/cryptoPassword.core.js.map +0 -1
  232. package/dist/cryptoPassword/cryptoPassword.helper.d.ts.map +0 -1
  233. package/dist/cryptoPassword/cryptoPassword.helper.js.map +0 -1
  234. package/dist/cryptoPassword/cryptoPassword.type.d.ts.map +0 -1
  235. package/dist/cryptoPassword/cryptoPassword.type.js.map +0 -1
  236. package/dist/cryptoPassword/cryptoPassword.validate.d.ts.map +0 -1
  237. package/dist/cryptoPassword/cryptoPassword.validate.js.map +0 -1
  238. package/dist/cryptoPassword/index.d.ts.map +0 -1
  239. package/dist/cryptoPassword/index.js.map +0 -1
  240. package/dist/cryptoProvider/cryptoProvider.core.d.ts.map +0 -1
  241. package/dist/cryptoProvider/cryptoProvider.core.js.map +0 -1
  242. package/dist/cryptoProvider/cryptoProvider.interface.d.ts.map +0 -1
  243. package/dist/cryptoProvider/cryptoProvider.interface.js.map +0 -1
  244. package/dist/cryptoProvider/cryptoProvider.type.d.ts.map +0 -1
  245. package/dist/cryptoProvider/cryptoProvider.type.js.map +0 -1
  246. package/dist/cryptoProvider/index.d.ts.map +0 -1
  247. package/dist/cryptoProvider/index.js.map +0 -1
  248. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts.map +0 -1
  249. package/dist/cryptoProvider/types/cryptoCipher.type.js.map +0 -1
  250. package/dist/cryptoProvider/types/cryptoHash.type.d.ts.map +0 -1
  251. package/dist/cryptoProvider/types/cryptoHash.type.js.map +0 -1
  252. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts.map +0 -1
  253. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js.map +0 -1
  254. package/dist/cryptoProvider/types/cryptoRandom.type.d.ts.map +0 -1
  255. package/dist/cryptoProvider/types/cryptoRandom.type.js.map +0 -1
  256. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts.map +0 -1
  257. package/dist/cryptoProvider/types/cryptoSignature.type.js.map +0 -1
  258. package/dist/cryptoProvider/types/index.d.ts.map +0 -1
  259. package/dist/cryptoProvider/types/index.js.map +0 -1
  260. package/dist/cryptoRandom/cryptoRandom.choice.d.ts.map +0 -1
  261. package/dist/cryptoRandom/cryptoRandom.choice.js.map +0 -1
  262. package/dist/cryptoRandom/cryptoRandom.core.d.ts.map +0 -1
  263. package/dist/cryptoRandom/cryptoRandom.core.js.map +0 -1
  264. package/dist/cryptoRandom/cryptoRandom.string.d.ts.map +0 -1
  265. package/dist/cryptoRandom/cryptoRandom.string.js.map +0 -1
  266. package/dist/cryptoRandom/index.d.ts.map +0 -1
  267. package/dist/cryptoRandom/index.js.map +0 -1
  268. package/dist/cryptoService/cryptoService.core.d.ts.map +0 -1
  269. package/dist/cryptoService/cryptoService.core.js.map +0 -1
  270. package/dist/cryptoService/cryptoService.derivation.d.ts.map +0 -1
  271. package/dist/cryptoService/cryptoService.derivation.js.map +0 -1
  272. package/dist/cryptoService/cryptoService.encoding.d.ts.map +0 -1
  273. package/dist/cryptoService/cryptoService.encoding.js.map +0 -1
  274. package/dist/cryptoService/index.d.ts.map +0 -1
  275. package/dist/cryptoService/index.js.map +0 -1
  276. package/dist/cryptoService/operations/cryptoService.cipher.d.ts.map +0 -1
  277. package/dist/cryptoService/operations/cryptoService.cipher.js.map +0 -1
  278. package/dist/cryptoService/operations/cryptoService.hash.d.ts.map +0 -1
  279. package/dist/cryptoService/operations/cryptoService.hash.js.map +0 -1
  280. package/dist/cryptoService/operations/cryptoService.password.d.ts.map +0 -1
  281. package/dist/cryptoService/operations/cryptoService.password.js.map +0 -1
  282. package/dist/cryptoService/operations/cryptoService.token.d.ts.map +0 -1
  283. package/dist/cryptoService/operations/cryptoService.token.js.map +0 -1
  284. package/dist/cryptoService/operations/index.d.ts.map +0 -1
  285. package/dist/cryptoService/operations/index.js.map +0 -1
  286. package/dist/cryptoSignature/cryptoSignature.core.d.ts.map +0 -1
  287. package/dist/cryptoSignature/cryptoSignature.core.js.map +0 -1
  288. package/dist/cryptoSignature/index.d.ts.map +0 -1
  289. package/dist/cryptoSignature/index.js.map +0 -1
  290. package/dist/cryptoToken/cryptoToken.core.d.ts.map +0 -1
  291. package/dist/cryptoToken/cryptoToken.core.js.map +0 -1
  292. package/dist/cryptoToken/cryptoToken.hash.d.ts.map +0 -1
  293. package/dist/cryptoToken/cryptoToken.hash.js.map +0 -1
  294. package/dist/cryptoToken/cryptoToken.utils.d.ts.map +0 -1
  295. package/dist/cryptoToken/cryptoToken.utils.js.map +0 -1
  296. package/dist/cryptoToken/index.d.ts.map +0 -1
  297. package/dist/cryptoToken/index.js.map +0 -1
  298. package/dist/cryptoUtils/cryptoUtils.compare.d.ts.map +0 -1
  299. package/dist/cryptoUtils/cryptoUtils.compare.js.map +0 -1
  300. package/dist/cryptoUtils/cryptoUtils.conversion.d.ts.map +0 -1
  301. package/dist/cryptoUtils/cryptoUtils.conversion.js.map +0 -1
  302. package/dist/cryptoUtils/cryptoUtils.number.d.ts.map +0 -1
  303. package/dist/cryptoUtils/cryptoUtils.number.js.map +0 -1
  304. package/dist/cryptoUtils/cryptoUtils.text.d.ts.map +0 -1
  305. package/dist/cryptoUtils/cryptoUtils.text.js.map +0 -1
  306. package/dist/cryptoUtils/cryptoUtils.validation.d.ts.map +0 -1
  307. package/dist/cryptoUtils/cryptoUtils.validation.js.map +0 -1
  308. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts.map +0 -1
  309. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js.map +0 -1
  310. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts.map +0 -1
  311. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js.map +0 -1
  312. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts.map +0 -1
  313. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js.map +0 -1
  314. package/dist/cryptoUtils/encoding/index.d.ts.map +0 -1
  315. package/dist/cryptoUtils/encoding/index.js.map +0 -1
  316. package/dist/cryptoUtils/index.d.ts.map +0 -1
  317. package/dist/cryptoUtils/index.js.map +0 -1
  318. package/dist/index.d.ts.map +0 -1
  319. package/dist/index.js.map +0 -1
  320. package/dist/node/index.d.ts.map +0 -1
  321. package/dist/node/index.js.map +0 -1
  322. package/dist/node/nodeCryptoProvider/index.d.ts.map +0 -1
  323. package/dist/node/nodeCryptoProvider/index.js.map +0 -1
  324. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts.map +0 -1
  325. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js.map +0 -1
  326. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts.map +0 -1
  327. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js.map +0 -1
  328. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts.map +0 -1
  329. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js.map +0 -1
  330. package/dist/node/nodeCryptoProvider/operations/index.d.ts.map +0 -1
  331. package/dist/node/nodeCryptoProvider/operations/index.js.map +0 -1
  332. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts.map +0 -1
  333. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js.map +0 -1
  334. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts.map +0 -1
  335. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js.map +0 -1
  336. package/dist/node/nodeCryptoProvider/primitives/index.d.ts.map +0 -1
  337. package/dist/node/nodeCryptoProvider/primitives/index.js.map +0 -1
  338. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts.map +0 -1
  339. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js.map +0 -1
  340. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts.map +0 -1
  341. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js.map +0 -1
  342. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts.map +0 -1
  343. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js.map +0 -1
  344. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts.map +0 -1
  345. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js.map +0 -1
  346. package/dist/node/signing/index.d.ts.map +0 -1
  347. package/dist/node/signing/index.js.map +0 -1
  348. package/dist/node/signing/signing.conversion.d.ts.map +0 -1
  349. package/dist/node/signing/signing.conversion.js.map +0 -1
  350. package/dist/node/signing/signing.core.d.ts.map +0 -1
  351. package/dist/node/signing/signing.core.js.map +0 -1
  352. package/dist/node/signing/signing.utils.d.ts.map +0 -1
  353. package/dist/node/signing/signing.utils.js.map +0 -1
@@ -1,49 +1,39 @@
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
- let defaultProvider;
4
- /**
5
- * Returns a lazily created default crypto provider.
6
- *
7
- * The provider abstraction keeps token hashing 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 { isHex } from "../cryptoEncoding/encoding/cryptoEncoding.hex.js";
4
+ import { timingSafeEqual } from "../compare/compare.helper.js";
16
5
  /**
17
6
  * Creates a deterministic SHA-256 identifier from a token.
18
7
  *
19
8
  * The returned value does not expose the original token.
20
9
  */
21
- export async function hashToken(token) {
10
+ export async function hashToken(token, provider = getDefaultCryptoProvider()) {
22
11
  assertToken(token);
23
- const digest = await getDefaultProvider().hash("sha256", token);
12
+ const digest = await provider.hash("sha256", token);
24
13
  return encode(digest, "hex");
25
14
  }
26
15
  /**
27
16
  * Creates a Base64URL SHA-256 digest of a token.
28
17
  */
29
- export async function hashTokenBase64Url(token) {
18
+ export async function hashTokenBase64Url(token, provider = getDefaultCryptoProvider()) {
30
19
  assertToken(token);
31
- const digest = await getDefaultProvider().hash("sha256", token);
20
+ const digest = await provider.hash("sha256", token);
32
21
  return encode(digest, "base64url");
33
22
  }
34
23
  /**
35
- * Compares a token with a stored hash.
24
+ * Compares a token with a stored hex SHA-256 hash.
36
25
  *
37
- * Comparison is performed with a constant-time XOR accumulation to
38
- * avoid timing side-channels.
26
+ * The comparison is constant time and case-insensitive on the hex digits,
27
+ * so hashes upper-cased by a database or copied from another tool still
28
+ * match. Returns false for a malformed token or stored hash.
39
29
  */
40
- export async function verifyTokenHash(token, expectedHash) {
30
+ export async function verifyTokenHash(token, expectedHash, provider) {
31
+ if (typeof expectedHash !== "string" || !isHex(expectedHash)) {
32
+ return false;
33
+ }
41
34
  try {
42
- const actual = await hashToken(token);
43
- if (actual.length !== expectedHash.length) {
44
- return false;
45
- }
46
- return constantTimeEqual(actual, expectedHash);
35
+ const actual = await hashToken(token, provider);
36
+ return timingSafeEqual(Buffer.from(actual, "hex"), Buffer.from(expectedHash.toLowerCase(), "hex"));
47
37
  }
48
38
  catch {
49
39
  return false;
@@ -54,22 +44,8 @@ export async function verifyTokenHash(token, expectedHash) {
54
44
  *
55
45
  * This is useful when a raw bearer token must never be persisted.
56
46
  */
57
- export async function hashTokenForStorage(token) {
58
- return hashToken(token);
59
- }
60
- /**
61
- * Compares two hex-encoded strings in constant time.
62
- */
63
- function constantTimeEqual(left, right) {
64
- let mismatch = 0;
65
- const length = left.length;
66
- if (length !== right.length) {
67
- return false;
68
- }
69
- for (let i = 0; i < length; i += 1) {
70
- mismatch |= left.charCodeAt(i) ^ right.charCodeAt(i);
71
- }
72
- return mismatch === 0;
47
+ export async function hashTokenForStorage(token, provider) {
48
+ return hashToken(token, provider);
73
49
  }
74
50
  /**
75
51
  * Validates the basic shape of an opaque token.
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Compares two byte arrays in constant time.
3
3
  *
4
- * Different lengths return false immediately.
4
+ * Different lengths return false immediately. Alias of `timingSafeEqual`.
5
5
  */
6
6
  export declare function secureEqual(left: Uint8Array, right: Uint8Array): boolean;
7
7
  /**
8
8
  * Performs a constant-time comparison of two strings.
9
+ *
10
+ * Alias of `timingSafeEqualString`.
9
11
  */
10
12
  export declare function secureStringEqual(left: string, right: string): boolean;
11
13
  //# sourceMappingURL=cryptoUtils.compare.d.ts.map
@@ -1,27 +1,18 @@
1
- import { timingSafeEqual } from "../compare/compare.helper.js";
1
+ import { timingSafeEqual, timingSafeEqualString, } from "../compare/compare.helper.js";
2
2
  /**
3
3
  * Compares two byte arrays in constant time.
4
4
  *
5
- * Different lengths return false immediately.
5
+ * Different lengths return false immediately. Alias of `timingSafeEqual`.
6
6
  */
7
7
  export function secureEqual(left, right) {
8
- if (left.byteLength !== right.byteLength) {
9
- return false;
10
- }
11
8
  return timingSafeEqual(left, right);
12
9
  }
13
10
  /**
14
11
  * Performs a constant-time comparison of two strings.
12
+ *
13
+ * Alias of `timingSafeEqualString`.
15
14
  */
16
15
  export function secureStringEqual(left, right) {
17
- if (typeof left !== "string" || typeof right !== "string") {
18
- return false;
19
- }
20
- const leftBytes = new TextEncoder().encode(left);
21
- const rightBytes = new TextEncoder().encode(right);
22
- if (leftBytes.byteLength !== rightBytes.byteLength) {
23
- return false;
24
- }
25
- return timingSafeEqual(leftBytes, rightBytes);
16
+ return timingSafeEqualString(left, right);
26
17
  }
27
18
  //# sourceMappingURL=cryptoUtils.compare.js.map
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Converts a number into an unsigned big-endian byte array.
3
+ *
4
+ * The default width of 6 bytes (48 bits) is the largest width for which
5
+ * every safe integer conversion is exact.
3
6
  */
4
7
  export declare function numberToBytes(value: number, byteLength?: number): Uint8Array;
5
8
  /**
@@ -1,17 +1,23 @@
1
+ const MAX_BYTE_LENGTH = 6;
1
2
  /**
2
3
  * Converts a number into an unsigned big-endian byte array.
4
+ *
5
+ * The default width of 6 bytes (48 bits) is the largest width for which
6
+ * every safe integer conversion is exact.
3
7
  */
4
- export function numberToBytes(value, byteLength = 8) {
8
+ export function numberToBytes(value, byteLength = MAX_BYTE_LENGTH) {
5
9
  if (!Number.isSafeInteger(value) || value < 0) {
6
10
  throw new RangeError("value must be a non-negative safe integer.");
7
11
  }
8
- if (!Number.isInteger(byteLength) || byteLength <= 0 || byteLength > 6) {
9
- throw new RangeError("byteLength must be an integer between 1 and 6.");
12
+ if (!Number.isInteger(byteLength) ||
13
+ byteLength <= 0 ||
14
+ byteLength > MAX_BYTE_LENGTH) {
15
+ throw new RangeError(`byteLength must be an integer between 1 and ${MAX_BYTE_LENGTH}.`);
10
16
  }
11
17
  const result = new Uint8Array(byteLength);
12
18
  let remaining = value;
13
19
  for (let index = byteLength - 1; index >= 0; index -= 1) {
14
- result[index] = remaining & 0xff;
20
+ result[index] = remaining % 256;
15
21
  remaining = Math.floor(remaining / 256);
16
22
  }
17
23
  if (remaining !== 0) {
@@ -23,8 +29,8 @@ export function numberToBytes(value, byteLength = 8) {
23
29
  * Converts unsigned big-endian bytes into a number.
24
30
  */
25
31
  export function bytesToNumber(value) {
26
- if (value.byteLength === 0 || value.byteLength > 6) {
27
- throw new RangeError("Byte array length must be between 1 and 6.");
32
+ if (value.byteLength === 0 || value.byteLength > MAX_BYTE_LENGTH) {
33
+ throw new RangeError(`Byte array length must be between 1 and ${MAX_BYTE_LENGTH}.`);
28
34
  }
29
35
  let result = 0;
30
36
  for (const byte of value) {
@@ -7,11 +7,11 @@ export declare function isBytes(value: unknown): value is Uint8Array;
7
7
  */
8
8
  export declare function isArrayBuffer(value: unknown): value is ArrayBuffer;
9
9
  /**
10
- * Returns whether a string contains only hexadecimal characters.
10
+ * Returns whether a string is valid hexadecimal. Alias of `isHex`.
11
11
  */
12
12
  export declare function isHexString(value: string): boolean;
13
13
  /**
14
- * Returns whether a string is a valid Base64URL value.
14
+ * Returns whether a string is valid, canonical Base64URL. Alias of `isBase64Url`.
15
15
  */
16
16
  export declare function isBase64UrlString(value: string): boolean;
17
17
  //# sourceMappingURL=cryptoUtils.validation.d.ts.map
@@ -1,3 +1,5 @@
1
+ import { isHex } from "../cryptoEncoding/encoding/cryptoEncoding.hex.js";
2
+ import { isBase64Url } from "../cryptoEncoding/encoding/cryptoEncoding.base64url.js";
1
3
  /**
2
4
  * Returns whether a value is a Uint8Array.
3
5
  */
@@ -11,19 +13,15 @@ export function isArrayBuffer(value) {
11
13
  return value instanceof ArrayBuffer;
12
14
  }
13
15
  /**
14
- * Returns whether a string contains only hexadecimal characters.
16
+ * Returns whether a string is valid hexadecimal. Alias of `isHex`.
15
17
  */
16
18
  export function isHexString(value) {
17
- return (typeof value === "string" &&
18
- value.length % 2 === 0 &&
19
- /^[0-9a-fA-F]*$/.test(value));
19
+ return isHex(value);
20
20
  }
21
21
  /**
22
- * Returns whether a string is a valid Base64URL value.
22
+ * Returns whether a string is valid, canonical Base64URL. Alias of `isBase64Url`.
23
23
  */
24
24
  export function isBase64UrlString(value) {
25
- return (typeof value === "string" &&
26
- value.length % 4 !== 1 &&
27
- /^[A-Za-z0-9_-]*$/.test(value));
25
+ return isBase64Url(value);
28
26
  }
29
27
  //# sourceMappingURL=cryptoUtils.validation.js.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Converts bytes into Base64.
2
+ * Converts bytes into Base64. Alias of `toBase64`.
3
3
  */
4
- export declare function bytesToBase64(value: Uint8Array): string;
4
+ export declare const bytesToBase64: (value: Uint8Array) => string;
5
5
  /**
6
- * Converts Base64 into bytes.
6
+ * Converts Base64 into bytes. Alias of `fromBase64`.
7
7
  */
8
- export declare function base64ToBytes(value: string): Uint8Array;
8
+ export declare const base64ToBytes: (value: string) => Uint8Array;
9
9
  //# sourceMappingURL=cryptoUtils.base64.d.ts.map
@@ -1,28 +1,10 @@
1
+ import { toBase64, fromBase64, } from "../../cryptoEncoding/encoding/cryptoEncoding.base64.js";
1
2
  /**
2
- * Converts bytes into Base64.
3
+ * Converts bytes into Base64. Alias of `toBase64`.
3
4
  */
4
- export function bytesToBase64(value) {
5
- const binary = Array.from(value)
6
- .map((b) => String.fromCharCode(b))
7
- .join("");
8
- return btoa(binary);
9
- }
5
+ export const bytesToBase64 = toBase64;
10
6
  /**
11
- * Converts Base64 into bytes.
7
+ * Converts Base64 into bytes. Alias of `fromBase64`.
12
8
  */
13
- export function base64ToBytes(value) {
14
- if (typeof value !== "string") {
15
- throw new TypeError("Base64 value must be a string.");
16
- }
17
- if (value.length % 4 !== 0 ||
18
- !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) {
19
- throw new TypeError("Invalid Base64 value.");
20
- }
21
- const binary = atob(value);
22
- const result = new Uint8Array(binary.length);
23
- for (let i = 0; i < binary.length; i += 1) {
24
- result[i] = binary.charCodeAt(i);
25
- }
26
- return result;
27
- }
9
+ export const base64ToBytes = fromBase64;
28
10
  //# sourceMappingURL=cryptoUtils.base64.js.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Converts bytes into URL-safe Base64 without padding.
2
+ * Converts bytes into URL-safe Base64 without padding. Alias of `toBase64Url`.
3
3
  */
4
- export declare function bytesToBase64Url(value: Uint8Array): string;
4
+ export declare const bytesToBase64Url: (value: Uint8Array) => string;
5
5
  /**
6
- * Converts URL-safe Base64 into bytes.
6
+ * Converts URL-safe Base64 into bytes. Alias of `fromBase64Url`.
7
7
  */
8
- export declare function base64UrlToBytes(value: string): Uint8Array;
8
+ export declare const base64UrlToBytes: (value: string) => Uint8Array;
9
9
  //# sourceMappingURL=cryptoUtils.base64url.d.ts.map
@@ -1,37 +1,10 @@
1
+ import { toBase64Url, fromBase64Url, } from "../../cryptoEncoding/encoding/cryptoEncoding.base64url.js";
1
2
  /**
2
- * Converts bytes into URL-safe Base64 without padding.
3
+ * Converts bytes into URL-safe Base64 without padding. Alias of `toBase64Url`.
3
4
  */
4
- export function bytesToBase64Url(value) {
5
- const binary = Array.from(value)
6
- .map((b) => String.fromCharCode(b))
7
- .join("");
8
- return btoa(binary)
9
- .replace(/\+/g, "-")
10
- .replace(/\//g, "_")
11
- .replace(/=+$/, "");
12
- }
5
+ export const bytesToBase64Url = toBase64Url;
13
6
  /**
14
- * Converts URL-safe Base64 into bytes.
7
+ * Converts URL-safe Base64 into bytes. Alias of `fromBase64Url`.
15
8
  */
16
- export function base64UrlToBytes(value) {
17
- if (typeof value !== "string") {
18
- throw new TypeError("Base64URL value must be a string.");
19
- }
20
- if (!/^[A-Za-z0-9_-]*$/.test(value)) {
21
- throw new TypeError("Invalid Base64URL value.");
22
- }
23
- if (value.length % 4 === 1) {
24
- throw new TypeError("Invalid Base64URL length.");
25
- }
26
- let base64 = value.replace(/-/g, "+").replace(/_/g, "/");
27
- while (base64.length % 4) {
28
- base64 += "=";
29
- }
30
- const binary = atob(base64);
31
- const result = new Uint8Array(binary.length);
32
- for (let i = 0; i < binary.length; i += 1) {
33
- result[i] = binary.charCodeAt(i);
34
- }
35
- return result;
36
- }
9
+ export const base64UrlToBytes = fromBase64Url;
37
10
  //# sourceMappingURL=cryptoUtils.base64url.js.map
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Converts bytes into a hexadecimal string.
2
+ * Converts bytes into a hexadecimal string. Alias of `toHex`.
3
3
  */
4
- export declare function bytesToHex(value: Uint8Array): string;
4
+ export declare const bytesToHex: (value: Uint8Array) => string;
5
5
  /**
6
- * Converts a hexadecimal string into bytes.
6
+ * Converts a hexadecimal string into bytes. Alias of `fromHex`.
7
7
  */
8
- export declare function hexToBytes(value: string): Uint8Array;
8
+ export declare const hexToBytes: (value: string) => Uint8Array;
9
9
  //# sourceMappingURL=cryptoUtils.hex.d.ts.map
@@ -1,25 +1,10 @@
1
+ import { toHex, fromHex } from "../../cryptoEncoding/encoding/cryptoEncoding.hex.js";
1
2
  /**
2
- * Converts bytes into a hexadecimal string.
3
+ * Converts bytes into a hexadecimal string. Alias of `toHex`.
3
4
  */
4
- export function bytesToHex(value) {
5
- return Array.from(value)
6
- .map((b) => b.toString(16).padStart(2, "0"))
7
- .join("");
8
- }
5
+ export const bytesToHex = toHex;
9
6
  /**
10
- * Converts a hexadecimal string into bytes.
7
+ * Converts a hexadecimal string into bytes. Alias of `fromHex`.
11
8
  */
12
- export function hexToBytes(value) {
13
- if (typeof value !== "string") {
14
- throw new TypeError("Hex value must be a string.");
15
- }
16
- if (value.length % 2 !== 0 || !/^[0-9a-fA-F]*$/.test(value)) {
17
- throw new TypeError("Invalid hexadecimal value.");
18
- }
19
- const result = new Uint8Array(value.length / 2);
20
- for (let i = 0; i < value.length; i += 2) {
21
- result[i / 2] = parseInt(value.slice(i, i + 2), 16);
22
- }
23
- return result;
24
- }
9
+ export const hexToBytes = fromHex;
25
10
  //# sourceMappingURL=cryptoUtils.hex.js.map
package/dist/index.d.ts CHANGED
@@ -2,13 +2,12 @@
2
2
  * @zudojs/crypto
3
3
  *
4
4
  * Cryptographic primitives for the Zudojs framework.
5
- * Provides symmetric/asymmetric encryption, hashing, password hashing,
5
+ * Provides symmetric encryption, hashing, password hashing,
6
6
  * digital signatures, key derivation, and secure random generation.
7
7
  */
8
8
  export * from "./compare/index.js";
9
9
  export * from "./cryptoProvider/index.js";
10
10
  export * from "./node/index.js";
11
- export * from "./cryptoAlgorithm/index.js";
12
11
  export * from "./cryptoCipher/index.js";
13
12
  export * from "./cryptoConstants/index.js";
14
13
  export * from "./cryptoEncoding/index.js";
package/dist/index.js CHANGED
@@ -2,13 +2,12 @@
2
2
  * @zudojs/crypto
3
3
  *
4
4
  * Cryptographic primitives for the Zudojs framework.
5
- * Provides symmetric/asymmetric encryption, hashing, password hashing,
5
+ * Provides symmetric encryption, hashing, password hashing,
6
6
  * digital signatures, key derivation, and secure random generation.
7
7
  */
8
8
  export * from "./compare/index.js";
9
9
  export * from "./cryptoProvider/index.js";
10
10
  export * from "./node/index.js";
11
- export * from "./cryptoAlgorithm/index.js";
12
11
  export * from "./cryptoCipher/index.js";
13
12
  export * from "./cryptoConstants/index.js";
14
13
  export * from "./cryptoEncoding/index.js";
@@ -1,4 +1,4 @@
1
- import type { CryptoProvider, HashAlgorithm, HmacAlgorithm, SignatureAlgorithm, KeyDerivationAlgorithm, CryptoInput, EncryptedData, DeriveKeyOptions } from "../../cryptoProvider/index.js";
1
+ import type { CryptoProvider, HashAlgorithm, HmacAlgorithm, CryptoInput, EncryptedData, EncryptOptions, DecryptOptions, SignOptions, VerifyOptions, DeriveKeyOptions, PasswordHashProviderOptions } from "../../cryptoProvider/index.js";
2
2
  import type { CryptoCapabilities } from "../../cryptoProvider/cryptoProvider.type.js";
3
3
  export declare class NodeCryptoProvider implements CryptoProvider {
4
4
  readonly name = "node";
@@ -8,35 +8,12 @@ export declare class NodeCryptoProvider implements CryptoProvider {
8
8
  randomUUID(): Promise<string>;
9
9
  hash(algorithm: HashAlgorithm, data: CryptoInput): Promise<Uint8Array>;
10
10
  hmac(algorithm: HmacAlgorithm, key: CryptoInput, data: CryptoInput): Promise<Uint8Array>;
11
- encrypt(options: {
12
- key: CryptoInput;
13
- plaintext: CryptoInput;
14
- associatedData?: CryptoInput;
15
- nonce?: Uint8Array;
16
- }): Promise<EncryptedData>;
17
- decrypt(options: {
18
- key: CryptoInput;
19
- encrypted: EncryptedData;
20
- associatedData?: CryptoInput;
21
- }): Promise<Uint8Array>;
22
- sign(options: {
23
- key: CryptoInput;
24
- data: CryptoInput;
25
- algorithm?: SignatureAlgorithm;
26
- }): Promise<Uint8Array>;
27
- verify(options: {
28
- key: CryptoInput;
29
- data: CryptoInput;
30
- signature: Uint8Array;
31
- algorithm?: SignatureAlgorithm;
32
- }): Promise<boolean>;
11
+ encrypt(options: EncryptOptions): Promise<EncryptedData>;
12
+ decrypt(options: DecryptOptions): Promise<Uint8Array>;
13
+ sign(options: SignOptions): Promise<Uint8Array>;
14
+ verify(options: VerifyOptions): Promise<boolean>;
33
15
  deriveKey(options: DeriveKeyOptions): Promise<Uint8Array>;
34
- hashPassword(password: CryptoInput, options?: {
35
- algorithm?: KeyDerivationAlgorithm;
36
- memoryCost?: number;
37
- timeCost?: number;
38
- parallelism?: number;
39
- }): Promise<string>;
16
+ hashPassword(password: CryptoInput, options?: PasswordHashProviderOptions): Promise<string>;
40
17
  verifyPassword(password: CryptoInput, hash: string): Promise<boolean>;
41
18
  }
42
19
  //# sourceMappingURL=nodeCryptoProvider.core.d.ts.map
@@ -4,7 +4,6 @@ import { sign as signImpl, verify as verifyImpl, } from "./primitives/nodeCrypto
4
4
  import { deriveKey as deriveKeyImpl } from "./operations/nodeCryptoProvider.derivation.js";
5
5
  import { hashPassword as hashPasswordImpl, verifyPassword as verifyPasswordImpl, } from "./operations/nodeCryptoProvider.password.js";
6
6
  import { randomBytesImpl, randomIntImpl, randomUUIDImpl, } from "./primitives/nodeCryptoProvider.random.js";
7
- import { cryptoHashError, cryptoCipherError, cryptoSignatureError, cryptoKeyDerivationError, } from "@zudojs/errors";
8
7
  export class NodeCryptoProvider {
9
8
  name = "node";
10
9
  capabilities = {
@@ -1,8 +1,13 @@
1
1
  import type { HashAlgorithm, HmacAlgorithm } from "../../cryptoProvider/index.js";
2
- import type { SignatureAlgorithm } from "../../cryptoProvider/index.js";
2
+ /**
3
+ * Normalizes any `CryptoInput` into bytes (strings are UTF-8 encoded).
4
+ */
3
5
  export declare function toBytes(input: Uint8Array | string | ArrayBuffer): Uint8Array;
6
+ /**
7
+ * Maps a package hash algorithm name to the OpenSSL digest name.
8
+ *
9
+ * Only the allowlisted algorithms are accepted; anything else (md5, sha1,
10
+ * arbitrary strings from configuration) throws.
11
+ */
4
12
  export declare function nodeHashAlgorithm(algorithm: HashAlgorithm | HmacAlgorithm): string;
5
- export declare function nodeSignatureAlgorithm(algorithm: SignatureAlgorithm): string;
6
- export declare function toBase64Url(bytes: Uint8Array): string;
7
- export declare function fromBase64Url(value: string): Uint8Array;
8
13
  //# sourceMappingURL=nodeCryptoProvider.helper.d.ts.map
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Normalizes any `CryptoInput` into bytes (strings are UTF-8 encoded).
3
+ */
1
4
  export function toBytes(input) {
2
5
  if (input instanceof Uint8Array) {
3
6
  return input;
@@ -5,51 +8,30 @@ export function toBytes(input) {
5
8
  if (typeof input === "string") {
6
9
  return new Uint8Array(Buffer.from(input, "utf8"));
7
10
  }
8
- return new Uint8Array(input);
9
- }
10
- export function nodeHashAlgorithm(algorithm) {
11
- const map = {
12
- sha256: "sha256",
13
- sha384: "sha384",
14
- sha512: "sha512",
15
- "sha3-256": "sha3-256",
16
- "sha3-384": "sha3-384",
17
- "sha3-512": "sha3-512",
18
- };
19
- return map[algorithm] ?? algorithm;
20
- }
21
- export function nodeSignatureAlgorithm(algorithm) {
22
- switch (algorithm) {
23
- case "rsa-sha256":
24
- return "RSA-SHA256";
25
- case "rsa-sha384":
26
- return "RSA-SHA384";
27
- case "rsa-sha512":
28
- return "RSA-SHA512";
29
- case "ecdsa-sha256":
30
- return "ecdsa-SHA256";
31
- case "ecdsa-sha384":
32
- return "ecdsa-SHA384";
33
- case "ecdsa-sha512":
34
- return "ecdsa-SHA512";
35
- case "ed25519":
36
- return "ed25519";
37
- default:
38
- throw new TypeError(`Unsupported signature algorithm: ${algorithm}.`);
11
+ if (input instanceof ArrayBuffer) {
12
+ return new Uint8Array(input);
39
13
  }
14
+ throw new TypeError("Input must be a string, Uint8Array, or ArrayBuffer.");
40
15
  }
41
- export function toBase64Url(bytes) {
42
- return Buffer.from(bytes)
43
- .toString("base64")
44
- .replace(/\+/g, "-")
45
- .replace(/\//g, "_")
46
- .replace(/=/g, "");
47
- }
48
- export function fromBase64Url(value) {
49
- let base64 = value.replace(/-/g, "+").replace(/_/g, "/");
50
- while (base64.length % 4 !== 0) {
51
- base64 += "=";
16
+ const NODE_HASH_ALGORITHMS = Object.freeze({
17
+ sha256: "sha256",
18
+ sha384: "sha384",
19
+ sha512: "sha512",
20
+ "sha3-256": "sha3-256",
21
+ "sha3-384": "sha3-384",
22
+ "sha3-512": "sha3-512",
23
+ });
24
+ /**
25
+ * Maps a package hash algorithm name to the OpenSSL digest name.
26
+ *
27
+ * Only the allowlisted algorithms are accepted; anything else (md5, sha1,
28
+ * arbitrary strings from configuration) throws.
29
+ */
30
+ export function nodeHashAlgorithm(algorithm) {
31
+ const name = typeof algorithm === "string" ? NODE_HASH_ALGORITHMS[algorithm] : undefined;
32
+ if (name === undefined) {
33
+ throw new TypeError(`Unsupported hash algorithm: ${String(algorithm)}.`);
52
34
  }
53
- return new Uint8Array(Buffer.from(base64, "base64"));
35
+ return name;
54
36
  }
55
37
  //# sourceMappingURL=nodeCryptoProvider.helper.js.map
@@ -1,3 +1,10 @@
1
1
  import type { DeriveKeyOptions } from "../../../cryptoProvider/index.js";
2
+ /**
3
+ * Computes a memory bound for scrypt from its parameters.
4
+ *
5
+ * OpenSSL requires roughly `128 * N * r` bytes plus `128 * r * p`; we
6
+ * double that for margin and never go below Node's own 32 MiB default.
7
+ */
8
+ export declare function defaultScryptMaxMemory(N: number, r: number, p: number): number;
2
9
  export declare function deriveKey(options: DeriveKeyOptions): Promise<Uint8Array>;
3
10
  //# sourceMappingURL=nodeCryptoProvider.derivation.d.ts.map