@zudojs/crypto 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +43 -14
  3. package/dist/compare/compare.helper.d.ts +10 -2
  4. package/dist/compare/compare.helper.js +22 -6
  5. package/dist/cryptoCipher/cryptoCipher.core.d.ts +11 -1
  6. package/dist/cryptoCipher/cryptoCipher.core.js +19 -3
  7. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts +7 -2
  8. package/dist/cryptoCipher/cryptoCipher.envelope.js +33 -14
  9. package/dist/cryptoCipher/cryptoCipher.string.d.ts +2 -1
  10. package/dist/cryptoCipher/cryptoCipher.string.js +2 -2
  11. package/dist/cryptoConstants/cryptoConstants.guard.d.ts +9 -0
  12. package/dist/cryptoConstants/cryptoConstants.guard.js +16 -1
  13. package/dist/cryptoConstants/cryptoConstants.security.d.ts +34 -1
  14. package/dist/cryptoConstants/cryptoConstants.security.js +34 -1
  15. package/dist/cryptoConstants/cryptoConstants.token.d.ts +2 -0
  16. package/dist/cryptoConstants/cryptoConstants.token.js +2 -0
  17. package/dist/cryptoConstants/cryptoConstants.type.d.ts +36 -14
  18. package/dist/cryptoConstants/cryptoConstants.type.js +36 -14
  19. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts +4 -1
  20. package/dist/cryptoEncoding/cryptoEncoding.compare.js +11 -4
  21. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts +22 -0
  22. package/dist/cryptoEncoding/cryptoEncoding.core.js +41 -3
  23. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts +10 -2
  24. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js +24 -16
  25. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts +9 -1
  26. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js +23 -20
  27. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts +9 -2
  28. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js +17 -11
  29. package/dist/cryptoErrors/cryptoErrors.helper.d.ts +30 -0
  30. package/dist/cryptoErrors/cryptoErrors.helper.js +72 -0
  31. package/dist/cryptoFactory/cryptoFactory.core.d.ts +37 -6
  32. package/dist/cryptoFactory/cryptoFactory.core.js +56 -30
  33. package/dist/cryptoFactory/cryptoFactory.password.d.ts +4 -3
  34. package/dist/cryptoFactory/cryptoFactory.password.js +4 -4
  35. package/dist/cryptoFactory/cryptoFactory.token.d.ts +9 -8
  36. package/dist/cryptoFactory/cryptoFactory.token.js +16 -15
  37. package/dist/cryptoHash/cryptoHash.codec.d.ts +2 -0
  38. package/dist/cryptoHash/cryptoHash.codec.js +12 -12
  39. package/dist/cryptoHash/cryptoHash.compare.d.ts +3 -1
  40. package/dist/cryptoHash/cryptoHash.compare.js +5 -9
  41. package/dist/cryptoHash/cryptoHash.core.d.ts +6 -2
  42. package/dist/cryptoHash/cryptoHash.core.js +9 -2
  43. package/dist/cryptoHash/cryptoHmac.core.d.ts +8 -5
  44. package/dist/cryptoHash/cryptoHmac.core.js +22 -9
  45. package/dist/cryptoKey/cryptoKey.factory.d.ts +29 -2
  46. package/dist/cryptoKey/cryptoKey.factory.js +82 -18
  47. package/dist/cryptoKey/cryptoKey.utils.d.ts +5 -3
  48. package/dist/cryptoKey/cryptoKey.utils.js +5 -3
  49. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts +7 -1
  50. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js +40 -15
  51. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts +2 -1
  52. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js +2 -3
  53. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts +5 -1
  54. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts +2 -2
  55. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +16 -6
  56. package/dist/cryptoPassword/cryptoPassword.codec.d.ts +15 -1
  57. package/dist/cryptoPassword/cryptoPassword.codec.js +127 -56
  58. package/dist/cryptoPassword/cryptoPassword.core.d.ts +17 -3
  59. package/dist/cryptoPassword/cryptoPassword.core.js +29 -21
  60. package/dist/cryptoPassword/cryptoPassword.helper.js +6 -5
  61. package/dist/cryptoPassword/cryptoPassword.type.d.ts +33 -5
  62. package/dist/cryptoPassword/cryptoPassword.validate.d.ts +14 -3
  63. package/dist/cryptoPassword/cryptoPassword.validate.js +51 -20
  64. package/dist/cryptoProvider/cryptoProvider.default.d.ts +18 -0
  65. package/dist/cryptoProvider/cryptoProvider.default.js +31 -0
  66. package/dist/cryptoProvider/cryptoProvider.interface.d.ts +9 -34
  67. package/dist/cryptoProvider/cryptoProvider.type.d.ts +32 -3
  68. package/dist/cryptoProvider/cryptoProvider.type.js +40 -1
  69. package/dist/cryptoProvider/index.d.ts +5 -2
  70. package/dist/cryptoProvider/index.js +2 -0
  71. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts +11 -6
  72. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts +39 -3
  73. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts +5 -5
  74. package/dist/cryptoProvider/types/index.d.ts +1 -1
  75. package/dist/cryptoRandom/cryptoRandom.choice.d.ts +6 -3
  76. package/dist/cryptoRandom/cryptoRandom.choice.js +10 -6
  77. package/dist/cryptoRandom/cryptoRandom.core.d.ts +8 -5
  78. package/dist/cryptoRandom/cryptoRandom.core.js +8 -7
  79. package/dist/cryptoRandom/cryptoRandom.string.d.ts +11 -9
  80. package/dist/cryptoRandom/cryptoRandom.string.js +28 -29
  81. package/dist/cryptoService/cryptoService.core.d.ts +47 -9
  82. package/dist/cryptoService/cryptoService.core.js +65 -33
  83. package/dist/cryptoService/cryptoService.derivation.d.ts +3 -3
  84. package/dist/cryptoService/cryptoService.derivation.js +8 -6
  85. package/dist/cryptoService/cryptoService.encoding.js +6 -5
  86. package/dist/cryptoService/index.d.ts +1 -5
  87. package/dist/cryptoService/index.js +1 -5
  88. package/dist/cryptoService/operations/cryptoService.cipher.d.ts +3 -2
  89. package/dist/cryptoService/operations/cryptoService.cipher.js +13 -9
  90. package/dist/cryptoService/operations/cryptoService.hash.d.ts +3 -2
  91. package/dist/cryptoService/operations/cryptoService.hash.js +7 -8
  92. package/dist/cryptoService/operations/cryptoService.password.d.ts +7 -2
  93. package/dist/cryptoService/operations/cryptoService.password.js +20 -9
  94. package/dist/cryptoService/operations/cryptoService.token.d.ts +9 -4
  95. package/dist/cryptoService/operations/cryptoService.token.js +31 -17
  96. package/dist/cryptoSignature/cryptoSignature.core.d.ts +10 -2
  97. package/dist/cryptoSignature/cryptoSignature.core.js +7 -3
  98. package/dist/cryptoToken/cryptoToken.core.d.ts +15 -9
  99. package/dist/cryptoToken/cryptoToken.core.js +63 -38
  100. package/dist/cryptoToken/cryptoToken.hash.d.ts +9 -7
  101. package/dist/cryptoToken/cryptoToken.hash.js +19 -43
  102. package/dist/cryptoUtils/cryptoUtils.compare.d.ts +3 -1
  103. package/dist/cryptoUtils/cryptoUtils.compare.js +5 -14
  104. package/dist/cryptoUtils/cryptoUtils.number.d.ts +3 -0
  105. package/dist/cryptoUtils/cryptoUtils.number.js +12 -6
  106. package/dist/cryptoUtils/cryptoUtils.validation.d.ts +2 -2
  107. package/dist/cryptoUtils/cryptoUtils.validation.js +6 -8
  108. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts +4 -4
  109. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js +5 -23
  110. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts +4 -4
  111. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js +5 -32
  112. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts +4 -4
  113. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js +5 -20
  114. package/dist/index.d.ts +1 -2
  115. package/dist/index.js +1 -2
  116. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts +6 -29
  117. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js +0 -1
  118. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts +9 -4
  119. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js +25 -43
  120. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts +7 -0
  121. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js +89 -30
  122. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts +17 -10
  123. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js +112 -72
  124. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts +3 -12
  125. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js +74 -25
  126. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js +7 -2
  127. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts +6 -0
  128. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js +18 -18
  129. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts +10 -12
  130. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js +75 -20
  131. package/dist/node/signing/signing.conversion.d.ts +13 -3
  132. package/dist/node/signing/signing.conversion.js +35 -15
  133. package/dist/node/signing/signing.core.d.ts +2 -1
  134. package/dist/node/signing/signing.core.js +2 -3
  135. package/dist/node/signing/signing.utils.d.ts +10 -2
  136. package/dist/node/signing/signing.utils.js +26 -5
  137. package/package.json +24 -14
  138. package/dist/.tsbuildinfo +0 -1
  139. package/dist/compare/compare.helper.d.ts.map +0 -1
  140. package/dist/compare/compare.helper.js.map +0 -1
  141. package/dist/compare/index.d.ts.map +0 -1
  142. package/dist/compare/index.js.map +0 -1
  143. package/dist/cryptoAlgorithm/index.d.ts +0 -8
  144. package/dist/cryptoAlgorithm/index.d.ts.map +0 -1
  145. package/dist/cryptoAlgorithm/index.js +0 -8
  146. package/dist/cryptoAlgorithm/index.js.map +0 -1
  147. package/dist/cryptoCipher/cryptoCipher.core.d.ts.map +0 -1
  148. package/dist/cryptoCipher/cryptoCipher.core.js.map +0 -1
  149. package/dist/cryptoCipher/cryptoCipher.envelope.d.ts.map +0 -1
  150. package/dist/cryptoCipher/cryptoCipher.envelope.js.map +0 -1
  151. package/dist/cryptoCipher/cryptoCipher.string.d.ts.map +0 -1
  152. package/dist/cryptoCipher/cryptoCipher.string.js.map +0 -1
  153. package/dist/cryptoCipher/index.d.ts.map +0 -1
  154. package/dist/cryptoCipher/index.js.map +0 -1
  155. package/dist/cryptoConstants/cryptoConstants.config.d.ts.map +0 -1
  156. package/dist/cryptoConstants/cryptoConstants.config.js.map +0 -1
  157. package/dist/cryptoConstants/cryptoConstants.guard.d.ts.map +0 -1
  158. package/dist/cryptoConstants/cryptoConstants.guard.js.map +0 -1
  159. package/dist/cryptoConstants/cryptoConstants.security.d.ts.map +0 -1
  160. package/dist/cryptoConstants/cryptoConstants.security.js.map +0 -1
  161. package/dist/cryptoConstants/cryptoConstants.token.d.ts.map +0 -1
  162. package/dist/cryptoConstants/cryptoConstants.token.js.map +0 -1
  163. package/dist/cryptoConstants/cryptoConstants.type.d.ts.map +0 -1
  164. package/dist/cryptoConstants/cryptoConstants.type.js.map +0 -1
  165. package/dist/cryptoConstants/index.d.ts.map +0 -1
  166. package/dist/cryptoConstants/index.js.map +0 -1
  167. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts.map +0 -1
  168. package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js.map +0 -1
  169. package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts.map +0 -1
  170. package/dist/cryptoEncoding/cryptoEncoding.compare.js.map +0 -1
  171. package/dist/cryptoEncoding/cryptoEncoding.core.d.ts.map +0 -1
  172. package/dist/cryptoEncoding/cryptoEncoding.core.js.map +0 -1
  173. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts.map +0 -1
  174. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js.map +0 -1
  175. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts.map +0 -1
  176. package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js.map +0 -1
  177. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts.map +0 -1
  178. package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js.map +0 -1
  179. package/dist/cryptoEncoding/encoding/index.d.ts.map +0 -1
  180. package/dist/cryptoEncoding/encoding/index.js.map +0 -1
  181. package/dist/cryptoEncoding/index.d.ts.map +0 -1
  182. package/dist/cryptoEncoding/index.js.map +0 -1
  183. package/dist/cryptoErrors/index.d.ts.map +0 -1
  184. package/dist/cryptoErrors/index.js.map +0 -1
  185. package/dist/cryptoFactory/cryptoFactory.core.d.ts.map +0 -1
  186. package/dist/cryptoFactory/cryptoFactory.core.js.map +0 -1
  187. package/dist/cryptoFactory/cryptoFactory.encoding.d.ts.map +0 -1
  188. package/dist/cryptoFactory/cryptoFactory.encoding.js.map +0 -1
  189. package/dist/cryptoFactory/cryptoFactory.options.d.ts +0 -2
  190. package/dist/cryptoFactory/cryptoFactory.options.d.ts.map +0 -1
  191. package/dist/cryptoFactory/cryptoFactory.options.js +0 -6
  192. package/dist/cryptoFactory/cryptoFactory.options.js.map +0 -1
  193. package/dist/cryptoFactory/cryptoFactory.password.d.ts.map +0 -1
  194. package/dist/cryptoFactory/cryptoFactory.password.js.map +0 -1
  195. package/dist/cryptoFactory/cryptoFactory.token.d.ts.map +0 -1
  196. package/dist/cryptoFactory/cryptoFactory.token.js.map +0 -1
  197. package/dist/cryptoFactory/index.d.ts.map +0 -1
  198. package/dist/cryptoFactory/index.js.map +0 -1
  199. package/dist/cryptoHash/cryptoHash.codec.d.ts.map +0 -1
  200. package/dist/cryptoHash/cryptoHash.codec.js.map +0 -1
  201. package/dist/cryptoHash/cryptoHash.compare.d.ts.map +0 -1
  202. package/dist/cryptoHash/cryptoHash.compare.js.map +0 -1
  203. package/dist/cryptoHash/cryptoHash.convenience.d.ts.map +0 -1
  204. package/dist/cryptoHash/cryptoHash.convenience.js.map +0 -1
  205. package/dist/cryptoHash/cryptoHash.core.d.ts.map +0 -1
  206. package/dist/cryptoHash/cryptoHash.core.js.map +0 -1
  207. package/dist/cryptoHash/cryptoHmac.core.d.ts.map +0 -1
  208. package/dist/cryptoHash/cryptoHmac.core.js.map +0 -1
  209. package/dist/cryptoHash/index.d.ts.map +0 -1
  210. package/dist/cryptoHash/index.js.map +0 -1
  211. package/dist/cryptoKey/cryptoKey.factory.d.ts.map +0 -1
  212. package/dist/cryptoKey/cryptoKey.factory.js.map +0 -1
  213. package/dist/cryptoKey/cryptoKey.type.d.ts.map +0 -1
  214. package/dist/cryptoKey/cryptoKey.type.js.map +0 -1
  215. package/dist/cryptoKey/cryptoKey.utils.d.ts.map +0 -1
  216. package/dist/cryptoKey/cryptoKey.utils.js.map +0 -1
  217. package/dist/cryptoKey/index.d.ts.map +0 -1
  218. package/dist/cryptoKey/index.js.map +0 -1
  219. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts.map +0 -1
  220. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js.map +0 -1
  221. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts.map +0 -1
  222. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js.map +0 -1
  223. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts.map +0 -1
  224. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js.map +0 -1
  225. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts.map +0 -1
  226. package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js.map +0 -1
  227. package/dist/cryptoKeyDerivation/index.d.ts.map +0 -1
  228. package/dist/cryptoKeyDerivation/index.js.map +0 -1
  229. package/dist/cryptoPassword/cryptoPassword.codec.d.ts.map +0 -1
  230. package/dist/cryptoPassword/cryptoPassword.codec.js.map +0 -1
  231. package/dist/cryptoPassword/cryptoPassword.core.d.ts.map +0 -1
  232. package/dist/cryptoPassword/cryptoPassword.core.js.map +0 -1
  233. package/dist/cryptoPassword/cryptoPassword.helper.d.ts.map +0 -1
  234. package/dist/cryptoPassword/cryptoPassword.helper.js.map +0 -1
  235. package/dist/cryptoPassword/cryptoPassword.type.d.ts.map +0 -1
  236. package/dist/cryptoPassword/cryptoPassword.type.js.map +0 -1
  237. package/dist/cryptoPassword/cryptoPassword.validate.d.ts.map +0 -1
  238. package/dist/cryptoPassword/cryptoPassword.validate.js.map +0 -1
  239. package/dist/cryptoPassword/index.d.ts.map +0 -1
  240. package/dist/cryptoPassword/index.js.map +0 -1
  241. package/dist/cryptoProvider/cryptoProvider.core.d.ts.map +0 -1
  242. package/dist/cryptoProvider/cryptoProvider.core.js.map +0 -1
  243. package/dist/cryptoProvider/cryptoProvider.interface.d.ts.map +0 -1
  244. package/dist/cryptoProvider/cryptoProvider.interface.js.map +0 -1
  245. package/dist/cryptoProvider/cryptoProvider.type.d.ts.map +0 -1
  246. package/dist/cryptoProvider/cryptoProvider.type.js.map +0 -1
  247. package/dist/cryptoProvider/index.d.ts.map +0 -1
  248. package/dist/cryptoProvider/index.js.map +0 -1
  249. package/dist/cryptoProvider/types/cryptoCipher.type.d.ts.map +0 -1
  250. package/dist/cryptoProvider/types/cryptoCipher.type.js.map +0 -1
  251. package/dist/cryptoProvider/types/cryptoHash.type.d.ts.map +0 -1
  252. package/dist/cryptoProvider/types/cryptoHash.type.js.map +0 -1
  253. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts.map +0 -1
  254. package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js.map +0 -1
  255. package/dist/cryptoProvider/types/cryptoRandom.type.d.ts.map +0 -1
  256. package/dist/cryptoProvider/types/cryptoRandom.type.js.map +0 -1
  257. package/dist/cryptoProvider/types/cryptoSignature.type.d.ts.map +0 -1
  258. package/dist/cryptoProvider/types/cryptoSignature.type.js.map +0 -1
  259. package/dist/cryptoProvider/types/index.d.ts.map +0 -1
  260. package/dist/cryptoProvider/types/index.js.map +0 -1
  261. package/dist/cryptoRandom/cryptoRandom.choice.d.ts.map +0 -1
  262. package/dist/cryptoRandom/cryptoRandom.choice.js.map +0 -1
  263. package/dist/cryptoRandom/cryptoRandom.core.d.ts.map +0 -1
  264. package/dist/cryptoRandom/cryptoRandom.core.js.map +0 -1
  265. package/dist/cryptoRandom/cryptoRandom.string.d.ts.map +0 -1
  266. package/dist/cryptoRandom/cryptoRandom.string.js.map +0 -1
  267. package/dist/cryptoRandom/index.d.ts.map +0 -1
  268. package/dist/cryptoRandom/index.js.map +0 -1
  269. package/dist/cryptoService/cryptoService.core.d.ts.map +0 -1
  270. package/dist/cryptoService/cryptoService.core.js.map +0 -1
  271. package/dist/cryptoService/cryptoService.derivation.d.ts.map +0 -1
  272. package/dist/cryptoService/cryptoService.derivation.js.map +0 -1
  273. package/dist/cryptoService/cryptoService.encoding.d.ts.map +0 -1
  274. package/dist/cryptoService/cryptoService.encoding.js.map +0 -1
  275. package/dist/cryptoService/index.d.ts.map +0 -1
  276. package/dist/cryptoService/index.js.map +0 -1
  277. package/dist/cryptoService/operations/cryptoService.cipher.d.ts.map +0 -1
  278. package/dist/cryptoService/operations/cryptoService.cipher.js.map +0 -1
  279. package/dist/cryptoService/operations/cryptoService.hash.d.ts.map +0 -1
  280. package/dist/cryptoService/operations/cryptoService.hash.js.map +0 -1
  281. package/dist/cryptoService/operations/cryptoService.password.d.ts.map +0 -1
  282. package/dist/cryptoService/operations/cryptoService.password.js.map +0 -1
  283. package/dist/cryptoService/operations/cryptoService.token.d.ts.map +0 -1
  284. package/dist/cryptoService/operations/cryptoService.token.js.map +0 -1
  285. package/dist/cryptoService/operations/index.d.ts.map +0 -1
  286. package/dist/cryptoService/operations/index.js.map +0 -1
  287. package/dist/cryptoSignature/cryptoSignature.core.d.ts.map +0 -1
  288. package/dist/cryptoSignature/cryptoSignature.core.js.map +0 -1
  289. package/dist/cryptoSignature/index.d.ts.map +0 -1
  290. package/dist/cryptoSignature/index.js.map +0 -1
  291. package/dist/cryptoToken/cryptoToken.core.d.ts.map +0 -1
  292. package/dist/cryptoToken/cryptoToken.core.js.map +0 -1
  293. package/dist/cryptoToken/cryptoToken.hash.d.ts.map +0 -1
  294. package/dist/cryptoToken/cryptoToken.hash.js.map +0 -1
  295. package/dist/cryptoToken/cryptoToken.utils.d.ts.map +0 -1
  296. package/dist/cryptoToken/cryptoToken.utils.js.map +0 -1
  297. package/dist/cryptoToken/index.d.ts.map +0 -1
  298. package/dist/cryptoToken/index.js.map +0 -1
  299. package/dist/cryptoUtils/cryptoUtils.compare.d.ts.map +0 -1
  300. package/dist/cryptoUtils/cryptoUtils.compare.js.map +0 -1
  301. package/dist/cryptoUtils/cryptoUtils.conversion.d.ts.map +0 -1
  302. package/dist/cryptoUtils/cryptoUtils.conversion.js.map +0 -1
  303. package/dist/cryptoUtils/cryptoUtils.number.d.ts.map +0 -1
  304. package/dist/cryptoUtils/cryptoUtils.number.js.map +0 -1
  305. package/dist/cryptoUtils/cryptoUtils.text.d.ts.map +0 -1
  306. package/dist/cryptoUtils/cryptoUtils.text.js.map +0 -1
  307. package/dist/cryptoUtils/cryptoUtils.validation.d.ts.map +0 -1
  308. package/dist/cryptoUtils/cryptoUtils.validation.js.map +0 -1
  309. package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts.map +0 -1
  310. package/dist/cryptoUtils/encoding/cryptoUtils.base64.js.map +0 -1
  311. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts.map +0 -1
  312. package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js.map +0 -1
  313. package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts.map +0 -1
  314. package/dist/cryptoUtils/encoding/cryptoUtils.hex.js.map +0 -1
  315. package/dist/cryptoUtils/encoding/index.d.ts.map +0 -1
  316. package/dist/cryptoUtils/encoding/index.js.map +0 -1
  317. package/dist/cryptoUtils/index.d.ts.map +0 -1
  318. package/dist/cryptoUtils/index.js.map +0 -1
  319. package/dist/index.d.ts.map +0 -1
  320. package/dist/index.js.map +0 -1
  321. package/dist/node/index.d.ts.map +0 -1
  322. package/dist/node/index.js.map +0 -1
  323. package/dist/node/nodeCryptoProvider/index.d.ts.map +0 -1
  324. package/dist/node/nodeCryptoProvider/index.js.map +0 -1
  325. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts.map +0 -1
  326. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js.map +0 -1
  327. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts.map +0 -1
  328. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js.map +0 -1
  329. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts.map +0 -1
  330. package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js.map +0 -1
  331. package/dist/node/nodeCryptoProvider/operations/index.d.ts.map +0 -1
  332. package/dist/node/nodeCryptoProvider/operations/index.js.map +0 -1
  333. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts.map +0 -1
  334. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js.map +0 -1
  335. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts.map +0 -1
  336. package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js.map +0 -1
  337. package/dist/node/nodeCryptoProvider/primitives/index.d.ts.map +0 -1
  338. package/dist/node/nodeCryptoProvider/primitives/index.js.map +0 -1
  339. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts.map +0 -1
  340. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js.map +0 -1
  341. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts.map +0 -1
  342. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js.map +0 -1
  343. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts.map +0 -1
  344. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js.map +0 -1
  345. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts.map +0 -1
  346. package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js.map +0 -1
  347. package/dist/node/signing/index.d.ts.map +0 -1
  348. package/dist/node/signing/index.js.map +0 -1
  349. package/dist/node/signing/signing.conversion.d.ts.map +0 -1
  350. package/dist/node/signing/signing.conversion.js.map +0 -1
  351. package/dist/node/signing/signing.core.d.ts.map +0 -1
  352. package/dist/node/signing/signing.core.js.map +0 -1
  353. package/dist/node/signing/signing.utils.d.ts.map +0 -1
  354. package/dist/node/signing/signing.utils.js.map +0 -1
