@zudojs/crypto 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/compare/compare.helper.d.ts +8 -0
  5. package/dist/compare/compare.helper.d.ts.map +1 -0
  6. package/dist/compare/compare.helper.js +17 -0
  7. package/dist/compare/compare.helper.js.map +1 -0
  8. package/dist/compare/index.d.ts +7 -0
  9. package/dist/compare/index.d.ts.map +1 -0
  10. package/dist/compare/index.js +7 -0
  11. package/dist/compare/index.js.map +1 -0
  12. package/dist/cryptoAlgorithm/index.d.ts +8 -0
  13. package/dist/cryptoAlgorithm/index.d.ts.map +1 -0
  14. package/dist/cryptoAlgorithm/index.js +8 -0
  15. package/dist/cryptoAlgorithm/index.js.map +1 -0
  16. package/dist/cryptoCipher/cryptoCipher.core.d.ts +25 -0
  17. package/dist/cryptoCipher/cryptoCipher.core.d.ts.map +1 -0
  18. package/dist/cryptoCipher/cryptoCipher.core.js +35 -0
  19. package/dist/cryptoCipher/cryptoCipher.core.js.map +1 -0
  20. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts +16 -0
  21. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts.map +1 -0
  22. package/dist/cryptoCipher/cryptoCipher.envelope.js +50 -0
  23. package/dist/cryptoCipher/cryptoCipher.envelope.js.map +1 -0
  24. package/dist/cryptoCipher/cryptoCipher.string.d.ts +10 -0
  25. package/dist/cryptoCipher/cryptoCipher.string.d.ts.map +1 -0
  26. package/dist/cryptoCipher/cryptoCipher.string.js +15 -0
  27. package/dist/cryptoCipher/cryptoCipher.string.js.map +1 -0
  28. package/dist/cryptoCipher/index.d.ts +9 -0
  29. package/dist/cryptoCipher/index.d.ts.map +1 -0
  30. package/dist/cryptoCipher/index.js +9 -0
  31. package/dist/cryptoCipher/index.js.map +1 -0
  32. package/dist/cryptoConstants/cryptoConstants.config.d.ts +36 -0
  33. package/dist/cryptoConstants/cryptoConstants.config.d.ts.map +1 -0
  34. package/dist/cryptoConstants/cryptoConstants.config.js +29 -0
  35. package/dist/cryptoConstants/cryptoConstants.config.js.map +1 -0
  36. package/dist/cryptoConstants/cryptoConstants.guard.d.ts +28 -0
  37. package/dist/cryptoConstants/cryptoConstants.guard.d.ts.map +1 -0
  38. package/dist/cryptoConstants/cryptoConstants.guard.js +45 -0
  39. package/dist/cryptoConstants/cryptoConstants.guard.js.map +1 -0
  40. package/dist/cryptoConstants/cryptoConstants.security.d.ts +41 -0
  41. package/dist/cryptoConstants/cryptoConstants.security.d.ts.map +1 -0
  42. package/dist/cryptoConstants/cryptoConstants.security.js +42 -0
  43. package/dist/cryptoConstants/cryptoConstants.security.js.map +1 -0
  44. package/dist/cryptoConstants/cryptoConstants.token.d.ts +47 -0
  45. package/dist/cryptoConstants/cryptoConstants.token.d.ts.map +1 -0
  46. package/dist/cryptoConstants/cryptoConstants.token.js +47 -0
  47. package/dist/cryptoConstants/cryptoConstants.token.js.map +1 -0
  48. package/dist/cryptoConstants/cryptoConstants.type.d.ts +95 -0
  49. package/dist/cryptoConstants/cryptoConstants.type.d.ts.map +1 -0
  50. package/dist/cryptoConstants/cryptoConstants.type.js +116 -0
  51. package/dist/cryptoConstants/cryptoConstants.type.js.map +1 -0
  52. package/dist/cryptoConstants/index.d.ts +11 -0
  53. package/dist/cryptoConstants/index.d.ts.map +1 -0
  54. package/dist/cryptoConstants/index.js +11 -0
  55. package/dist/cryptoConstants/index.js.map +1 -0
  56. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts +9 -0
  57. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts.map +1 -0
  58. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js +19 -0
  59. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js.map +1 -0
  60. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts +8 -0
  61. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts.map +1 -0
  62. package/dist/cryptoEncoding/cryptoEncoding.compare.js +16 -0
  63. package/dist/cryptoEncoding/cryptoEncoding.compare.js.map +1 -0
  64. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts +21 -0
  65. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts.map +1 -0
  66. package/dist/cryptoEncoding/cryptoEncoding.core.js +63 -0
  67. package/dist/cryptoEncoding/cryptoEncoding.core.js.map +1 -0
  68. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts +13 -0
  69. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts.map +1 -0
  70. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js +35 -0
  71. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js.map +1 -0
  72. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts +13 -0
  73. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts.map +1 -0
  74. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js +40 -0
  75. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js.map +1 -0
  76. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts +13 -0
  77. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts.map +1 -0
  78. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js +31 -0
  79. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js.map +1 -0
  80. package/dist/cryptoEncoding/encoding/index.d.ts +9 -0
  81. package/dist/cryptoEncoding/encoding/index.d.ts.map +1 -0
  82. package/dist/cryptoEncoding/encoding/index.js +9 -0
  83. package/dist/cryptoEncoding/encoding/index.js.map +1 -0
  84. package/dist/cryptoEncoding/index.d.ts +12 -0
  85. package/dist/cryptoEncoding/index.d.ts.map +1 -0
  86. package/dist/cryptoEncoding/index.js +12 -0
  87. package/dist/cryptoEncoding/index.js.map +1 -0
  88. package/dist/cryptoErrors/index.d.ts +11 -0
  89. package/dist/cryptoErrors/index.d.ts.map +1 -0
  90. package/dist/cryptoErrors/index.js +10 -0
  91. package/dist/cryptoErrors/index.js.map +1 -0
  92. package/dist/cryptoFactory/cryptoFactory.core.d.ts +60 -0
  93. package/dist/cryptoFactory/cryptoFactory.core.d.ts.map +1 -0
  94. package/dist/cryptoFactory/cryptoFactory.core.js +105 -0
  95. package/dist/cryptoFactory/cryptoFactory.core.js.map +1 -0
  96. package/dist/cryptoFactory/cryptoFactory.encoding.d.ts +5 -0
  97. package/dist/cryptoFactory/cryptoFactory.encoding.d.ts.map +1 -0
  98. package/dist/cryptoFactory/cryptoFactory.encoding.js +8 -0
  99. package/dist/cryptoFactory/cryptoFactory.encoding.js.map +1 -0
  100. package/dist/cryptoFactory/cryptoFactory.options.d.ts +2 -0
  101. package/dist/cryptoFactory/cryptoFactory.options.d.ts.map +1 -0
  102. package/dist/cryptoFactory/cryptoFactory.options.js +6 -0
  103. package/dist/cryptoFactory/cryptoFactory.options.js.map +1 -0
  104. package/dist/cryptoFactory/cryptoFactory.password.d.ts +5 -0
  105. package/dist/cryptoFactory/cryptoFactory.password.d.ts.map +1 -0
  106. package/dist/cryptoFactory/cryptoFactory.password.js +8 -0
  107. package/dist/cryptoFactory/cryptoFactory.password.js.map +1 -0
  108. package/dist/cryptoFactory/cryptoFactory.token.d.ts +10 -0
  109. package/dist/cryptoFactory/cryptoFactory.token.d.ts.map +1 -0
  110. package/dist/cryptoFactory/cryptoFactory.token.js +30 -0
  111. package/dist/cryptoFactory/cryptoFactory.token.js.map +1 -0
  112. package/dist/cryptoFactory/index.d.ts +7 -0
  113. package/dist/cryptoFactory/index.d.ts.map +1 -0
  114. package/dist/cryptoFactory/index.js +7 -0
  115. package/dist/cryptoFactory/index.js.map +1 -0
  116. package/dist/cryptoHash/cryptoHash.codec.d.ts +10 -0
  117. package/dist/cryptoHash/cryptoHash.codec.d.ts.map +1 -0
  118. package/dist/cryptoHash/cryptoHash.codec.js +39 -0
  119. package/dist/cryptoHash/cryptoHash.codec.js.map +1 -0
  120. package/dist/cryptoHash/cryptoHash.compare.d.ts +5 -0
  121. package/dist/cryptoHash/cryptoHash.compare.d.ts.map +1 -0
  122. package/dist/cryptoHash/cryptoHash.compare.js +14 -0
  123. package/dist/cryptoHash/cryptoHash.compare.js.map +1 -0
  124. package/dist/cryptoHash/cryptoHash.convenience.d.ts +26 -0
  125. package/dist/cryptoHash/cryptoHash.convenience.d.ts.map +1 -0
  126. package/dist/cryptoHash/cryptoHash.convenience.js +56 -0
  127. package/dist/cryptoHash/cryptoHash.convenience.js.map +1 -0
  128. package/dist/cryptoHash/cryptoHash.core.d.ts +19 -0
  129. package/dist/cryptoHash/cryptoHash.core.d.ts.map +1 -0
  130. package/dist/cryptoHash/cryptoHash.core.js +17 -0
  131. package/dist/cryptoHash/cryptoHash.core.js.map +1 -0
  132. package/dist/cryptoHash/cryptoHmac.core.d.ts +19 -0
  133. package/dist/cryptoHash/cryptoHmac.core.d.ts.map +1 -0
  134. package/dist/cryptoHash/cryptoHmac.core.js +29 -0
  135. package/dist/cryptoHash/cryptoHmac.core.js.map +1 -0
  136. package/dist/cryptoHash/index.d.ts +11 -0
  137. package/dist/cryptoHash/index.d.ts.map +1 -0
  138. package/dist/cryptoHash/index.js +11 -0
  139. package/dist/cryptoHash/index.js.map +1 -0
  140. package/dist/cryptoKey/cryptoKey.factory.d.ts +21 -0
  141. package/dist/cryptoKey/cryptoKey.factory.d.ts.map +1 -0
  142. package/dist/cryptoKey/cryptoKey.factory.js +72 -0
  143. package/dist/cryptoKey/cryptoKey.factory.js.map +1 -0
  144. package/dist/cryptoKey/cryptoKey.type.d.ts +44 -0
  145. package/dist/cryptoKey/cryptoKey.type.d.ts.map +1 -0
  146. package/dist/cryptoKey/cryptoKey.type.js +32 -0
  147. package/dist/cryptoKey/cryptoKey.type.js.map +1 -0
  148. package/dist/cryptoKey/cryptoKey.utils.d.ts +13 -0
  149. package/dist/cryptoKey/cryptoKey.utils.d.ts.map +1 -0
  150. package/dist/cryptoKey/cryptoKey.utils.js +18 -0
  151. package/dist/cryptoKey/cryptoKey.utils.js.map +1 -0
  152. package/dist/cryptoKey/index.d.ts +9 -0
  153. package/dist/cryptoKey/index.d.ts.map +1 -0
  154. package/dist/cryptoKey/index.js +9 -0
  155. package/dist/cryptoKey/index.js.map +1 -0
  156. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts +16 -0
  157. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts.map +1 -0
  158. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js +76 -0
  159. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js.map +1 -0
  160. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts +5 -0
  161. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts.map +1 -0
  162. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js +12 -0
  163. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js.map +1 -0
  164. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts +23 -0
  165. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts.map +1 -0
  166. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js +2 -0
  167. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js.map +1 -0
  168. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts +9 -0
  169. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts.map +1 -0
  170. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +35 -0
  171. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js.map +1 -0
  172. package/dist/cryptoKeyDerivation/index.d.ts +10 -0
  173. package/dist/cryptoKeyDerivation/index.d.ts.map +1 -0
  174. package/dist/cryptoKeyDerivation/index.js +10 -0
  175. package/dist/cryptoKeyDerivation/index.js.map +1 -0
  176. package/dist/cryptoPassword/cryptoPassword.codec.d.ts +14 -0
  177. package/dist/cryptoPassword/cryptoPassword.codec.d.ts.map +1 -0
  178. package/dist/cryptoPassword/cryptoPassword.codec.js +87 -0
  179. package/dist/cryptoPassword/cryptoPassword.codec.js.map +1 -0
  180. package/dist/cryptoPassword/cryptoPassword.core.d.ts +10 -0
  181. package/dist/cryptoPassword/cryptoPassword.core.d.ts.map +1 -0
  182. package/dist/cryptoPassword/cryptoPassword.core.js +59 -0
  183. package/dist/cryptoPassword/cryptoPassword.core.js.map +1 -0
  184. package/dist/cryptoPassword/cryptoPassword.helper.d.ts +14 -0
  185. package/dist/cryptoPassword/cryptoPassword.helper.d.ts.map +1 -0
  186. package/dist/cryptoPassword/cryptoPassword.helper.js +33 -0
  187. package/dist/cryptoPassword/cryptoPassword.helper.js.map +1 -0
  188. package/dist/cryptoPassword/cryptoPassword.type.d.ts +37 -0
  189. package/dist/cryptoPassword/cryptoPassword.type.d.ts.map +1 -0
  190. package/dist/cryptoPassword/cryptoPassword.type.js +2 -0
  191. package/dist/cryptoPassword/cryptoPassword.type.js.map +1 -0
  192. package/dist/cryptoPassword/cryptoPassword.validate.d.ts +23 -0
  193. package/dist/cryptoPassword/cryptoPassword.validate.d.ts.map +1 -0
  194. package/dist/cryptoPassword/cryptoPassword.validate.js +60 -0
  195. package/dist/cryptoPassword/cryptoPassword.validate.js.map +1 -0
  196. package/dist/cryptoPassword/index.d.ts +11 -0
  197. package/dist/cryptoPassword/index.d.ts.map +1 -0
  198. package/dist/cryptoPassword/index.js +11 -0
  199. package/dist/cryptoPassword/index.js.map +1 -0
  200. package/dist/cryptoProvider/cryptoProvider.core.d.ts +10 -0
  201. package/dist/cryptoProvider/cryptoProvider.core.d.ts.map +1 -0
  202. package/dist/cryptoProvider/cryptoProvider.core.js +2 -0
  203. package/dist/cryptoProvider/cryptoProvider.core.js.map +1 -0
  204. package/dist/cryptoProvider/cryptoProvider.interface.d.ts +91 -0
  205. package/dist/cryptoProvider/cryptoProvider.interface.d.ts.map +1 -0
  206. package/dist/cryptoProvider/cryptoProvider.interface.js +2 -0
  207. package/dist/cryptoProvider/cryptoProvider.interface.js.map +1 -0
  208. package/dist/cryptoProvider/cryptoProvider.type.d.ts +41 -0
  209. package/dist/cryptoProvider/cryptoProvider.type.d.ts.map +1 -0
  210. package/dist/cryptoProvider/cryptoProvider.type.js +2 -0
  211. package/dist/cryptoProvider/cryptoProvider.type.js.map +1 -0
  212. package/dist/cryptoProvider/index.d.ts +12 -0
  213. package/dist/cryptoProvider/index.d.ts.map +1 -0
  214. package/dist/cryptoProvider/index.js +2 -0
  215. package/dist/cryptoProvider/index.js.map +1 -0
  216. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts +28 -0
  217. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts.map +1 -0
  218. package/dist/cryptoProvider/types/cryptoCipher.type.js +2 -0
  219. package/dist/cryptoProvider/types/cryptoCipher.type.js.map +1 -0
  220. package/dist/cryptoProvider/types/cryptoHash.type.d.ts +14 -0
  221. package/dist/cryptoProvider/types/cryptoHash.type.d.ts.map +1 -0
  222. package/dist/cryptoProvider/types/cryptoHash.type.js +2 -0
  223. package/dist/cryptoProvider/types/cryptoHash.type.js.map +1 -0
  224. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts +22 -0
  225. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts.map +1 -0
  226. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js +2 -0
  227. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js.map +1 -0
  228. package/dist/cryptoProvider/types/cryptoRandom.type.d.ts +9 -0
  229. package/dist/cryptoProvider/types/cryptoRandom.type.d.ts.map +1 -0
  230. package/dist/cryptoProvider/types/cryptoRandom.type.js +2 -0
  231. package/dist/cryptoProvider/types/cryptoRandom.type.js.map +1 -0
  232. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts +19 -0
  233. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts.map +1 -0
  234. package/dist/cryptoProvider/types/cryptoSignature.type.js +2 -0
  235. package/dist/cryptoProvider/types/cryptoSignature.type.js.map +1 -0
  236. package/dist/cryptoProvider/types/index.d.ts +12 -0
  237. package/dist/cryptoProvider/types/index.d.ts.map +1 -0
  238. package/dist/cryptoProvider/types/index.js +8 -0
  239. package/dist/cryptoProvider/types/index.js.map +1 -0
  240. package/dist/cryptoRandom/cryptoRandom.choice.d.ts +14 -0
  241. package/dist/cryptoRandom/cryptoRandom.choice.d.ts.map +1 -0
  242. package/dist/cryptoRandom/cryptoRandom.choice.js +30 -0
  243. package/dist/cryptoRandom/cryptoRandom.choice.js.map +1 -0
  244. package/dist/cryptoRandom/cryptoRandom.core.d.ts +21 -0
  245. package/dist/cryptoRandom/cryptoRandom.core.d.ts.map +1 -0
  246. package/dist/cryptoRandom/cryptoRandom.core.js +31 -0
  247. package/dist/cryptoRandom/cryptoRandom.core.js.map +1 -0
  248. package/dist/cryptoRandom/cryptoRandom.string.d.ts +35 -0
  249. package/dist/cryptoRandom/cryptoRandom.string.d.ts.map +1 -0
  250. package/dist/cryptoRandom/cryptoRandom.string.js +74 -0
  251. package/dist/cryptoRandom/cryptoRandom.string.js.map +1 -0
  252. package/dist/cryptoRandom/index.d.ts +9 -0
  253. package/dist/cryptoRandom/index.d.ts.map +1 -0
  254. package/dist/cryptoRandom/index.js +9 -0
  255. package/dist/cryptoRandom/index.js.map +1 -0
  256. package/dist/cryptoService/cryptoService.core.d.ts +46 -0
  257. package/dist/cryptoService/cryptoService.core.d.ts.map +1 -0
  258. package/dist/cryptoService/cryptoService.core.js +101 -0
  259. package/dist/cryptoService/cryptoService.core.js.map +1 -0
  260. package/dist/cryptoService/cryptoService.derivation.d.ts +6 -0
  261. package/dist/cryptoService/cryptoService.derivation.d.ts.map +1 -0
  262. package/dist/cryptoService/cryptoService.derivation.js +12 -0
  263. package/dist/cryptoService/cryptoService.derivation.js.map +1 -0
  264. package/dist/cryptoService/cryptoService.encoding.d.ts +5 -0
  265. package/dist/cryptoService/cryptoService.encoding.d.ts.map +1 -0
  266. package/dist/cryptoService/cryptoService.encoding.js +19 -0
  267. package/dist/cryptoService/cryptoService.encoding.js.map +1 -0
  268. package/dist/cryptoService/index.d.ts +11 -0
  269. package/dist/cryptoService/index.d.ts.map +1 -0
  270. package/dist/cryptoService/index.js +11 -0
  271. package/dist/cryptoService/index.js.map +1 -0
  272. package/dist/cryptoService/operations/cryptoService.cipher.d.ts +5 -0
  273. package/dist/cryptoService/operations/cryptoService.cipher.d.ts.map +1 -0
  274. package/dist/cryptoService/operations/cryptoService.cipher.js +19 -0
  275. package/dist/cryptoService/operations/cryptoService.cipher.js.map +1 -0
  276. package/dist/cryptoService/operations/cryptoService.hash.d.ts +3 -0
  277. package/dist/cryptoService/operations/cryptoService.hash.d.ts.map +1 -0
  278. package/dist/cryptoService/operations/cryptoService.hash.js +16 -0
  279. package/dist/cryptoService/operations/cryptoService.hash.js.map +1 -0
  280. package/dist/cryptoService/operations/cryptoService.password.d.ts +5 -0
  281. package/dist/cryptoService/operations/cryptoService.password.d.ts.map +1 -0
  282. package/dist/cryptoService/operations/cryptoService.password.js +19 -0
  283. package/dist/cryptoService/operations/cryptoService.password.js.map +1 -0
  284. package/dist/cryptoService/operations/cryptoService.token.d.ts +7 -0
  285. package/dist/cryptoService/operations/cryptoService.token.d.ts.map +1 -0
  286. package/dist/cryptoService/operations/cryptoService.token.js +36 -0
  287. package/dist/cryptoService/operations/cryptoService.token.js.map +1 -0
  288. package/dist/cryptoService/operations/index.d.ts +11 -0
  289. package/dist/cryptoService/operations/index.d.ts.map +1 -0
  290. package/dist/cryptoService/operations/index.js +11 -0
  291. package/dist/cryptoService/operations/index.js.map +1 -0
  292. package/dist/cryptoSignature/cryptoSignature.core.d.ts +25 -0
  293. package/dist/cryptoSignature/cryptoSignature.core.d.ts.map +1 -0
  294. package/dist/cryptoSignature/cryptoSignature.core.js +36 -0
  295. package/dist/cryptoSignature/cryptoSignature.core.js.map +1 -0
  296. package/dist/cryptoSignature/index.d.ts +7 -0
  297. package/dist/cryptoSignature/index.d.ts.map +1 -0
  298. package/dist/cryptoSignature/index.js +7 -0
  299. package/dist/cryptoSignature/index.js.map +1 -0
  300. package/dist/cryptoToken/cryptoToken.core.d.ts +55 -0
  301. package/dist/cryptoToken/cryptoToken.core.d.ts.map +1 -0
  302. package/dist/cryptoToken/cryptoToken.core.js +90 -0
  303. package/dist/cryptoToken/cryptoToken.core.js.map +1 -0
  304. package/dist/cryptoToken/cryptoToken.hash.d.ts +24 -0
  305. package/dist/cryptoToken/cryptoToken.hash.d.ts.map +1 -0
  306. package/dist/cryptoToken/cryptoToken.hash.js +82 -0
  307. package/dist/cryptoToken/cryptoToken.hash.js.map +1 -0
  308. package/dist/cryptoToken/cryptoToken.utils.d.ts +13 -0
  309. package/dist/cryptoToken/cryptoToken.utils.d.ts.map +1 -0
  310. package/dist/cryptoToken/cryptoToken.utils.js +30 -0
  311. package/dist/cryptoToken/cryptoToken.utils.js.map +1 -0
  312. package/dist/cryptoToken/index.d.ts +9 -0
  313. package/dist/cryptoToken/index.d.ts.map +1 -0
  314. package/dist/cryptoToken/index.js +9 -0
  315. package/dist/cryptoToken/index.js.map +1 -0
  316. package/dist/cryptoUtils/cryptoUtils.compare.d.ts +11 -0
  317. package/dist/cryptoUtils/cryptoUtils.compare.d.ts.map +1 -0
  318. package/dist/cryptoUtils/cryptoUtils.compare.js +27 -0
  319. package/dist/cryptoUtils/cryptoUtils.compare.js.map +1 -0
  320. package/dist/cryptoUtils/cryptoUtils.conversion.d.ts +25 -0
  321. package/dist/cryptoUtils/cryptoUtils.conversion.d.ts.map +1 -0
  322. package/dist/cryptoUtils/cryptoUtils.conversion.js +50 -0
  323. package/dist/cryptoUtils/cryptoUtils.conversion.js.map +1 -0
  324. package/dist/cryptoUtils/cryptoUtils.number.d.ts +9 -0
  325. package/dist/cryptoUtils/cryptoUtils.number.d.ts.map +1 -0
  326. package/dist/cryptoUtils/cryptoUtils.number.js +35 -0
  327. package/dist/cryptoUtils/cryptoUtils.number.js.map +1 -0
  328. package/dist/cryptoUtils/cryptoUtils.text.d.ts +13 -0
  329. package/dist/cryptoUtils/cryptoUtils.text.d.ts.map +1 -0
  330. package/dist/cryptoUtils/cryptoUtils.text.js +23 -0
  331. package/dist/cryptoUtils/cryptoUtils.text.js.map +1 -0
  332. package/dist/cryptoUtils/cryptoUtils.validation.d.ts +17 -0
  333. package/dist/cryptoUtils/cryptoUtils.validation.d.ts.map +1 -0
  334. package/dist/cryptoUtils/cryptoUtils.validation.js +29 -0
  335. package/dist/cryptoUtils/cryptoUtils.validation.js.map +1 -0
  336. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts +9 -0
  337. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts.map +1 -0
  338. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js +28 -0
  339. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js.map +1 -0
  340. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts +9 -0
  341. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts.map +1 -0
  342. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js +37 -0
  343. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js.map +1 -0
  344. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts +9 -0
  345. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts.map +1 -0
  346. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js +25 -0
  347. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js.map +1 -0
  348. package/dist/cryptoUtils/encoding/index.d.ts +10 -0
  349. package/dist/cryptoUtils/encoding/index.d.ts.map +1 -0
  350. package/dist/cryptoUtils/encoding/index.js +10 -0
  351. package/dist/cryptoUtils/encoding/index.js.map +1 -0
  352. package/dist/cryptoUtils/index.d.ts +13 -0
  353. package/dist/cryptoUtils/index.d.ts.map +1 -0
  354. package/dist/cryptoUtils/index.js +13 -0
  355. package/dist/cryptoUtils/index.js.map +1 -0
  356. package/dist/index.d.ts +26 -0
  357. package/dist/index.d.ts.map +1 -0
  358. package/dist/index.js +26 -0
  359. package/dist/index.js.map +1 -0
  360. package/dist/node/index.d.ts +8 -0
  361. package/dist/node/index.d.ts.map +1 -0
  362. package/dist/node/index.js +8 -0
  363. package/dist/node/index.js.map +1 -0
  364. package/dist/node/nodeCryptoProvider/index.d.ts +14 -0
  365. package/dist/node/nodeCryptoProvider/index.d.ts.map +1 -0
  366. package/dist/node/nodeCryptoProvider/index.js +14 -0
  367. package/dist/node/nodeCryptoProvider/index.js.map +1 -0
  368. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts +42 -0
  369. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts.map +1 -0
  370. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js +56 -0
  371. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js.map +1 -0
  372. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts +3 -0
  373. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts.map +1 -0
  374. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js +5 -0
  375. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js.map +1 -0
  376. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts +8 -0
  377. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts.map +1 -0
  378. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js +55 -0
  379. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js.map +1 -0
  380. package/dist/node/nodeCryptoProvider/operations/index.d.ts +8 -0
  381. package/dist/node/nodeCryptoProvider/operations/index.d.ts.map +1 -0
  382. package/dist/node/nodeCryptoProvider/operations/index.js +8 -0
  383. package/dist/node/nodeCryptoProvider/operations/index.js.map +1 -0
  384. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts +3 -0
  385. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts.map +1 -0
  386. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js +45 -0
  387. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js.map +1 -0
  388. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts +12 -0
  389. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts.map +1 -0
  390. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js +94 -0
  391. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js.map +1 -0
  392. package/dist/node/nodeCryptoProvider/primitives/index.d.ts +10 -0
  393. package/dist/node/nodeCryptoProvider/primitives/index.d.ts.map +1 -0
  394. package/dist/node/nodeCryptoProvider/primitives/index.js +10 -0
  395. package/dist/node/nodeCryptoProvider/primitives/index.js.map +1 -0
  396. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts +13 -0
  397. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts.map +1 -0
  398. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js +35 -0
  399. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js.map +1 -0
  400. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts +4 -0
  401. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts.map +1 -0
  402. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js +16 -0
  403. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js.map +1 -0
  404. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts +4 -0
  405. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts.map +1 -0
  406. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js +39 -0
  407. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js.map +1 -0
  408. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts +13 -0
  409. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts.map +1 -0
  410. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js +29 -0
  411. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js.map +1 -0
  412. package/dist/node/signing/index.d.ts +9 -0
  413. package/dist/node/signing/index.d.ts.map +1 -0
  414. package/dist/node/signing/index.js +9 -0
  415. package/dist/node/signing/index.js.map +1 -0
  416. package/dist/node/signing/signing.conversion.d.ts +9 -0
  417. package/dist/node/signing/signing.conversion.d.ts.map +1 -0
  418. package/dist/node/signing/signing.conversion.js +51 -0
  419. package/dist/node/signing/signing.conversion.js.map +1 -0
  420. package/dist/node/signing/signing.core.d.ts +21 -0
  421. package/dist/node/signing/signing.core.d.ts.map +1 -0
  422. package/dist/node/signing/signing.core.js +45 -0
  423. package/dist/node/signing/signing.core.js.map +1 -0
  424. package/dist/node/signing/signing.utils.d.ts +15 -0
  425. package/dist/node/signing/signing.utils.d.ts.map +1 -0
  426. package/dist/node/signing/signing.utils.js +41 -0
  427. package/dist/node/signing/signing.utils.js.map +1 -0
  428. package/package.json +51 -0
