@zudojs/crypto 0.1.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +43 -14
- package/dist/compare/compare.helper.d.ts +10 -2
- package/dist/compare/compare.helper.js +22 -6
- package/dist/cryptoCipher/cryptoCipher.core.d.ts +11 -1
- package/dist/cryptoCipher/cryptoCipher.core.js +19 -3
- package/dist/cryptoCipher/cryptoCipher.envelope.d.ts +7 -2
- package/dist/cryptoCipher/cryptoCipher.envelope.js +33 -14
- package/dist/cryptoCipher/cryptoCipher.string.d.ts +2 -1
- package/dist/cryptoCipher/cryptoCipher.string.js +2 -2
- package/dist/cryptoConstants/cryptoConstants.guard.d.ts +9 -0
- package/dist/cryptoConstants/cryptoConstants.guard.js +16 -1
- package/dist/cryptoConstants/cryptoConstants.security.d.ts +42 -1
- package/dist/cryptoConstants/cryptoConstants.security.js +42 -1
- package/dist/cryptoConstants/cryptoConstants.token.d.ts +2 -0
- package/dist/cryptoConstants/cryptoConstants.token.js +2 -0
- package/dist/cryptoConstants/cryptoConstants.type.d.ts +36 -14
- package/dist/cryptoConstants/cryptoConstants.type.js +36 -14
- package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts +4 -1
- package/dist/cryptoEncoding/cryptoEncoding.compare.js +11 -4
- package/dist/cryptoEncoding/cryptoEncoding.core.d.ts +22 -0
- package/dist/cryptoEncoding/cryptoEncoding.core.js +41 -3
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts +10 -2
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js +24 -16
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts +9 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js +23 -20
- package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts +9 -2
- package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js +17 -11
- package/dist/cryptoErrors/cryptoErrors.helper.d.ts +30 -0
- package/dist/cryptoErrors/cryptoErrors.helper.js +72 -0
- package/dist/cryptoFactory/cryptoFactory.core.d.ts +37 -6
- package/dist/cryptoFactory/cryptoFactory.core.js +56 -30
- package/dist/cryptoFactory/cryptoFactory.password.d.ts +4 -3
- package/dist/cryptoFactory/cryptoFactory.password.js +4 -4
- package/dist/cryptoFactory/cryptoFactory.token.d.ts +9 -8
- package/dist/cryptoFactory/cryptoFactory.token.js +16 -15
- package/dist/cryptoHash/cryptoHash.codec.d.ts +2 -0
- package/dist/cryptoHash/cryptoHash.codec.js +12 -12
- package/dist/cryptoHash/cryptoHash.compare.d.ts +3 -1
- package/dist/cryptoHash/cryptoHash.compare.js +5 -9
- package/dist/cryptoHash/cryptoHash.core.d.ts +6 -2
- package/dist/cryptoHash/cryptoHash.core.js +9 -2
- package/dist/cryptoHash/cryptoHmac.core.d.ts +8 -5
- package/dist/cryptoHash/cryptoHmac.core.js +22 -9
- package/dist/cryptoKey/cryptoKey.factory.d.ts +29 -2
- package/dist/cryptoKey/cryptoKey.factory.js +82 -18
- package/dist/cryptoKey/cryptoKey.utils.d.ts +5 -3
- package/dist/cryptoKey/cryptoKey.utils.js +5 -3
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts +7 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js +40 -15
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts +2 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js +2 -3
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts +5 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts +13 -2
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js +53 -16
- package/dist/cryptoPassword/cryptoPassword.codec.d.ts +15 -1
- package/dist/cryptoPassword/cryptoPassword.codec.js +127 -56
- package/dist/cryptoPassword/cryptoPassword.core.d.ts +17 -3
- package/dist/cryptoPassword/cryptoPassword.core.js +29 -21
- package/dist/cryptoPassword/cryptoPassword.helper.js +6 -5
- package/dist/cryptoPassword/cryptoPassword.type.d.ts +33 -5
- package/dist/cryptoPassword/cryptoPassword.validate.d.ts +14 -3
- package/dist/cryptoPassword/cryptoPassword.validate.js +51 -20
- package/dist/cryptoProvider/cryptoProvider.default.d.ts +18 -0
- package/dist/cryptoProvider/cryptoProvider.default.js +31 -0
- package/dist/cryptoProvider/cryptoProvider.interface.d.ts +9 -34
- package/dist/cryptoProvider/cryptoProvider.type.d.ts +32 -3
- package/dist/cryptoProvider/cryptoProvider.type.js +40 -1
- package/dist/cryptoProvider/index.d.ts +5 -2
- package/dist/cryptoProvider/index.js +2 -0
- package/dist/cryptoProvider/types/cryptoCipher.type.d.ts +11 -6
- package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts +39 -3
- package/dist/cryptoProvider/types/cryptoSignature.type.d.ts +5 -5
- package/dist/cryptoProvider/types/index.d.ts +1 -1
- package/dist/cryptoRandom/cryptoRandom.choice.d.ts +6 -3
- package/dist/cryptoRandom/cryptoRandom.choice.js +10 -6
- package/dist/cryptoRandom/cryptoRandom.core.d.ts +8 -5
- package/dist/cryptoRandom/cryptoRandom.core.js +8 -7
- package/dist/cryptoRandom/cryptoRandom.string.d.ts +11 -9
- package/dist/cryptoRandom/cryptoRandom.string.js +28 -29
- package/dist/cryptoService/cryptoService.core.d.ts +47 -9
- package/dist/cryptoService/cryptoService.core.js +65 -33
- package/dist/cryptoService/cryptoService.derivation.d.ts +3 -3
- package/dist/cryptoService/cryptoService.derivation.js +8 -6
- package/dist/cryptoService/cryptoService.encoding.js +6 -5
- package/dist/cryptoService/index.d.ts +1 -5
- package/dist/cryptoService/index.js +1 -5
- package/dist/cryptoService/operations/cryptoService.cipher.d.ts +3 -2
- package/dist/cryptoService/operations/cryptoService.cipher.js +13 -9
- package/dist/cryptoService/operations/cryptoService.hash.d.ts +3 -2
- package/dist/cryptoService/operations/cryptoService.hash.js +7 -8
- package/dist/cryptoService/operations/cryptoService.password.d.ts +7 -2
- package/dist/cryptoService/operations/cryptoService.password.js +20 -9
- package/dist/cryptoService/operations/cryptoService.token.d.ts +9 -4
- package/dist/cryptoService/operations/cryptoService.token.js +31 -17
- package/dist/cryptoSignature/cryptoSignature.core.d.ts +10 -2
- package/dist/cryptoSignature/cryptoSignature.core.js +7 -3
- package/dist/cryptoToken/cryptoToken.core.d.ts +15 -9
- package/dist/cryptoToken/cryptoToken.core.js +63 -38
- package/dist/cryptoToken/cryptoToken.hash.d.ts +9 -7
- package/dist/cryptoToken/cryptoToken.hash.js +19 -43
- package/dist/cryptoUtils/cryptoUtils.compare.d.ts +3 -1
- package/dist/cryptoUtils/cryptoUtils.compare.js +5 -14
- package/dist/cryptoUtils/cryptoUtils.number.d.ts +3 -0
- package/dist/cryptoUtils/cryptoUtils.number.js +12 -6
- package/dist/cryptoUtils/cryptoUtils.validation.d.ts +2 -2
- package/dist/cryptoUtils/cryptoUtils.validation.js +6 -8
- package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts +4 -4
- package/dist/cryptoUtils/encoding/cryptoUtils.base64.js +5 -23
- package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts +4 -4
- package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js +5 -32
- package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts +4 -4
- package/dist/cryptoUtils/encoding/cryptoUtils.hex.js +5 -20
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts +6 -29
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts +9 -4
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js +25 -43
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts +7 -0
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js +112 -30
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts +17 -10
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js +112 -72
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts +3 -12
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js +74 -25
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js +7 -2
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts +6 -0
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js +18 -18
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts +10 -12
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js +75 -20
- package/dist/node/signing/signing.conversion.d.ts +13 -3
- package/dist/node/signing/signing.conversion.js +35 -15
- package/dist/node/signing/signing.core.d.ts +2 -1
- package/dist/node/signing/signing.core.js +2 -3
- package/dist/node/signing/signing.utils.d.ts +10 -2
- package/dist/node/signing/signing.utils.js +26 -5
- package/package.json +28 -14
- package/dist/.tsbuildinfo +0 -1
- package/dist/compare/compare.helper.d.ts.map +0 -1
- package/dist/compare/compare.helper.js.map +0 -1
- package/dist/compare/index.d.ts.map +0 -1
- package/dist/compare/index.js.map +0 -1
- package/dist/cryptoAlgorithm/index.d.ts +0 -8
- package/dist/cryptoAlgorithm/index.d.ts.map +0 -1
- package/dist/cryptoAlgorithm/index.js +0 -8
- package/dist/cryptoAlgorithm/index.js.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.core.d.ts.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.core.js.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.envelope.d.ts.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.envelope.js.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.string.d.ts.map +0 -1
- package/dist/cryptoCipher/cryptoCipher.string.js.map +0 -1
- package/dist/cryptoCipher/index.d.ts.map +0 -1
- package/dist/cryptoCipher/index.js.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.config.d.ts.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.config.js.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.guard.d.ts.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.guard.js.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.security.d.ts.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.security.js.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.token.d.ts.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.token.js.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.type.d.ts.map +0 -1
- package/dist/cryptoConstants/cryptoConstants.type.js.map +0 -1
- package/dist/cryptoConstants/index.d.ts.map +0 -1
- package/dist/cryptoConstants/index.js.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.d.ts.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.arrayBuffer.js.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.compare.d.ts.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.compare.js.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.core.d.ts.map +0 -1
- package/dist/cryptoEncoding/cryptoEncoding.core.js.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.d.ts.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64.js.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.d.ts.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.base64url.js.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.d.ts.map +0 -1
- package/dist/cryptoEncoding/encoding/cryptoEncoding.hex.js.map +0 -1
- package/dist/cryptoEncoding/encoding/index.d.ts.map +0 -1
- package/dist/cryptoEncoding/encoding/index.js.map +0 -1
- package/dist/cryptoEncoding/index.d.ts.map +0 -1
- package/dist/cryptoEncoding/index.js.map +0 -1
- package/dist/cryptoErrors/index.d.ts.map +0 -1
- package/dist/cryptoErrors/index.js.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.core.d.ts.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.core.js.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.encoding.d.ts.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.encoding.js.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.options.d.ts +0 -2
- package/dist/cryptoFactory/cryptoFactory.options.d.ts.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.options.js +0 -6
- package/dist/cryptoFactory/cryptoFactory.options.js.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.password.d.ts.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.password.js.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.token.d.ts.map +0 -1
- package/dist/cryptoFactory/cryptoFactory.token.js.map +0 -1
- package/dist/cryptoFactory/index.d.ts.map +0 -1
- package/dist/cryptoFactory/index.js.map +0 -1
- package/dist/cryptoHash/cryptoHash.codec.d.ts.map +0 -1
- package/dist/cryptoHash/cryptoHash.codec.js.map +0 -1
- package/dist/cryptoHash/cryptoHash.compare.d.ts.map +0 -1
- package/dist/cryptoHash/cryptoHash.compare.js.map +0 -1
- package/dist/cryptoHash/cryptoHash.convenience.d.ts.map +0 -1
- package/dist/cryptoHash/cryptoHash.convenience.js.map +0 -1
- package/dist/cryptoHash/cryptoHash.core.d.ts.map +0 -1
- package/dist/cryptoHash/cryptoHash.core.js.map +0 -1
- package/dist/cryptoHash/cryptoHmac.core.d.ts.map +0 -1
- package/dist/cryptoHash/cryptoHmac.core.js.map +0 -1
- package/dist/cryptoHash/index.d.ts.map +0 -1
- package/dist/cryptoHash/index.js.map +0 -1
- package/dist/cryptoKey/cryptoKey.factory.d.ts.map +0 -1
- package/dist/cryptoKey/cryptoKey.factory.js.map +0 -1
- package/dist/cryptoKey/cryptoKey.type.d.ts.map +0 -1
- package/dist/cryptoKey/cryptoKey.type.js.map +0 -1
- package/dist/cryptoKey/cryptoKey.utils.d.ts.map +0 -1
- package/dist/cryptoKey/cryptoKey.utils.js.map +0 -1
- package/dist/cryptoKey/index.d.ts.map +0 -1
- package/dist/cryptoKey/index.js.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.d.ts.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.core.js.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.d.ts.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.salt.js.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.d.ts.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.type.js.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.d.ts.map +0 -1
- package/dist/cryptoKeyDerivation/cryptoKeyDerivation.validate.js.map +0 -1
- package/dist/cryptoKeyDerivation/index.d.ts.map +0 -1
- package/dist/cryptoKeyDerivation/index.js.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.codec.d.ts.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.codec.js.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.core.d.ts.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.core.js.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.helper.d.ts.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.helper.js.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.type.d.ts.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.type.js.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.validate.d.ts.map +0 -1
- package/dist/cryptoPassword/cryptoPassword.validate.js.map +0 -1
- package/dist/cryptoPassword/index.d.ts.map +0 -1
- package/dist/cryptoPassword/index.js.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.core.d.ts.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.core.js.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.interface.d.ts.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.interface.js.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.type.d.ts.map +0 -1
- package/dist/cryptoProvider/cryptoProvider.type.js.map +0 -1
- package/dist/cryptoProvider/index.d.ts.map +0 -1
- package/dist/cryptoProvider/index.js.map +0 -1
- package/dist/cryptoProvider/types/cryptoCipher.type.d.ts.map +0 -1
- package/dist/cryptoProvider/types/cryptoCipher.type.js.map +0 -1
- package/dist/cryptoProvider/types/cryptoHash.type.d.ts.map +0 -1
- package/dist/cryptoProvider/types/cryptoHash.type.js.map +0 -1
- package/dist/cryptoProvider/types/cryptoKeyDerivation.type.d.ts.map +0 -1
- package/dist/cryptoProvider/types/cryptoKeyDerivation.type.js.map +0 -1
- package/dist/cryptoProvider/types/cryptoRandom.type.d.ts.map +0 -1
- package/dist/cryptoProvider/types/cryptoRandom.type.js.map +0 -1
- package/dist/cryptoProvider/types/cryptoSignature.type.d.ts.map +0 -1
- package/dist/cryptoProvider/types/cryptoSignature.type.js.map +0 -1
- package/dist/cryptoProvider/types/index.d.ts.map +0 -1
- package/dist/cryptoProvider/types/index.js.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.choice.d.ts.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.choice.js.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.core.d.ts.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.core.js.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.string.d.ts.map +0 -1
- package/dist/cryptoRandom/cryptoRandom.string.js.map +0 -1
- package/dist/cryptoRandom/index.d.ts.map +0 -1
- package/dist/cryptoRandom/index.js.map +0 -1
- package/dist/cryptoService/cryptoService.core.d.ts.map +0 -1
- package/dist/cryptoService/cryptoService.core.js.map +0 -1
- package/dist/cryptoService/cryptoService.derivation.d.ts.map +0 -1
- package/dist/cryptoService/cryptoService.derivation.js.map +0 -1
- package/dist/cryptoService/cryptoService.encoding.d.ts.map +0 -1
- package/dist/cryptoService/cryptoService.encoding.js.map +0 -1
- package/dist/cryptoService/index.d.ts.map +0 -1
- package/dist/cryptoService/index.js.map +0 -1
- package/dist/cryptoService/operations/cryptoService.cipher.d.ts.map +0 -1
- package/dist/cryptoService/operations/cryptoService.cipher.js.map +0 -1
- package/dist/cryptoService/operations/cryptoService.hash.d.ts.map +0 -1
- package/dist/cryptoService/operations/cryptoService.hash.js.map +0 -1
- package/dist/cryptoService/operations/cryptoService.password.d.ts.map +0 -1
- package/dist/cryptoService/operations/cryptoService.password.js.map +0 -1
- package/dist/cryptoService/operations/cryptoService.token.d.ts.map +0 -1
- package/dist/cryptoService/operations/cryptoService.token.js.map +0 -1
- package/dist/cryptoService/operations/index.d.ts.map +0 -1
- package/dist/cryptoService/operations/index.js.map +0 -1
- package/dist/cryptoSignature/cryptoSignature.core.d.ts.map +0 -1
- package/dist/cryptoSignature/cryptoSignature.core.js.map +0 -1
- package/dist/cryptoSignature/index.d.ts.map +0 -1
- package/dist/cryptoSignature/index.js.map +0 -1
- package/dist/cryptoToken/cryptoToken.core.d.ts.map +0 -1
- package/dist/cryptoToken/cryptoToken.core.js.map +0 -1
- package/dist/cryptoToken/cryptoToken.hash.d.ts.map +0 -1
- package/dist/cryptoToken/cryptoToken.hash.js.map +0 -1
- package/dist/cryptoToken/cryptoToken.utils.d.ts.map +0 -1
- package/dist/cryptoToken/cryptoToken.utils.js.map +0 -1
- package/dist/cryptoToken/index.d.ts.map +0 -1
- package/dist/cryptoToken/index.js.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.compare.d.ts.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.compare.js.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.conversion.d.ts.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.conversion.js.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.number.d.ts.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.number.js.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.text.d.ts.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.text.js.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.validation.d.ts.map +0 -1
- package/dist/cryptoUtils/cryptoUtils.validation.js.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.base64.d.ts.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.base64.js.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.base64url.d.ts.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.base64url.js.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.hex.d.ts.map +0 -1
- package/dist/cryptoUtils/encoding/cryptoUtils.hex.js.map +0 -1
- package/dist/cryptoUtils/encoding/index.d.ts.map +0 -1
- package/dist/cryptoUtils/encoding/index.js.map +0 -1
- package/dist/cryptoUtils/index.d.ts.map +0 -1
- package/dist/cryptoUtils/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.js.map +0 -1
- package/dist/node/nodeCryptoProvider/index.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/index.js.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.core.js.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.factory.js.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/nodeCryptoProvider.helper.js.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/index.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/index.js.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.derivation.js.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/operations/nodeCryptoProvider.password.js.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/index.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/index.js.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.encryption.js.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.hash.js.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.random.js.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.d.ts.map +0 -1
- package/dist/node/nodeCryptoProvider/primitives/nodeCryptoProvider.signing.js.map +0 -1
- package/dist/node/signing/index.d.ts.map +0 -1
- package/dist/node/signing/index.js.map +0 -1
- package/dist/node/signing/signing.conversion.d.ts.map +0 -1
- package/dist/node/signing/signing.conversion.js.map +0 -1
- package/dist/node/signing/signing.core.d.ts.map +0 -1
- package/dist/node/signing/signing.core.js.map +0 -1
- package/dist/node/signing/signing.utils.d.ts.map +0 -1
- package/dist/node/signing/signing.utils.js.map +0 -1
|
@@ -1,83 +1,107 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { generateCryptoKey } from "../cryptoKey/cryptoKey.factory.js";
|
|
1
|
+
import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
|
|
2
|
+
import { generateCryptoKey, defaultKeyLength, } from "../cryptoKey/cryptoKey.factory.js";
|
|
3
3
|
import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
|
|
4
|
-
import {
|
|
4
|
+
import { CryptoOperation } from "@zudojs/errors";
|
|
5
|
+
import { operationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
|
|
5
6
|
import { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
|
|
6
7
|
import { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
|
|
7
8
|
import { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
|
|
8
|
-
import { serviceDeriveKey } from "./cryptoService.derivation.js";
|
|
9
|
+
import { serviceDeriveKey, } from "./cryptoService.derivation.js";
|
|
9
10
|
import { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
|
|
10
|
-
import { serviceEncode, serviceDecode } from "./cryptoService.encoding.js";
|
|
11
|
-
const provider = createNodeCryptoProvider();
|
|
11
|
+
import { serviceEncode, serviceDecode, } from "./cryptoService.encoding.js";
|
|
12
12
|
/**
|
|
13
13
|
* High-level service facade for cryptographic operations.
|
|
14
|
+
*
|
|
15
|
+
* Every failure is surfaced as a `CryptoError` whose `cause` holds the
|
|
16
|
+
* underlying error, so misconfiguration (wrong key length, invalid
|
|
17
|
+
* option) can be distinguished from environmental failures.
|
|
14
18
|
*/
|
|
15
19
|
export class CryptoService {
|
|
16
|
-
|
|
20
|
+
configuredProvider;
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
this.configuredProvider = options.provider;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns the provider backing this service.
|
|
26
|
+
*
|
|
27
|
+
* When none was configured, the process-wide default is resolved on
|
|
28
|
+
* each call, so `setDefaultCryptoProvider` also affects this service.
|
|
29
|
+
*/
|
|
30
|
+
getProvider() {
|
|
31
|
+
return this.configuredProvider ?? getDefaultCryptoProvider();
|
|
32
|
+
}
|
|
33
|
+
get provider() {
|
|
34
|
+
return this.getProvider();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generates a random symmetric key sized for the algorithm.
|
|
38
|
+
*
|
|
39
|
+
* Asymmetric algorithms are rejected: random bytes are not a usable
|
|
40
|
+
* signing key. Use `generateEd25519KeyPair` for those.
|
|
41
|
+
*/
|
|
17
42
|
async generateKey(algorithm = CryptoAlgorithm.AES_256_GCM) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
: 32;
|
|
25
|
-
return generateCryptoKey(length, { algorithm, extractable: true });
|
|
43
|
+
try {
|
|
44
|
+
return await generateCryptoKey(defaultKeyLength(algorithm), { algorithm, extractable: true }, this.provider);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Key generation failed.", CryptoOperation.KEY_GENERATION, cause));
|
|
48
|
+
}
|
|
26
49
|
}
|
|
27
50
|
/** Generates random bytes. */
|
|
28
51
|
async randomBytes(length = 32) {
|
|
29
|
-
if (!Number.isInteger(length) || length <= 0)
|
|
52
|
+
if (!Number.isInteger(length) || length <= 0) {
|
|
30
53
|
throw new TypeError("Random byte length must be a positive integer.");
|
|
54
|
+
}
|
|
31
55
|
try {
|
|
32
|
-
return await provider.randomBytes(length);
|
|
56
|
+
return await this.provider.randomBytes(length);
|
|
33
57
|
}
|
|
34
|
-
catch {
|
|
35
|
-
|
|
58
|
+
catch (error) {
|
|
59
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Failed to generate random bytes.", CryptoOperation.RANDOM, cause));
|
|
36
60
|
}
|
|
37
61
|
}
|
|
38
62
|
/** Encrypts data using the supplied key. */
|
|
39
63
|
async encrypt(plaintext, key, options) {
|
|
40
|
-
return serviceEncrypt(plaintext, key, options);
|
|
64
|
+
return serviceEncrypt(plaintext, key, options, this.provider);
|
|
41
65
|
}
|
|
42
66
|
/** Decrypts data using the supplied key. */
|
|
43
67
|
async decrypt(ciphertext, key, iv, authTag, aad) {
|
|
44
|
-
return serviceDecrypt(ciphertext, key, iv, authTag, aad);
|
|
68
|
+
return serviceDecrypt(ciphertext, key, iv, authTag, aad, this.provider);
|
|
45
69
|
}
|
|
46
70
|
/** Hashes arbitrary data with SHA-256. */
|
|
47
71
|
async hash(value) {
|
|
48
|
-
return serviceHash(value);
|
|
72
|
+
return serviceHash(value, this.provider);
|
|
49
73
|
}
|
|
50
74
|
/** Hashes arbitrary data and returns hexadecimal output. */
|
|
51
75
|
async hashHex(value) {
|
|
52
|
-
return serviceHashHex(value);
|
|
76
|
+
return serviceHashHex(value, this.provider);
|
|
53
77
|
}
|
|
54
|
-
/** Hashes a password using
|
|
78
|
+
/** Hashes a password using scrypt. */
|
|
55
79
|
async hashPassword(password, options) {
|
|
56
|
-
return serviceHashPassword(password, options);
|
|
80
|
+
return serviceHashPassword(password, options, this.provider);
|
|
57
81
|
}
|
|
58
82
|
/** Verifies a password against a stored password hash. */
|
|
59
83
|
async verifyPassword(password, encodedHash) {
|
|
60
|
-
return serviceVerifyPassword(password, encodedHash);
|
|
84
|
+
return serviceVerifyPassword(password, encodedHash, this.provider);
|
|
61
85
|
}
|
|
62
86
|
/** Derives a cryptographic key from password material. */
|
|
63
87
|
async deriveKey(password, algorithm, options) {
|
|
64
|
-
return serviceDeriveKey(password, algorithm, options);
|
|
88
|
+
return serviceDeriveKey(password, algorithm, options, this.provider);
|
|
65
89
|
}
|
|
66
90
|
/** Generates a cryptographically secure opaque token. */
|
|
67
91
|
async generateToken(options) {
|
|
68
|
-
return serviceGenerateToken(options);
|
|
92
|
+
return serviceGenerateToken(options, this.provider);
|
|
69
93
|
}
|
|
70
94
|
/** Generates a secure one-time password. */
|
|
71
95
|
async generateOtp(digits = 6) {
|
|
72
|
-
return serviceGenerateOtp(digits);
|
|
96
|
+
return serviceGenerateOtp(digits, this.provider);
|
|
73
97
|
}
|
|
74
98
|
/** Hashes an opaque token before database storage. */
|
|
75
99
|
async hashToken(token) {
|
|
76
|
-
return serviceHashToken(token);
|
|
100
|
+
return serviceHashToken(token, this.provider);
|
|
77
101
|
}
|
|
78
102
|
/** Verifies an opaque token against its stored hash. */
|
|
79
103
|
async verifyToken(token, expectedHash) {
|
|
80
|
-
return serviceVerifyToken(token, expectedHash);
|
|
104
|
+
return serviceVerifyToken(token, expectedHash, this.provider);
|
|
81
105
|
}
|
|
82
106
|
/** Encodes binary data. */
|
|
83
107
|
encode(value, encoding = "base64url") {
|
|
@@ -91,11 +115,19 @@ export class CryptoService {
|
|
|
91
115
|
/**
|
|
92
116
|
* Creates a new CryptoService instance.
|
|
93
117
|
*/
|
|
94
|
-
export function createCryptoService() {
|
|
95
|
-
return new CryptoService();
|
|
118
|
+
export function createCryptoService(options = {}) {
|
|
119
|
+
return new CryptoService(options);
|
|
96
120
|
}
|
|
97
121
|
/**
|
|
98
122
|
* Default crypto service instance.
|
|
123
|
+
*
|
|
124
|
+
* Construction is trivial (no provider is created until first use).
|
|
99
125
|
*/
|
|
100
126
|
export const cryptoService = createCryptoService();
|
|
127
|
+
/**
|
|
128
|
+
* Returns the default crypto service instance.
|
|
129
|
+
*/
|
|
130
|
+
export function getCryptoService() {
|
|
131
|
+
return cryptoService;
|
|
132
|
+
}
|
|
101
133
|
//# sourceMappingURL=cryptoService.core.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { DerivedKeyResult } from "../cryptoProvider/index.js";
|
|
1
|
+
import type { CryptoProvider, DerivedKeyResult } from "../cryptoProvider/index.js";
|
|
2
2
|
import type { Pbkdf2Options, ScryptOptions } from "../cryptoKeyDerivation/cryptoKeyDerivation.type.js";
|
|
3
|
-
import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
|
|
3
|
+
import type { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
|
|
4
4
|
export type { DerivedKeyResult, Pbkdf2Options, ScryptOptions };
|
|
5
|
-
export declare function serviceDeriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions): Promise<DerivedKeyResult>;
|
|
5
|
+
export declare function serviceDeriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions, provider?: CryptoProvider): Promise<DerivedKeyResult>;
|
|
6
6
|
//# sourceMappingURL=cryptoService.derivation.d.ts.map
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { deriveKey } from "../cryptoKeyDerivation/cryptoKeyDerivation.core.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export async function serviceDeriveKey(password, algorithm, options) {
|
|
2
|
+
import { keyDerivationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
|
|
3
|
+
export async function serviceDeriveKey(password, algorithm, options, provider) {
|
|
5
4
|
try {
|
|
6
|
-
return await deriveKey(password, algorithm,
|
|
5
|
+
return await deriveKey(password, algorithm, {
|
|
6
|
+
...options,
|
|
7
|
+
provider: options?.provider ?? provider,
|
|
8
|
+
});
|
|
7
9
|
}
|
|
8
|
-
catch {
|
|
9
|
-
|
|
10
|
+
catch (error) {
|
|
11
|
+
return rethrowAsCryptoError(error, (cause) => keyDerivationError("Key derivation failed.", algorithm, cause));
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=cryptoService.derivation.js.map
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { encode, decode } from "../cryptoEncoding/cryptoEncoding.core.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CryptoOperation } from "@zudojs/errors";
|
|
3
|
+
import { operationError, rethrowAsCryptoError, } from "../cryptoErrors/cryptoErrors.helper.js";
|
|
3
4
|
export function serviceEncode(value, encoding = "base64url") {
|
|
4
5
|
try {
|
|
5
6
|
return encode(value, encoding);
|
|
6
7
|
}
|
|
7
|
-
catch {
|
|
8
|
-
|
|
8
|
+
catch (error) {
|
|
9
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Crypto encoding failed.", CryptoOperation.ENCODE, cause));
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
export function serviceDecode(value, encoding = "base64url") {
|
|
12
13
|
try {
|
|
13
14
|
return decode(value, encoding);
|
|
14
15
|
}
|
|
15
|
-
catch {
|
|
16
|
-
|
|
16
|
+
catch (error) {
|
|
17
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Crypto decoding failed.", CryptoOperation.DECODE, cause));
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=cryptoService.encoding.js.map
|
|
@@ -3,9 +3,5 @@
|
|
|
3
3
|
*
|
|
4
4
|
* High-level cryptographic service interface.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
7
|
-
export { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
|
|
8
|
-
export { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
|
|
9
|
-
export { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
|
|
10
|
-
export { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
|
|
6
|
+
export { CryptoService, createCryptoService, cryptoService, getCryptoService, type CryptoServiceOptions, } from "./cryptoService.core.js";
|
|
11
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,9 +3,5 @@
|
|
|
3
3
|
*
|
|
4
4
|
* High-level cryptographic service interface.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
7
|
-
export { serviceEncrypt, serviceDecrypt, } from "./operations/cryptoService.cipher.js";
|
|
8
|
-
export { serviceHash, serviceHashHex, } from "./operations/cryptoService.hash.js";
|
|
9
|
-
export { serviceHashPassword, serviceVerifyPassword, } from "./operations/cryptoService.password.js";
|
|
10
|
-
export { serviceGenerateToken, serviceGenerateOtp, serviceHashToken, serviceVerifyToken, } from "./operations/cryptoService.token.js";
|
|
6
|
+
export { CryptoService, createCryptoService, cryptoService, getCryptoService, } from "./cryptoService.core.js";
|
|
11
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../../cryptoProvider/index.js";
|
|
1
2
|
import type { CipherOptions, CipherResult } from "../../cryptoCipher/cryptoCipher.core.js";
|
|
2
3
|
export type { CipherOptions, CipherResult };
|
|
3
|
-
export declare function serviceEncrypt(plaintext: Uint8Array, key: Uint8Array, options?: CipherOptions): Promise<CipherResult>;
|
|
4
|
-
export declare function serviceDecrypt(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array, authTag: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
|
|
4
|
+
export declare function serviceEncrypt(plaintext: Uint8Array, key: Uint8Array, options?: CipherOptions, provider?: CryptoProvider): Promise<CipherResult>;
|
|
5
|
+
export declare function serviceDecrypt(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array, authTag: Uint8Array, aad?: Uint8Array, provider?: CryptoProvider): Promise<Uint8Array>;
|
|
5
6
|
//# sourceMappingURL=cryptoService.cipher.d.ts.map
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { encrypt, decrypt } from "../../cryptoCipher/cryptoCipher.core.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { CryptoOperation } from "@zudojs/errors";
|
|
3
|
+
import { cipherError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
|
|
4
|
+
export async function serviceEncrypt(plaintext, key, options, provider) {
|
|
4
5
|
try {
|
|
5
|
-
return await encrypt(plaintext, key,
|
|
6
|
+
return await encrypt(plaintext, key, {
|
|
7
|
+
...options,
|
|
8
|
+
provider: options?.provider ?? provider,
|
|
9
|
+
});
|
|
6
10
|
}
|
|
7
|
-
catch {
|
|
8
|
-
|
|
11
|
+
catch (error) {
|
|
12
|
+
return rethrowAsCryptoError(error, (cause) => cipherError("Encryption failed.", CryptoOperation.ENCRYPT, "aes-256-gcm", cause));
|
|
9
13
|
}
|
|
10
14
|
}
|
|
11
|
-
export async function serviceDecrypt(ciphertext, key, iv, authTag, aad) {
|
|
15
|
+
export async function serviceDecrypt(ciphertext, key, iv, authTag, aad, provider) {
|
|
12
16
|
try {
|
|
13
|
-
return await decrypt(ciphertext, key, iv, authTag, aad);
|
|
17
|
+
return await decrypt(ciphertext, key, iv, authTag, aad, provider);
|
|
14
18
|
}
|
|
15
|
-
catch {
|
|
16
|
-
|
|
19
|
+
catch (error) {
|
|
20
|
+
return rethrowAsCryptoError(error, (cause) => cipherError("Decryption failed.", CryptoOperation.DECRYPT, "aes-256-gcm", cause));
|
|
17
21
|
}
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=cryptoService.cipher.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
1
|
+
import type { CryptoProvider } from "../../cryptoProvider/index.js";
|
|
2
|
+
export declare function serviceHash(value: string | Uint8Array, provider?: CryptoProvider): Promise<Uint8Array>;
|
|
3
|
+
export declare function serviceHashHex(value: string | Uint8Array, provider?: CryptoProvider): Promise<string>;
|
|
3
4
|
//# sourceMappingURL=cryptoService.hash.d.ts.map
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getDefaultCryptoProvider } from "../../cryptoProvider/cryptoProvider.default.js";
|
|
2
2
|
import { encode } from "../../cryptoEncoding/cryptoEncoding.core.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export async function serviceHash(value) {
|
|
3
|
+
import { hashError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
|
|
4
|
+
export async function serviceHash(value, provider = getDefaultCryptoProvider()) {
|
|
6
5
|
try {
|
|
7
6
|
return await provider.hash("sha256", value);
|
|
8
7
|
}
|
|
9
|
-
catch {
|
|
10
|
-
|
|
8
|
+
catch (error) {
|
|
9
|
+
return rethrowAsCryptoError(error, (cause) => hashError("Hashing failed.", "sha256", cause));
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
export async function serviceHashHex(value) {
|
|
14
|
-
return encode(await serviceHash(value), "hex");
|
|
12
|
+
export async function serviceHashHex(value, provider) {
|
|
13
|
+
return encode(await serviceHash(value, provider), "hex");
|
|
15
14
|
}
|
|
16
15
|
//# sourceMappingURL=cryptoService.hash.js.map
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../../cryptoProvider/index.js";
|
|
1
2
|
import type { PasswordHashOptions, PasswordHashResult } from "../../cryptoPassword/cryptoPassword.type.js";
|
|
2
3
|
export type { PasswordHashOptions, PasswordHashResult };
|
|
3
|
-
export declare function serviceHashPassword(password: string, options?: PasswordHashOptions): Promise<PasswordHashResult>;
|
|
4
|
-
|
|
4
|
+
export declare function serviceHashPassword(password: string, options?: PasswordHashOptions, provider?: CryptoProvider): Promise<PasswordHashResult>;
|
|
5
|
+
/**
|
|
6
|
+
* Verifies a password. Wrong passwords and malformed hashes yield false;
|
|
7
|
+
* non-string arguments are programmer errors and throw.
|
|
8
|
+
*/
|
|
9
|
+
export declare function serviceVerifyPassword(password: string, encodedHash: string, provider?: CryptoProvider): Promise<boolean>;
|
|
5
10
|
//# sourceMappingURL=cryptoService.password.d.ts.map
|
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
import { hashPassword, verifyPassword, } from "../../cryptoPassword/cryptoPassword.core.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { CryptoOperation } from "@zudojs/errors";
|
|
3
|
+
import { operationError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
|
|
4
|
+
export async function serviceHashPassword(password, options, provider) {
|
|
4
5
|
try {
|
|
5
|
-
return await hashPassword(password, options);
|
|
6
|
+
return await hashPassword(password, { ...options, provider });
|
|
6
7
|
}
|
|
7
|
-
catch {
|
|
8
|
-
|
|
8
|
+
catch (error) {
|
|
9
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Password hashing failed.", CryptoOperation.KEY_DERIVATION, cause));
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Verifies a password. Wrong passwords and malformed hashes yield false;
|
|
14
|
+
* non-string arguments are programmer errors and throw.
|
|
15
|
+
*/
|
|
16
|
+
export async function serviceVerifyPassword(password, encodedHash, provider) {
|
|
17
|
+
if (typeof password !== "string") {
|
|
18
|
+
throw new TypeError("Password must be a string.");
|
|
19
|
+
}
|
|
20
|
+
if (typeof encodedHash !== "string") {
|
|
21
|
+
throw new TypeError("Encoded password hash must be a string.");
|
|
22
|
+
}
|
|
12
23
|
try {
|
|
13
|
-
return await verifyPassword(password, encodedHash);
|
|
24
|
+
return await verifyPassword(password, encodedHash, provider);
|
|
14
25
|
}
|
|
15
|
-
catch {
|
|
16
|
-
return
|
|
26
|
+
catch (error) {
|
|
27
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Password verification failed.", CryptoOperation.VERIFY_HASH, cause));
|
|
17
28
|
}
|
|
18
29
|
}
|
|
19
30
|
//# sourceMappingURL=cryptoService.password.js.map
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../../cryptoProvider/index.js";
|
|
1
2
|
import type { TokenOptions, TokenEncoding } from "../../cryptoToken/cryptoToken.core.js";
|
|
2
3
|
export type { TokenOptions, TokenEncoding };
|
|
3
|
-
export declare function serviceGenerateToken(options?: TokenOptions): Promise<string>;
|
|
4
|
-
export declare function serviceGenerateOtp(digits?: number): Promise<string>;
|
|
5
|
-
export declare function serviceHashToken(token: string): Promise<string>;
|
|
6
|
-
|
|
4
|
+
export declare function serviceGenerateToken(options?: TokenOptions, provider?: CryptoProvider): Promise<string>;
|
|
5
|
+
export declare function serviceGenerateOtp(digits?: number, provider?: CryptoProvider): Promise<string>;
|
|
6
|
+
export declare function serviceHashToken(token: string, provider?: CryptoProvider): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Verifies a token against its stored hash. Mismatches and malformed
|
|
9
|
+
* hashes yield false; non-string arguments throw.
|
|
10
|
+
*/
|
|
11
|
+
export declare function serviceVerifyToken(token: string, expectedHash: string, provider?: CryptoProvider): Promise<boolean>;
|
|
7
12
|
//# sourceMappingURL=cryptoService.token.d.ts.map
|
|
@@ -1,36 +1,50 @@
|
|
|
1
1
|
import { generateToken, generateOtp, } from "../../cryptoToken/cryptoToken.core.js";
|
|
2
2
|
import { hashToken, verifyTokenHash, } from "../../cryptoToken/cryptoToken.hash.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { CryptoOperation } from "@zudojs/errors";
|
|
4
|
+
import { hashError, operationError, rethrowAsCryptoError, } from "../../cryptoErrors/cryptoErrors.helper.js";
|
|
5
|
+
export async function serviceGenerateToken(options, provider) {
|
|
5
6
|
try {
|
|
6
|
-
return await generateToken(
|
|
7
|
+
return await generateToken({
|
|
8
|
+
...options,
|
|
9
|
+
provider: options?.provider ?? provider,
|
|
10
|
+
});
|
|
7
11
|
}
|
|
8
|
-
catch {
|
|
9
|
-
|
|
12
|
+
catch (error) {
|
|
13
|
+
return rethrowAsCryptoError(error, (cause) => operationError("Token generation failed.", CryptoOperation.RANDOM, cause));
|
|
10
14
|
}
|
|
11
15
|
}
|
|
12
|
-
export async function serviceGenerateOtp(digits = 6) {
|
|
16
|
+
export async function serviceGenerateOtp(digits = 6, provider) {
|
|
13
17
|
try {
|
|
14
|
-
return await generateOtp(digits);
|
|
18
|
+
return await generateOtp(digits, provider);
|
|
15
19
|
}
|
|
16
|
-
catch {
|
|
17
|
-
|
|
20
|
+
catch (error) {
|
|
21
|
+
return rethrowAsCryptoError(error, (cause) => operationError("OTP generation failed.", CryptoOperation.RANDOM, cause));
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
|
-
export async function serviceHashToken(token) {
|
|
24
|
+
export async function serviceHashToken(token, provider) {
|
|
21
25
|
try {
|
|
22
|
-
return await hashToken(token);
|
|
26
|
+
return await hashToken(token, provider);
|
|
23
27
|
}
|
|
24
|
-
catch {
|
|
25
|
-
|
|
28
|
+
catch (error) {
|
|
29
|
+
return rethrowAsCryptoError(error, (cause) => hashError("Token hashing failed.", "sha256", cause));
|
|
26
30
|
}
|
|
27
31
|
}
|
|
28
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Verifies a token against its stored hash. Mismatches and malformed
|
|
34
|
+
* hashes yield false; non-string arguments throw.
|
|
35
|
+
*/
|
|
36
|
+
export async function serviceVerifyToken(token, expectedHash, provider) {
|
|
37
|
+
if (typeof token !== "string") {
|
|
38
|
+
throw new TypeError("Token must be a string.");
|
|
39
|
+
}
|
|
40
|
+
if (typeof expectedHash !== "string") {
|
|
41
|
+
throw new TypeError("Expected token hash must be a string.");
|
|
42
|
+
}
|
|
29
43
|
try {
|
|
30
|
-
return await verifyTokenHash(token, expectedHash);
|
|
44
|
+
return await verifyTokenHash(token, expectedHash, provider);
|
|
31
45
|
}
|
|
32
|
-
catch {
|
|
33
|
-
return
|
|
46
|
+
catch (error) {
|
|
47
|
+
return rethrowAsCryptoError(error, (cause) => hashError("Token verification failed.", "sha256", cause));
|
|
34
48
|
}
|
|
35
49
|
}
|
|
36
50
|
//# sourceMappingURL=cryptoService.token.js.map
|
|
@@ -1,17 +1,25 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
import type { CryptoInput } from "../cryptoProvider/index.js";
|
|
2
3
|
import type { SignatureAlgorithm } from "../cryptoProvider/index.js";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* Signature options.
|
|
6
|
+
*
|
|
7
|
+
* The algorithm binds the key type: RSA algorithms require RSA keys,
|
|
8
|
+
* ECDSA algorithms require EC keys and `ed25519` requires an Ed25519 key.
|
|
5
9
|
*/
|
|
6
10
|
export type SignatureOptions = {
|
|
7
11
|
readonly algorithm?: SignatureAlgorithm;
|
|
12
|
+
readonly provider?: CryptoProvider;
|
|
8
13
|
};
|
|
9
14
|
/**
|
|
10
|
-
* Signs arbitrary data using a private key.
|
|
15
|
+
* Signs arbitrary data using a private key (PEM text, DER bytes or KeyObject).
|
|
11
16
|
*/
|
|
12
17
|
export declare function sign(data: Uint8Array, privateKey: CryptoInput, options?: SignatureOptions): Promise<Uint8Array>;
|
|
13
18
|
/**
|
|
14
19
|
* Verifies a signature using a public key.
|
|
20
|
+
*
|
|
21
|
+
* Returns false for malformed keys or signatures; throws only when the
|
|
22
|
+
* algorithm is unsupported or incompatible with the key type.
|
|
15
23
|
*/
|
|
16
24
|
export declare function verify(data: Uint8Array, signature: Uint8Array, publicKey: CryptoInput, options?: SignatureOptions): Promise<boolean>;
|
|
17
25
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const provider = createNodeCryptoProvider();
|
|
1
|
+
import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
|
|
3
2
|
/**
|
|
4
|
-
* Signs arbitrary data using a private key.
|
|
3
|
+
* Signs arbitrary data using a private key (PEM text, DER bytes or KeyObject).
|
|
5
4
|
*/
|
|
6
5
|
export async function sign(data, privateKey, options = {}) {
|
|
6
|
+
const provider = options.provider ?? getDefaultCryptoProvider();
|
|
7
7
|
return provider.sign({
|
|
8
8
|
key: privateKey,
|
|
9
9
|
data,
|
|
@@ -12,8 +12,12 @@ export async function sign(data, privateKey, options = {}) {
|
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* Verifies a signature using a public key.
|
|
15
|
+
*
|
|
16
|
+
* Returns false for malformed keys or signatures; throws only when the
|
|
17
|
+
* algorithm is unsupported or incompatible with the key type.
|
|
15
18
|
*/
|
|
16
19
|
export async function verify(data, signature, publicKey, options = {}) {
|
|
20
|
+
const provider = options.provider ?? getDefaultCryptoProvider();
|
|
17
21
|
return provider.verify({
|
|
18
22
|
key: publicKey,
|
|
19
23
|
data,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Supported token encodings.
|
|
3
4
|
*/
|
|
@@ -9,47 +10,52 @@ export interface TokenOptions {
|
|
|
9
10
|
readonly bytes?: number;
|
|
10
11
|
readonly encoding?: TokenEncoding;
|
|
11
12
|
readonly prefix?: string;
|
|
13
|
+
readonly provider?: CryptoProvider;
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* Creates a cryptographically secure opaque token.
|
|
17
|
+
*
|
|
18
|
+
* The encoding is validated at runtime: only `hex`, `base64` and
|
|
19
|
+
* `base64url` are accepted, so a misconfigured `"utf8"` can never
|
|
20
|
+
* produce a lossy token.
|
|
15
21
|
*/
|
|
16
22
|
export declare function generateToken(options?: TokenOptions): Promise<string>;
|
|
17
23
|
/**
|
|
18
24
|
* Generates a secure API key.
|
|
19
25
|
*/
|
|
20
|
-
export declare function generateApiKey(prefix?: string, bytes?: number): Promise<string>;
|
|
26
|
+
export declare function generateApiKey(prefix?: string, bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
21
27
|
/**
|
|
22
28
|
* Generates a secure session token.
|
|
23
29
|
*/
|
|
24
|
-
export declare function generateSessionToken(bytes?: number): Promise<string>;
|
|
30
|
+
export declare function generateSessionToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
25
31
|
/**
|
|
26
32
|
* Generates a secure refresh token.
|
|
27
33
|
*/
|
|
28
|
-
export declare function generateRefreshToken(bytes?: number): Promise<string>;
|
|
34
|
+
export declare function generateRefreshToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
29
35
|
/**
|
|
30
36
|
* Generates a secure verification token.
|
|
31
37
|
*/
|
|
32
|
-
export declare function generateVerificationToken(bytes?: number): Promise<string>;
|
|
38
|
+
export declare function generateVerificationToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
33
39
|
/**
|
|
34
40
|
* Generates a secure password-reset token.
|
|
35
41
|
*/
|
|
36
|
-
export declare function generatePasswordResetToken(bytes?: number): Promise<string>;
|
|
42
|
+
export declare function generatePasswordResetToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
37
43
|
/**
|
|
38
44
|
* Generates a secure CSRF token.
|
|
39
45
|
*/
|
|
40
|
-
export declare function generateCsrfToken(bytes?: number): Promise<string>;
|
|
46
|
+
export declare function generateCsrfToken(bytes?: number, provider?: CryptoProvider): Promise<string>;
|
|
41
47
|
/**
|
|
42
48
|
* Generates a numeric one-time password.
|
|
43
49
|
*
|
|
44
50
|
* Leading zeroes are preserved.
|
|
45
51
|
*/
|
|
46
|
-
export declare function generateOtp(digits?: number): Promise<string>;
|
|
52
|
+
export declare function generateOtp(digits?: number, provider?: CryptoProvider): Promise<string>;
|
|
47
53
|
/**
|
|
48
54
|
* Generates a short-lived email verification code.
|
|
49
55
|
*/
|
|
50
|
-
export declare function generateEmailVerificationCode(digits?: number): Promise<string>;
|
|
56
|
+
export declare function generateEmailVerificationCode(digits?: number, provider?: CryptoProvider): Promise<string>;
|
|
51
57
|
/**
|
|
52
58
|
* Generates a short-lived login verification code.
|
|
53
59
|
*/
|
|
54
|
-
export declare function generateLoginCode(digits?: number): Promise<string>;
|
|
60
|
+
export declare function generateLoginCode(digits?: number, provider?: CryptoProvider): Promise<string>;
|
|
55
61
|
//# sourceMappingURL=cryptoToken.core.d.ts.map
|