@@ -1,29 +1,84 @@
1
- import { createPrivateKey, createPublicKey, createSign, createVerify, sign as signImpl, verify as verifyImpl, } from "node:crypto";
2
- import { toBytes, nodeSignatureAlgorithm, } from "../nodeCryptoProvider.helper.js";
1
+ import { isSignatureAlgorithmName } from "../../../cryptoProvider/cryptoProvider.type.js";
2
+ import { createSign, createVerify, sign as signImpl, verify as verifyImpl, } from "node:crypto";
3
+ import { CryptoOperation } from "@zudojs/errors";
4
+ import { toBytes } from "../nodeCryptoProvider.helper.js";
5
+ import { signatureError } from "../../../cryptoErrors/cryptoErrors.helper.js";
6
+ import { toPrivateKey, toPublicKey, } from "../../signing/signing.conversion.js";
7
+ import { nodeSignatureAlgorithm, expectedAsymmetricKeyType, } from "../../signing/signing.utils.js";
8
+ function assertAlgorithm(algorithm, operation) {
9
+ if (!isSignatureAlgorithmName(algorithm)) {
10
+ throw signatureError(`Unsupported signature algorithm: ${String(algorithm)}.`, operation, typeof algorithm === "string" ? algorithm : undefined);
11
+ }
12
+ }
13
+ /**
14
+ * Ensures the key's type matches the requested algorithm so that the
15
+ * algorithm label is a real integrity assertion (an EC key cannot sign
16
+ * under "rsa-sha256").
17
+ */
18
+ function assertKeyType(key, algorithm, operation) {
19
+ const expected = expectedAsymmetricKeyType(algorithm);
20
+ if (key.asymmetricKeyType !== expected) {
21
+ throw signatureError(`Signature algorithm "${algorithm}" requires a ${expected} key, received ${String(key.asymmetricKeyType)}.`, operation, algorithm);
22
+ }
23
+ }
3
24
  export async function sign(options) {
4
25
  const algorithm = options.algorithm ?? "ed25519";
5
- const key = toBytes(options.key);
26
+ assertAlgorithm(algorithm, CryptoOperation.SIGN);
6
27
  const data = toBytes(options.data);
7
- const privateKey = createPrivateKey(key);
8
- if (algorithm === "ed25519") {
9
- return new Uint8Array(signImpl(null, data, privateKey));
10
- }
11
- const signer = createSign(nodeSignatureAlgorithm(algorithm));
12
- signer.update(data);
13
- signer.end();
14
- return new Uint8Array(signer.sign(privateKey));
28
+ let privateKey;
29
+ try {
30
+ privateKey = toPrivateKey(options.key);
31
+ }
32
+ catch (error) {
33
+ throw signatureError("Invalid private key.", CryptoOperation.SIGN, algorithm, error);
34
+ }
35
+ assertKeyType(privateKey, algorithm, CryptoOperation.SIGN);
36
+ try {
37
+ if (algorithm === "ed25519") {
38
+ return new Uint8Array(signImpl(null, data, privateKey));
39
+ }
40
+ const signer = createSign(nodeSignatureAlgorithm(algorithm));
41
+ signer.update(data);
42
+ signer.end();
43
+ return new Uint8Array(signer.sign(privateKey));
44
+ }
45
+ catch (error) {
46
+ throw signatureError("Signing failed.", CryptoOperation.SIGN, algorithm, error);
47
+ }
15
48
  }