@@ -0,0 +1,19 @@
1
+ import type { HmacAlgorithm, HashEncoding } from "../cryptoProvider/index.js";
2
+ import type { HashInput } from "./cryptoHash.core.js";
3
+ /**
4
+ * Calculates a keyed HMAC.
5
+ */
6
+ export declare function hmac(input: HashInput, key: Uint8Array, algorithm?: HmacAlgorithm, encoding?: HashEncoding): Promise<string>;
7
+ /**
8
+ * Calculates a SHA-256 HMAC.
9
+ */
10
+ export declare function hmacSha256(input: HashInput, key: Uint8Array, encoding?: HashEncoding): Promise<string>;
11
+ /**
12
+ * Calculates a SHA-384 HMAC.
13
+ */
14
+ export declare function hmacSha384(input: HashInput, key: Uint8Array, encoding?: HashEncoding): Promise<string>;
15
+ /**
16
+ * Calculates a SHA-512 HMAC.
17
+ */
18
+ export declare function hmacSha512(input: HashInput, key: Uint8Array, encoding?: HashEncoding): Promise<string>;
19
+ //# sourceMappingURL=cryptoHmac.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoHmac.core.d.ts","sourceRoot":"","sources":["../../src/cryptoHash/cryptoHmac.core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMtD;;GAEG;AACH,wBAAsB,IAAI,CACxB,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,EACf,SAAS,GAAE,aAAwB,EACnC,QAAQ,GAAE,YAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,EACf,QAAQ,GAAE,YAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,EACf,QAAQ,GAAE,YAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU,EACf,QAAQ,GAAE,YAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -0,0 +1,29 @@
1
+ import { createNodeCryptoProvider } from "../node/index.js";
2
+ import { encodeDigest } from "./cryptoHash.codec.js";
3
+ const provider = createNodeCryptoProvider();
4
+ /**
5
+ * Calculates a keyed HMAC.
6
+ */
7
+ export async function hmac(input, key, algorithm = "sha256", encoding = "hex") {
8
+ const digest = await provider.hmac(algorithm, key, input);
9
+ return encodeDigest(digest, encoding);
10
+ }
11
+ /**
12
+ * Calculates a SHA-256 HMAC.
13
+ */
14
+ export async function hmacSha256(input, key, encoding = "hex") {
15
+ return hmac(input, key, "sha256", encoding);
16
+ }
17
+ /**
18
+ * Calculates a SHA-384 HMAC.
19
+ */
20
+ export async function hmacSha384(input, key, encoding = "hex") {
21
+ return hmac(input, key, "sha384", encoding);
22
+ }
23
+ /**
24
+ * Calculates a SHA-512 HMAC.
25
+ */
26
+ export async function hmacSha512(input, key, encoding = "hex") {
27
+ return hmac(input, key, "sha512", encoding);
28
+ }
29
+ //# sourceMappingURL=cryptoHmac.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoHmac.core.js","sourceRoot":"","sources":["../../src/cryptoHash/cryptoHmac.core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,KAAgB,EAChB,GAAe,EACf,SAAS,GAAkB,QAAQ,EACnC,QAAQ,GAAiB,KAAK;IAE9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE1D,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAgB,EAChB,GAAe,EACf,QAAQ,GAAiB,KAAK;IAE9B,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAgB,EAChB,GAAe,EACf,QAAQ,GAAiB,KAAK;IAE9B,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAgB,EAChB,GAAe,EACf,QAAQ,GAAiB,KAAK;IAE9B,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoHash
3
+ *
4
+ * Hashing algorithms (SHA-256, SHA-512, etc.).
5
+ */
6
+ export * from "./cryptoHash.core.js";
7
+ export * from "./cryptoHash.convenience.js";
8
+ export * from "./cryptoHmac.core.js";
9
+ export * from "./cryptoHash.compare.js";
10
+ export * from "./cryptoHash.codec.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cryptoHash/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoHash
3
+ *
4
+ * Hashing algorithms (SHA-256, SHA-512, etc.).
5
+ */
6
+ export * from "./cryptoHash.core.js";
7
+ export * from "./cryptoHash.convenience.js";
8
+ export * from "./cryptoHmac.core.js";
9
+ export * from "./cryptoHash.compare.js";
10
+ export * from "./cryptoHash.codec.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cryptoHash/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { CryptoProvider } from "../cryptoProvider/index.js";
2
+ import type { CryptoKey, CryptoKeyOptions } from "./cryptoKey.type.js";
3
+ /**
4
+ * Creates a cryptographic key from raw bytes.
5
+ *
6
+ * Hashing and key-id generation are delegated to the supplied provider.
7
+ */
8
+ export declare function createCryptoKey(bytes: Uint8Array, options: CryptoKeyOptions, provider?: CryptoProvider): Promise<CryptoKey>;
9
+ /**
10
+ * Generates a cryptographically secure random key.
11
+ *
12
+ * Randomness is delegated to the supplied provider.
13
+ */
14
+ export declare function generateCryptoKey(length: number, options: CryptoKeyOptions, provider?: CryptoProvider): Promise<CryptoKey>;
15
+ /**
16
+ * Returns a defensive copy of a key's bytes.
17
+ *
18
+ * This operation is only permitted for extractable keys.
19
+ */
20
+ export declare function exportCryptoKey(key: CryptoKey): Uint8Array;
21
+ //# sourceMappingURL=cryptoKey.factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.factory.d.ts","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkBvE;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,GAAE,cAAqC,GAC9C,OAAO,CAAC,SAAS,CAAC,CA2BpB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,GAAE,cAAqC,GAC9C,OAAO,CAAC,SAAS,CAAC,CAUpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,CAM1D"}
@@ -0,0 +1,72 @@
1
+ import { createNodeCryptoProvider } from "../node/index.js";
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 the key module 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
+ }
16
+ /**
17
+ * Creates a cryptographic key from raw bytes.
18
+ *
19
+ * Hashing and key-id generation are delegated to the supplied provider.
20
+ */
21
+ export async function createCryptoKey(bytes, options, provider = getDefaultProvider()) {
22
+ if (bytes.byteLength === 0) {
23
+ throw new TypeError("Cryptographic key cannot be empty.");
24
+ }
25
+ const keyBytes = new Uint8Array(bytes);
26
+ const digest = await provider.hash("sha256", keyBytes);
27
+ const fingerprint = encode(digest, "hex");
28
+ const createdAt = Date.now();
29
+ const keyId = options.keyId ?? `key_${await generateKeyId(provider)}`;
30
+ const usages = Object.freeze([...(options.usages ?? [])]);
31
+ return Object.freeze({
32
+ algorithm: options.algorithm,
33
+ keyId,
34
+ usages,
35
+ extractable: options.extractable ?? false,
36
+ createdAt,
37
+ length: keyBytes.byteLength * 8,
38
+ fingerprint,
39
+ bytes: () => new Uint8Array(keyBytes),
40
+ });
41
+ }
42
+ /**
43
+ * Generates a cryptographically secure random key.
44
+ *
45
+ * Randomness is delegated to the supplied provider.
46
+ */
47
+ export async function generateCryptoKey(length, options, provider = getDefaultProvider()) {
48
+ if (!Number.isInteger(length) || length <= 0) {
49
+ throw new RangeError("Cryptographic key length must be a positive integer.");
50
+ }
51
+ const bytes = await provider.randomBytes(length);
52
+ return createCryptoKey(bytes, options, provider);
53
+ }
54
+ /**
55
+ * Returns a defensive copy of a key's bytes.
56
+ *
57
+ * This operation is only permitted for extractable keys.
58
+ */
59
+ export function exportCryptoKey(key) {
60
+ if (!key.extractable) {
61
+ throw new Error(`Cryptographic key "${key.keyId}" is not extractable.`);
62
+ }
63
+ return key.bytes();
64
+ }
65
+ /**
66
+ * Generates a hex-encoded random identifier for a key.
67
+ */
68
+ async function generateKeyId(provider) {
69
+ const idBytes = await provider.randomBytes(16);
70
+ return encode(idBytes, "hex");
71
+ }
72
+ //# sourceMappingURL=cryptoKey.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.factory.js","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAMlE,IAAI,eAA2C,CAAC;AAEhD;;;;;GAKG;AACH,SAAS,kBAAkB;IACzB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,eAAe,GAAG,wBAAwB,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAiB,EACjB,OAAyB,EACzB,QAAQ,GAAmB,kBAAkB,EAAE;IAE/C,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK;QACL,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;QACzC,SAAS;QACT,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAG,CAAC;QAC/B,WAAW;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,OAAyB,EACzB,QAAQ,GAAmB,kBAAkB,EAAE;IAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAClB,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,KAAK,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,QAAwB;IACnD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE/C,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
2
+ /**
3
+ * Supported cryptographic key usages.
4
+ */
5
+ export declare enum CryptoKeyUsage {
6
+ ENCRYPT = "encrypt",
7
+ DECRYPT = "decrypt",
8
+ SIGN = "sign",
9
+ VERIFY = "verify",
10
+ DERIVE_KEY = "derive-key",
11
+ DERIVE_BITS = "derive-bits",
12
+ WRAP_KEY = "wrap-key",
13
+ UNWRAP_KEY = "unwrap-key"
14
+ }
15
+ /**
16
+ * A cryptographic key represented as immutable bytes.
17
+ *
18
+ * The underlying byte array is copied when a key is created and when
19
+ * its bytes are requested to prevent accidental mutation.
20
+ */
21
+ export interface CryptoKey {
22
+ readonly algorithm: CryptoAlgorithm;
23
+ readonly keyId: string;
24
+ readonly usages: readonly CryptoKeyUsage[];
25
+ readonly extractable: boolean;
26
+ readonly createdAt: number;
27
+ readonly length: number;
28
+ readonly fingerprint: string;
29
+ readonly bytes: () => Uint8Array;
30
+ }
31
+ /**
32
+ * Options used to create a cryptographic key.
33
+ */
34
+ export interface CryptoKeyOptions {
35
+ readonly algorithm: CryptoAlgorithm;
36
+ readonly keyId?: string;
37
+ readonly usages?: readonly CryptoKeyUsage[];
38
+ readonly extractable?: boolean;
39
+ }
40
+ /**
41
+ * Checks whether a value is a CryptoKey.
42
+ */
43
+ export declare function isCryptoKey(value: unknown): value is CryptoKey;
44
+ //# sourceMappingURL=cryptoKey.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.type.d.ts","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAElF;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,UAAU,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAiB9D"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Supported cryptographic key usages.
3
+ */
4
+ export var CryptoKeyUsage;
5
+ (function (CryptoKeyUsage) {
6
+ CryptoKeyUsage["ENCRYPT"] = "encrypt";
7
+ CryptoKeyUsage["DECRYPT"] = "decrypt";
8
+ CryptoKeyUsage["SIGN"] = "sign";
9
+ CryptoKeyUsage["VERIFY"] = "verify";
10
+ CryptoKeyUsage["DERIVE_KEY"] = "derive-key";
11
+ CryptoKeyUsage["DERIVE_BITS"] = "derive-bits";
12
+ CryptoKeyUsage["WRAP_KEY"] = "wrap-key";
13
+ CryptoKeyUsage["UNWRAP_KEY"] = "unwrap-key";
14
+ })(CryptoKeyUsage || (CryptoKeyUsage = {}));
15
+ /**
16
+ * Checks whether a value is a CryptoKey.
17
+ */
18
+ export function isCryptoKey(value) {
19
+ if (typeof value !== "object" || value === null) {
20
+ return false;
21
+ }
22
+ const key = value;
23
+ return (typeof key.algorithm === "string" &&
24
+ typeof key.keyId === "string" &&
25
+ Array.isArray(key.usages) &&
26
+ typeof key.extractable === "boolean" &&
27
+ typeof key.createdAt === "number" &&
28
+ typeof key.length === "number" &&
29
+ typeof key.fingerprint === "string" &&
30
+ typeof key.bytes === "function");
31
+ }
32
+ //# sourceMappingURL=cryptoKey.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.type.js","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.type.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AA6BD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAA2B,CAAC;IAExC,OAAO,CACL,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QACzB,OAAO,GAAG,CAAC,WAAW,KAAK,SAAS;QACpC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC9B,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QACnC,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,CAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CryptoKey } from "./cryptoKey.type.js";
2
+ /**
3
+ * Returns a stable SHA-256 fingerprint for a key.
4
+ *
5
+ * The fingerprint can be used for identification without exposing
6
+ * the secret key material.
7
+ */
8
+ export declare function getCryptoKeyFingerprint(key: CryptoKey): string;
9
+ /**
10
+ * Compares two cryptographic keys by identity.
11
+ */
12
+ export declare function cryptoKeysEqual(left: CryptoKey, right: CryptoKey): boolean;
13
+ //# sourceMappingURL=cryptoKey.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.utils.d.ts","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAM1E"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Returns a stable SHA-256 fingerprint for a key.
3
+ *
4
+ * The fingerprint can be used for identification without exposing
5
+ * the secret key material.
6
+ */
7
+ export function getCryptoKeyFingerprint(key) {
8
+ return key.fingerprint;
9
+ }
10
+ /**
11
+ * Compares two cryptographic keys by identity.
12
+ */
13
+ export function cryptoKeysEqual(left, right) {
14
+ return (left.keyId === right.keyId &&
15
+ left.fingerprint === right.fingerprint &&
16
+ left.algorithm === right.algorithm);
17
+ }
18
+ //# sourceMappingURL=cryptoKey.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKey.utils.js","sourceRoot":"","sources":["../../src/cryptoKey/cryptoKey.utils.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAc;IACpD,OAAO,GAAG,CAAC,WAAW,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,KAAgB;IAC/D,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;QAC1B,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;QACtC,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoKey
3
+ *
4
+ * Cryptographic key types and management.
5
+ */
6
+ export * from "./cryptoKey.type.js";
7
+ export * from "./cryptoKey.factory.js";
8
+ export * from "./cryptoKey.utils.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cryptoKey/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoKey
3
+ *
4
+ * Cryptographic key types and management.
5
+ */
6
+ export * from "./cryptoKey.type.js";
7
+ export * from "./cryptoKey.factory.js";
8
+ export * from "./cryptoKey.utils.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cryptoKey/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { DerivedKeyResult } from "../cryptoProvider/index.js";
2
+ import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
3
+ import type { Pbkdf2Options, ScryptOptions } from "./cryptoKeyDerivation.type.js";
4
+ /**
5
+ * Derives a key from a password using PBKDF2.
6
+ */
7
+ export declare function derivePbkdf2(password: string | Uint8Array, options?: Pbkdf2Options): Promise<DerivedKeyResult>;
8
+ /**
9
+ * Derives a key using scrypt.
10
+ */
11
+ export declare function deriveScrypt(password: string | Uint8Array, options?: ScryptOptions): Promise<DerivedKeyResult>;
12
+ /**
13
+ * Derives a key using the selected key derivation algorithm.
14
+ */
15
+ export declare function deriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions): Promise<DerivedKeyResult>;
16
+ //# sourceMappingURL=cryptoKeyDerivation.core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.core.d.ts","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,+BAA+B,CAAC;AASvC;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAC7B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAC7B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,GAAG,UAAU,EAC7B,SAAS,EAAE,eAAe,EAC1B,OAAO,GAAE,aAAa,GAAG,aAAkB,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAsB3B"}
@@ -0,0 +1,76 @@
1
+ import { createNodeCryptoProvider } from "../node/index.js";
2
+ import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
3
+ import { validatePbkdf2Options, validateScryptOptions, } from "./cryptoKeyDerivation.validate.js";
4
+ const provider = createNodeCryptoProvider();
5
+ /**
6
+ * Derives a key from a password using PBKDF2.
7
+ */
8
+ export async function derivePbkdf2(password, options = {}) {
9
+ const iterations = options.iterations ?? 310_000;
10
+ const keyLength = options.keyLength ?? 32;
11
+ const salt = options.salt ??
12
+ new Uint8Array(await provider.randomBytes(options.saltLength ?? 16));
13
+ const digest = options.digest ?? "sha256";
14
+ validatePbkdf2Options(iterations, keyLength, salt);
15
+ const key = await provider.deriveKey({
16
+ password,
17
+ salt,
18
+ algorithm: "pbkdf2",
19
+ keyLength,
20
+ iterations,
21
+ });
22
+ return Object.freeze({
23
+ algorithm: digest === "sha512"
24
+ ? CryptoAlgorithm.PBKDF2_SHA512
25
+ : CryptoAlgorithm.PBKDF2_SHA256,
26
+ key,
27
+ salt: new Uint8Array(salt),
28
+ });
29
+ }
30
+ /**
31
+ * Derives a key using scrypt.
32
+ */
33
+ export async function deriveScrypt(password, options = {}) {
34
+ const keyLength = options.keyLength ?? 32;
35
+ const cost = options.cost ?? 16_384;
36
+ const blockSize = options.blockSize ?? 8;
37
+ const parallelization = options.parallelization ?? 1;
38
+ const salt = options.salt ??
39
+ new Uint8Array(await provider.randomBytes(options.saltLength ?? 16));
40
+ validateScryptOptions(keyLength, cost, blockSize, parallelization, salt);
41
+ const key = await provider.deriveKey({
42
+ password: password instanceof Uint8Array ? password : Buffer.from(password, "utf8"),
43
+ salt,
44
+ algorithm: "scrypt",
45
+ keyLength,
46
+ memoryCost: cost,
47
+ parallelism: parallelization,
48
+ });
49
+ return Object.freeze({
50
+ algorithm: CryptoAlgorithm.SCRYPT,
51
+ key,
52
+ salt: new Uint8Array(salt),
53
+ });
54
+ }
55
+ /**
56
+ * Derives a key using the selected key derivation algorithm.
57
+ */
58
+ export async function deriveKey(password, algorithm, options = {}) {
59
+ switch (algorithm) {
60
+ case CryptoAlgorithm.PBKDF2_SHA256:
61
+ return derivePbkdf2(password, {
62
+ ...options,
63
+ digest: "sha256",
64
+ });
65
+ case CryptoAlgorithm.PBKDF2_SHA512:
66
+ return derivePbkdf2(password, {
67
+ ...options,
68
+ digest: "sha512",
69
+ });
70
+ case CryptoAlgorithm.SCRYPT:
71
+ return deriveScrypt(password, options);
72
+ default:
73
+ throw new TypeError(`Unsupported key derivation algorithm: ${algorithm}.`);
74
+ }
75
+ }
76
+ //# sourceMappingURL=cryptoKeyDerivation.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.core.js","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAO7E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAA6B,EAC7B,OAAO,GAAkB,EAAE;IAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GACR,OAAO,CAAC,IAAI;QACZ,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE1C,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC;QACnC,QAAQ;QACR,IAAI;QACJ,SAAS,EAAE,QAAQ;QACnB,SAAS;QACT,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EACP,MAAM,KAAK,QAAQ;YACjB,CAAC,CAAE,eAAe,CAAC,aAAwC;YAC3D,CAAC,CAAE,eAAe,CAAC,aAAwC;QAC/D,GAAG;QACH,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAA6B,EAC7B,OAAO,GAAkB,EAAE;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GACR,OAAO,CAAC,IAAI;QACZ,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvE,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAEzE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC;QACnC,QAAQ,EACN,QAAQ,YAAY,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC3E,IAAI;QACJ,SAAS,EAAE,QAAQ;QACnB,SAAS;QACT,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,eAAe,CAAC,MAAgC;QAC3D,GAAG;QACH,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAA6B,EAC7B,SAA0B,EAC1B,OAAO,GAAkC,EAAE;IAE3C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,eAAe,CAAC,aAAa;YAChC,OAAO,YAAY,CAAC,QAAQ,EAAE;gBAC5B,GAAI,OAAyB;gBAC7B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QAEL,KAAK,eAAe,CAAC,aAAa;YAChC,OAAO,YAAY,CAAC,QAAQ,EAAE;gBAC5B,GAAI,OAAyB;gBAC7B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QAEL,KAAK,eAAe,CAAC,MAAM;YACzB,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAwB,CAAC,CAAC;QAE1D;YACE,MAAM,IAAI,SAAS,CACjB,yCAAyC,SAAS,GAAG,CACtD,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Creates a random salt.
3
+ */
4
+ export declare function generateSalt(length?: number): Promise<Uint8Array>;
5
+ //# sourceMappingURL=cryptoKeyDerivation.salt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.salt.d.ts","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.salt.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,SAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAUnE"}
@@ -0,0 +1,12 @@
1
+ import { createNodeCryptoProvider } from "../node/index.js";
2
+ /**
3
+ * Creates a random salt.
4
+ */
5
+ export async function generateSalt(length = 16) {
6
+ if (!Number.isInteger(length) || length < 16) {
7
+ throw new RangeError("Salt length must be an integer of at least 16 bytes.");
8
+ }
9
+ const provider = createNodeCryptoProvider();
10
+ return provider.randomBytes(length);
11
+ }
12
+ //# sourceMappingURL=cryptoKeyDerivation.salt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.salt.js","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.salt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAM,GAAG,EAAE;IAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAClB,sDAAsD,CACvD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;IAE5C,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Options for PBKDF2 key derivation.
3
+ */
4
+ export interface Pbkdf2Options {
5
+ readonly iterations?: number;
6
+ readonly keyLength?: number;
7
+ readonly digest?: "sha256" | "sha384" | "sha512";
8
+ readonly salt?: Uint8Array;
9
+ readonly saltLength?: number;
10
+ }
11
+ /**
12
+ * Options for scrypt key derivation.
13
+ */
14
+ export interface ScryptOptions {
15
+ readonly keyLength?: number;
16
+ readonly cost?: number;
17
+ readonly blockSize?: number;
18
+ readonly parallelization?: number;
19
+ readonly salt?: Uint8Array;
20
+ readonly saltLength?: number;
21
+ readonly maxMemory?: number;
22
+ }
23
+ //# sourceMappingURL=cryptoKeyDerivation.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.type.d.ts","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cryptoKeyDerivation.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.type.js","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validates PBKDF2 key derivation options.
3
+ */
4
+ export declare function validatePbkdf2Options(iterations: number, keyLength: number, salt: Uint8Array): void;
5
+ /**
6
+ * Validates scrypt key derivation options.
7
+ */
8
+ export declare function validateScryptOptions(keyLength: number, cost: number, blockSize: number, parallelization: number, salt: Uint8Array): void;
9
+ //# sourceMappingURL=cryptoKeyDerivation.validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.validate.d.ts","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,UAAU,GACf,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,UAAU,GACf,IAAI,CAsBN"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Validates PBKDF2 key derivation options.
3
+ */
4
+ export function validatePbkdf2Options(iterations, keyLength, salt) {
5
+ if (!Number.isInteger(iterations) || iterations < 100_000) {
6
+ throw new RangeError("PBKDF2 iterations must be at least 100000.");
7
+ }
8
+ if (!Number.isInteger(keyLength) || keyLength < 16) {
9
+ throw new RangeError("PBKDF2 keyLength must be at least 16 bytes.");
10
+ }
11
+ if (salt.byteLength < 16) {
12
+ throw new RangeError("PBKDF2 salt must be at least 16 bytes.");
13
+ }
14
+ }
15
+ /**
16
+ * Validates scrypt key derivation options.
17
+ */
18
+ export function validateScryptOptions(keyLength, cost, blockSize, parallelization, salt) {
19
+ if (!Number.isInteger(keyLength) || keyLength < 16) {
20
+ throw new RangeError("scrypt keyLength must be at least 16 bytes.");
21
+ }
22
+ if (!Number.isInteger(cost) || cost < 2 || (cost & (cost - 1)) !== 0) {
23
+ throw new RangeError("scrypt cost must be a power of two greater than or equal to 2.");
24
+ }
25
+ if (!Number.isInteger(blockSize) || blockSize <= 0) {
26
+ throw new RangeError("scrypt blockSize must be a positive integer.");
27
+ }
28
+ if (!Number.isInteger(parallelization) || parallelization <= 0) {
29
+ throw new RangeError("scrypt parallelization must be a positive integer.");
30
+ }
31
+ if (salt.byteLength < 16) {
32
+ throw new RangeError("scrypt salt must be at least 16 bytes.");
33
+ }
34
+ }
35
+ //# sourceMappingURL=cryptoKeyDerivation.validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoKeyDerivation.validate.js","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/cryptoKeyDerivation.validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,SAAiB,EACjB,IAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,IAAY,EACZ,SAAiB,EACjB,eAAuB,EACvB,IAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,UAAU,CAClB,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,8CAA8C,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoKeyDerivation
3
+ *
4
+ * Key derivation functions (PBKDF2, scrypt, etc.).
5
+ */
6
+ export * from "./cryptoKeyDerivation.core.js";
7
+ export * from "./cryptoKeyDerivation.type.js";
8
+ export * from "./cryptoKeyDerivation.salt.js";
9
+ export * from "./cryptoKeyDerivation.validate.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @zudojs/crypto/cryptoKeyDerivation
3
+ *
4
+ * Key derivation functions (PBKDF2, scrypt, etc.).
5
+ */
6
+ export * from "./cryptoKeyDerivation.core.js";
7
+ export * from "./cryptoKeyDerivation.type.js";
8
+ export * from "./cryptoKeyDerivation.salt.js";
9
+ export * from "./cryptoKeyDerivation.validate.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cryptoKeyDerivation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { PasswordHashParameters } from "./cryptoPassword.type.js";
2
+ /**
3
+ * Current password hash encoding format version.
4
+ */
5
+ export declare const PASSWORD_FORMAT_VERSION = "v1";
6
+ /**
7
+ * Decodes an encoded password hash into its parameters.
8
+ */
9
+ export declare function decodePasswordHash(encoded: string): PasswordHashParameters;
10
+ /**
11
+ * Encodes password hashing parameters into a portable string.
12
+ */
13
+ export declare function encodePasswordHash(parameters: PasswordHashParameters): string;
14
+ //# sourceMappingURL=cryptoPassword.codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cryptoPassword.codec.d.ts","sourceRoot":"","sources":["../../src/cryptoPassword/cryptoPassword.codec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAQvE;;GAEG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,CAuE1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,sBAAsB,GAAG,MAAM,CA8B7E"}