49
+ /**
50
+ * Verifies a signature.
51
+ *
52
+ * Returns false for a malformed key, malformed signature or mismatching
53
+ * data. Throws only for programmer errors (unsupported algorithm, key
54
+ * type that cannot be used with the algorithm).
55
+ */
16
56
  export async function verify(options) {
17
57
  const algorithm = options.algorithm ?? "ed25519";
18
- const key = toBytes(options.key);
58
+ assertAlgorithm(algorithm, CryptoOperation.VERIFY_SIGNATURE);
59
+ if (!(options.signature instanceof Uint8Array)) {
60
+ return false;
61
+ }
19
62
  const data = toBytes(options.data);
20
- const publicKey = createPublicKey(key);
21
- if (algorithm === "ed25519") {
22
- return verifyImpl(null, data, publicKey, options.signature);
23
- }
24
- const verifier = createVerify(nodeSignatureAlgorithm(algorithm));
25
- verifier.update(data);
26
- verifier.end();
27
- return verifier.verify(publicKey, options.signature);
63
+ let publicKey;
64
+ try {
65
+ publicKey = toPublicKey(options.key);
66
+ }
67
+ catch {
68
+ return false;
69
+ }
70
+ assertKeyType(publicKey, algorithm, CryptoOperation.VERIFY_SIGNATURE);
71
+ try {
72
+ if (algorithm === "ed25519") {
73
+ return verifyImpl(null, data, publicKey, options.signature);
74
+ }
75
+ const verifier = createVerify(nodeSignatureAlgorithm(algorithm));
76
+ verifier.update(data);
77
+ verifier.end();
78
+ return verifier.verify(publicKey, options.signature);
79
+ }
80
+ catch {
81
+ return false;
82
+ }
28
83
  }
29
84
  //# sourceMappingURL=nodeCryptoProvider.signing.js.map
@@ -1,9 +1,19 @@
1
1
  import type { CryptoKey } from "../../cryptoKey/cryptoKey.type.js";
2
2
  import { type KeyObject } from "node:crypto";
3
3
  /**
4
- * Converts a CryptoKey into a Node.js KeyObject.
4
+ * Key material accepted by the conversion helpers.
5
+ *
6
+ * - `KeyObject`: used as-is.
7
+ * - `string`: PEM text.
8
+ * - `Uint8Array`/`ArrayBuffer`: PEM text when the bytes start with
9
+ * `-----BEGIN`, otherwise DER (PKCS#8 for private keys, SPKI for
10
+ * public keys).
11
+ */
12
+ export type KeyMaterial = KeyObject | string | Uint8Array | ArrayBuffer;
13
+ /**
14
+ * Converts a CryptoKey holding a PKCS#8 DER Ed25519 key into a KeyObject.
5
15
  */
6
16
  export declare function cryptoKeyToPrivateKey(key: CryptoKey): KeyObject;
7
- export declare function toPrivateKey(key: KeyObject | string | Uint8Array): KeyObject;
8
- export declare function toPublicKey(key: KeyObject | string | Uint8Array): KeyObject;
17
+ export declare function toPrivateKey(key: KeyMaterial): KeyObject;
18
+ export declare function toPublicKey(key: KeyMaterial): KeyObject;
9
19
  //# sourceMappingURL=signing.conversion.d.ts.map
@@ -1,7 +1,19 @@
1
1
  import { createPrivateKey, createPublicKey } from "node:crypto";
2
2
  import { isKeyObject } from "./signing.utils.js";
3
+ const PEM_PREFIX = Buffer.from("-----BEGIN", "utf8");
4
+ function looksLikePem(bytes) {
5
+ if (bytes.byteLength < PEM_PREFIX.byteLength) {
6
+ return false;
7
+ }
8
+ for (let index = 0; index < PEM_PREFIX.byteLength; index += 1) {
9
+ if (bytes[index] !== PEM_PREFIX[index]) {
10
+ return false;
11
+ }
12
+ }
13
+ return true;
14
+ }
3
15
  /**
4
- * Converts a CryptoKey into a Node.js KeyObject.
16
+ * Converts a CryptoKey holding a PKCS#8 DER Ed25519 key into a KeyObject.
5
17
  */
6
18
  export function cryptoKeyToPrivateKey(key) {
7
19
  if (key.algorithm !== "ed25519") {
@@ -23,14 +35,18 @@ export function toPrivateKey(key) {
23
35
  if (typeof key === "string") {
24
36
  return createPrivateKey(key);
25
37
  }
26
- if (key instanceof Uint8Array) {
27
- return createPrivateKey({
28
- key: Buffer.from(key),
29
- format: "der",
30
- type: "pkcs8",
31
- });
38
+ const bytes = key instanceof ArrayBuffer ? new Uint8Array(key) : key;
39
+ if (!(bytes instanceof Uint8Array)) {
40
+ throw new TypeError("Invalid private key.");
32
41
  }
33
- throw new TypeError("Invalid private key.");
42
+ if (looksLikePem(bytes)) {
43
+ return createPrivateKey(Buffer.from(bytes));
44
+ }
45
+ return createPrivateKey({
46
+ key: Buffer.from(bytes),
47
+ format: "der",
48
+ type: "pkcs8",
49
+ });
34
50
  }
35
51
  export function toPublicKey(key) {
36
52
  if (isKeyObject(key)) {
@@ -39,13 +55,17 @@ export function toPublicKey(key) {
39
55
  if (typeof key === "string") {
40
56
  return createPublicKey(key);
41
57
  }
42
- if (key instanceof Uint8Array) {
43
- return createPublicKey({
44
- key: Buffer.from(key),
45
- format: "der",
46
- type: "spki",
47
- });
58
+ const bytes = key instanceof ArrayBuffer ? new Uint8Array(key) : key;
59
+ if (!(bytes instanceof Uint8Array)) {
60
+ throw new TypeError("Invalid public key.");
61
+ }
62
+ if (looksLikePem(bytes)) {
63
+ return createPublicKey(Buffer.from(bytes));
48
64
  }
49
- throw new TypeError("Invalid public key.");
65
+ return createPublicKey({
66
+ key: Buffer.from(bytes),
67
+ format: "der",
68
+ type: "spki",
69
+ });
50
70
  }
51
71
  //# sourceMappingURL=signing.conversion.js.map
@@ -1,4 +1,5 @@
1
1
  import { type KeyObject } from "node:crypto";
2
+ import { type KeyMaterial } from "./signing.conversion.js";
2
3
  /**
3
4
  * Generates an Ed25519 key pair.
4
5
  */
@@ -17,5 +18,5 @@ export declare function exportPublicKeyPem(publicKey: KeyObject): string;
17
18
  /**
18
19
  * Creates a public key from a private key.
19
20
  */
20
- export declare function derivePublicKey(privateKey: KeyObject | string | Uint8Array): KeyObject;
21
+ export declare function derivePublicKey(privateKey: KeyMaterial): KeyObject;
21
22
  //# sourceMappingURL=signing.core.d.ts.map
@@ -1,6 +1,5 @@
1
- import { generateKeyPairSync, createPrivateKey, createPublicKey, } from "node:crypto";
2
- import { CryptoAlgorithm } from "../../cryptoConstants/cryptoConstants.type.js";
3
- import { cryptoKeyToPrivateKey, toPrivateKey } from "./signing.conversion.js";
1
+ import { generateKeyPairSync, createPublicKey } from "node:crypto";
2
+ import { toPrivateKey } from "./signing.conversion.js";
4
3
  import { assertKeyObject } from "./signing.utils.js";
5
4
  /**
6
5
  * Generates an Ed25519 key pair.
@@ -1,9 +1,17 @@
1
1
  import type { SignatureAlgorithm } from "../../cryptoProvider/index.js";
2
- import type { KeyObject } from "node:crypto";
2
+ import { KeyObject } from "node:crypto";
3
3
  /**
4
- * Maps a signature algorithm to a Node.js hash algorithm name.
4
+ * Maps a signature algorithm to the OpenSSL digest name used with
5
+ * `createSign`/`createVerify`.
6
+ *
7
+ * Ed25519 is a pure signature scheme and has no digest; use
8
+ * `crypto.sign(null, ...)` for it instead.
5
9
  */
6
10
  export declare function nodeSignatureAlgorithm(algorithm: SignatureAlgorithm): string;
11
+ /**
12
+ * Returns the `KeyObject.asymmetricKeyType` a signature algorithm requires.
13
+ */
14
+ export declare function expectedAsymmetricKeyType(algorithm: SignatureAlgorithm): "rsa" | "ec" | "ed25519";
7
15
  /**
8
16
  * Checks whether a value is a Node.js KeyObject.
9
17
  */
@@ -1,5 +1,10 @@
1
+ import { KeyObject } from "node:crypto";
1
2
  /**
2
- * Maps a signature algorithm to a Node.js hash algorithm name.
3
+ * Maps a signature algorithm to the OpenSSL digest name used with
4
+ * `createSign`/`createVerify`.
5
+ *
6
+ * Ed25519 is a pure signature scheme and has no digest; use
7
+ * `crypto.sign(null, ...)` for it instead.
3
8
  */
4
9
  export function nodeSignatureAlgorithm(algorithm) {
5
10
  switch (algorithm) {
@@ -21,14 +26,30 @@ export function nodeSignatureAlgorithm(algorithm) {
21
26
  throw new TypeError(`Unsupported signature algorithm: ${String(algorithm)}.`);
22
27
  }
23
28
  }
29
+ /**
30
+ * Returns the `KeyObject.asymmetricKeyType` a signature algorithm requires.
31
+ */
32
+ export function expectedAsymmetricKeyType(algorithm) {
33
+ switch (algorithm) {
34
+ case "rsa-sha256":
35
+ case "rsa-sha384":
36
+ case "rsa-sha512":
37
+ return "rsa";
38
+ case "ecdsa-sha256":
39
+ case "ecdsa-sha384":
40
+ case "ecdsa-sha512":
41
+ return "ec";
42
+ case "ed25519":
43
+ return "ed25519";
44
+ default:
45
+ throw new TypeError(`Unsupported signature algorithm: ${String(algorithm)}.`);
46
+ }
47
+ }
24
48
  /**
25
49
  * Checks whether a value is a Node.js KeyObject.
26
50
  */
27
51
  export function isKeyObject(value) {
28
- return (typeof value === "object" &&
29
- value !== null &&
30
- "type" in value &&
31
- "export" in value);
52
+ return value instanceof KeyObject;
32
53
  }
33
54
  /**
34
55
  * Asserts that a value is a Node.js KeyObject.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zudojs/crypto",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Cryptographic primitives for hashing, encryption, tokens, and secure random generation.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,25 +13,23 @@
13
13
  }
14
14
  },
15
15
  "files": [
16
- "dist"
16
+ "dist",
17
+ "!dist/**/*.map",
18
+ "!dist/**/*.tsbuildinfo",
19
+ "!dist/.tsbuildinfo",
20
+ "LICENSE"
17
21
  ],
18
- "scripts": {
19
- "build": "tsc -p tsconfig.json",
20
- "typecheck": "tsc -p tsconfig.json --noEmit",
21
- "clean": "rm -rf dist",
22
- "test": "vitest run",
23
- "test:watch": "vitest"
24
- },
25
22
  "engines": {
26
23
  "node": ">=24.0.0"
27
24
  },
28
25
  "dependencies": {
29
- "@zudojs/constants": "0.1.0",
30
- "@zudojs/errors": "0.1.0"
26
+ "@zudojs/constants": "1.0.0",
27
+ "@zudojs/errors": "1.0.0"
31
28
  },
32
29
  "license": "MIT",
33
30
  "devDependencies": {
34
- "typescript": "^7.0.2"
31
+ "typescript": "7.0.2",
32
+ "vitest": "^4.1.11"
35
33
  },
36
34
  "publishConfig": {
37
35
  "access": "public"
@@ -44,8 +42,20 @@
44
42
  "security"
45
43
  ],
46
44
  "homepage": "https://github.com/oyinlola-tech/zudo#readme",
45
+ "bugs": {
46
+ "url": "https://github.com/oyinlola-tech/zudo/issues"
47
+ },
47
48
  "repository": {
48
49
  "type": "git",
49
- "url": "https://github.com/oyinlola-tech/zudo"
50
+ "url": "https://github.com/oyinlola-tech/zudo",
51
+ "directory": "packages/crypto"
52
+ },
53
+ "sideEffects": false,
54
+ "scripts": {
55
+ "build": "tsc -p tsconfig.json",
56
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit",
57
+ "clean": "rm -rf dist *.tsbuildinfo",
58
+ "test": "vitest run",
59
+ "test:watch": "vitest"
50
60
  }
51
- }
61
+ }