@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
|
@@ -6,24 +6,33 @@ export type HashAlgorithm = "sha256" | "sha384" | "sha512" | "sha3-256" | "sha3-
|
|
|
6
6
|
* Supported HMAC algorithm identifiers.
|
|
7
7
|
*/
|
|
8
8
|
export type HmacAlgorithm = "sha256" | "sha384" | "sha512";
|
|
9
|
+
/**
|
|
10
|
+
* Supported PBKDF2 digest identifiers.
|
|
11
|
+
*/
|
|
12
|
+
export type Pbkdf2Digest = "sha256" | "sha384" | "sha512";
|
|
9
13
|
/**
|
|
10
14
|
* Supported encryption algorithm identifiers.
|
|
15
|
+
*
|
|
16
|
+
* Only AES-256-GCM is implemented.
|
|
11
17
|
*/
|
|
12
|
-
export type EncryptionAlgorithm = "aes-256-gcm"
|
|
18
|
+
export type EncryptionAlgorithm = "aes-256-gcm";
|
|
13
19
|
/**
|
|
14
20
|
* Supported signature algorithm identifiers.
|
|
15
21
|
*/
|
|
16
22
|
export type SignatureAlgorithm = "ed25519" | "rsa-sha256" | "rsa-sha384" | "rsa-sha512" | "ecdsa-sha256" | "ecdsa-sha384" | "ecdsa-sha512";
|
|
17
23
|
/**
|
|
18
|
-
* Supported key derivation algorithm identifiers.
|
|
24
|
+
* Supported key derivation algorithm identifiers at the provider level.
|
|
19
25
|
*/
|
|
20
|
-
export type KeyDerivationAlgorithm = "pbkdf2" | "scrypt"
|
|
26
|
+
export type KeyDerivationAlgorithm = "pbkdf2" | "scrypt";
|
|
21
27
|
/**
|
|
22
28
|
* Supported encoding formats.
|
|
23
29
|
*/
|
|
24
30
|
export type EncodingFormat = "hex" | "base64" | "base64url" | "utf8";
|
|
25
31
|
/**
|
|
26
32
|
* Normalized cryptographic input.
|
|
33
|
+
*
|
|
34
|
+
* For keys, a `string` is interpreted as PEM text and a `Uint8Array` as
|
|
35
|
+
* either PEM text (when it starts with `-----BEGIN`) or DER bytes.
|
|
27
36
|
*/
|
|
28
37
|
export type CryptoInput = string | Uint8Array | ArrayBuffer;
|
|
29
38
|
/**
|
|
@@ -38,4 +47,24 @@ export interface CryptoCapabilities {
|
|
|
38
47
|
readonly passwordHashing: boolean;
|
|
39
48
|
readonly keyDerivation: boolean;
|
|
40
49
|
}
|
|
50
|
+
export declare const HASH_ALGORITHM_NAMES: ReadonlySet<string>;
|
|
51
|
+
export declare const HMAC_ALGORITHM_NAMES: ReadonlySet<string>;
|
|
52
|
+
export declare const PBKDF2_DIGEST_NAMES: ReadonlySet<string>;
|
|
53
|
+
export declare const SIGNATURE_ALGORITHM_NAMES: ReadonlySet<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Returns whether a value names a supported hash algorithm.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isHashAlgorithmName(value: unknown): value is HashAlgorithm;
|
|
58
|
+
/**
|
|
59
|
+
* Returns whether a value names a supported HMAC algorithm.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isHmacAlgorithmName(value: unknown): value is HmacAlgorithm;
|
|
62
|
+
/**
|
|
63
|
+
* Returns whether a value names a supported PBKDF2 digest.
|
|
64
|
+
*/
|
|
65
|
+
export declare function isPbkdf2Digest(value: unknown): value is Pbkdf2Digest;
|
|
66
|
+
/**
|
|
67
|
+
* Returns whether a value names a supported signature algorithm.
|
|
68
|
+
*/
|
|
69
|
+
export declare function isSignatureAlgorithmName(value: unknown): value is SignatureAlgorithm;
|
|
41
70
|
//# sourceMappingURL=cryptoProvider.type.d.ts.map
|
|
@@ -1,2 +1,41 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const HASH_ALGORITHM_NAMES = new Set(["sha256", "sha384", "sha512", "sha3-256", "sha3-384", "sha3-512"]);
|
|
2
|
+
export const HMAC_ALGORITHM_NAMES = new Set(["sha256", "sha384", "sha512"]);
|
|
3
|
+
export const PBKDF2_DIGEST_NAMES = new Set([
|
|
4
|
+
"sha256",
|
|
5
|
+
"sha384",
|
|
6
|
+
"sha512",
|
|
7
|
+
]);
|
|
8
|
+
export const SIGNATURE_ALGORITHM_NAMES = new Set([
|
|
9
|
+
"ed25519",
|
|
10
|
+
"rsa-sha256",
|
|
11
|
+
"rsa-sha384",
|
|
12
|
+
"rsa-sha512",
|
|
13
|
+
"ecdsa-sha256",
|
|
14
|
+
"ecdsa-sha384",
|
|
15
|
+
"ecdsa-sha512",
|
|
16
|
+
]);
|
|
17
|
+
/**
|
|
18
|
+
* Returns whether a value names a supported hash algorithm.
|
|
19
|
+
*/
|
|
20
|
+
export function isHashAlgorithmName(value) {
|
|
21
|
+
return typeof value === "string" && HASH_ALGORITHM_NAMES.has(value);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns whether a value names a supported HMAC algorithm.
|
|
25
|
+
*/
|
|
26
|
+
export function isHmacAlgorithmName(value) {
|
|
27
|
+
return typeof value === "string" && HMAC_ALGORITHM_NAMES.has(value);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns whether a value names a supported PBKDF2 digest.
|
|
31
|
+
*/
|
|
32
|
+
export function isPbkdf2Digest(value) {
|
|
33
|
+
return typeof value === "string" && PBKDF2_DIGEST_NAMES.has(value);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns whether a value names a supported signature algorithm.
|
|
37
|
+
*/
|
|
38
|
+
export function isSignatureAlgorithmName(value) {
|
|
39
|
+
return typeof value === "string" && SIGNATURE_ALGORITHM_NAMES.has(value);
|
|
40
|
+
}
|
|
2
41
|
//# sourceMappingURL=cryptoProvider.type.js.map
|
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides capability-based provider interfaces for all
|
|
5
5
|
* cryptographic operations, enabling testability and
|
|
6
|
-
* runtime provider selection
|
|
6
|
+
* runtime provider selection via `setDefaultCryptoProvider`
|
|
7
|
+
* or per-call `provider` options.
|
|
7
8
|
*/
|
|
8
9
|
export type { CryptoProvider } from "./cryptoProvider.core.js";
|
|
9
|
-
export type { CryptoCapabilities, HashAlgorithm, HmacAlgorithm, EncryptionAlgorithm, SignatureAlgorithm, KeyDerivationAlgorithm, EncodingFormat, CryptoInput, } from "./cryptoProvider.type.js";
|
|
10
|
+
export type { CryptoCapabilities, HashAlgorithm, HmacAlgorithm, Pbkdf2Digest, EncryptionAlgorithm, SignatureAlgorithm, KeyDerivationAlgorithm, EncodingFormat, CryptoInput, } from "./cryptoProvider.type.js";
|
|
11
|
+
export { isHashAlgorithmName, isHmacAlgorithmName, isPbkdf2Digest, isSignatureAlgorithmName, } from "./cryptoProvider.type.js";
|
|
10
12
|
export type { RandomProvider, HashProvider, HmacProvider, EncryptionProvider, SigningProvider, KeyDerivationProvider, PasswordProvider, } from "./cryptoProvider.interface.js";
|
|
13
|
+
export { getDefaultCryptoProvider, setDefaultCryptoProvider, resetDefaultCryptoProvider, } from "./cryptoProvider.default.js";
|
|
11
14
|
export * from "./types/index.js";
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export { isHashAlgorithmName, isHmacAlgorithmName, isPbkdf2Digest, isSignatureAlgorithmName, } from "./cryptoProvider.type.js";
|
|
2
|
+
export { getDefaultCryptoProvider, setDefaultCryptoProvider, resetDefaultCryptoProvider, } from "./cryptoProvider.default.js";
|
|
1
3
|
export * from "./types/index.js";
|
|
2
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EncryptionAlgorithm } from "../cryptoProvider.type.js";
|
|
1
|
+
import type { CryptoInput, EncryptionAlgorithm } from "../cryptoProvider.type.js";
|
|
2
2
|
/**
|
|
3
3
|
* Result of an encryption operation.
|
|
4
4
|
*/
|
|
@@ -10,19 +10,24 @@ export interface EncryptedData {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Options for encryption.
|
|
13
|
+
*
|
|
14
|
+
* When `nonce` is supplied it must be exactly 12 bytes and MUST be unique
|
|
15
|
+
* per key: reusing a nonce under the same key with AES-GCM leaks the XOR
|
|
16
|
+
* of the plaintexts and allows authentication-key recovery. Omit it to
|
|
17
|
+
* have the provider draw a fresh random nonce.
|
|
13
18
|
*/
|
|
14
19
|
export interface EncryptOptions {
|
|
15
|
-
readonly key:
|
|
16
|
-
readonly plaintext:
|
|
17
|
-
readonly associatedData?:
|
|
20
|
+
readonly key: CryptoInput;
|
|
21
|
+
readonly plaintext: CryptoInput;
|
|
22
|
+
readonly associatedData?: CryptoInput;
|
|
18
23
|
readonly nonce?: Uint8Array;
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* Options for decryption.
|
|
22
27
|
*/
|
|
23
28
|
export interface DecryptOptions {
|
|
24
|
-
readonly key:
|
|
29
|
+
readonly key: CryptoInput;
|
|
25
30
|
readonly encrypted: EncryptedData;
|
|
26
|
-
readonly associatedData?:
|
|
31
|
+
readonly associatedData?: CryptoInput;
|
|
27
32
|
}
|
|
28
33
|
//# sourceMappingURL=cryptoCipher.type.d.ts.map
|
|
@@ -1,22 +1,58 @@
|
|
|
1
|
-
import type { KeyDerivationAlgorithm, CryptoInput } from "../cryptoProvider.type.js";
|
|
1
|
+
import type { KeyDerivationAlgorithm, CryptoInput, Pbkdf2Digest } from "../cryptoProvider.type.js";
|
|
2
|
+
import type { CryptoAlgorithm } from "../../cryptoConstants/cryptoConstants.type.js";
|
|
3
|
+
/**
|
|
4
|
+
* Algorithm labels produced by the public key derivation helpers.
|
|
5
|
+
*
|
|
6
|
+
* These are the values actually present on `DerivedKeyResult.algorithm`.
|
|
7
|
+
*/
|
|
8
|
+
export type DerivedKeyAlgorithm = CryptoAlgorithm.PBKDF2_SHA256 | CryptoAlgorithm.PBKDF2_SHA384 | CryptoAlgorithm.PBKDF2_SHA512 | CryptoAlgorithm.SCRYPT;
|
|
2
9
|
/**
|
|
3
10
|
* Result of a key derivation operation.
|
|
4
11
|
*/
|
|
5
12
|
export interface DerivedKeyResult {
|
|
6
13
|
readonly key: Uint8Array;
|
|
7
14
|
readonly salt: Uint8Array;
|
|
8
|
-
readonly algorithm:
|
|
15
|
+
readonly algorithm: DerivedKeyAlgorithm;
|
|
16
|
+
/** Digest used by PBKDF2; absent for scrypt. */
|
|
17
|
+
readonly digest?: Pbkdf2Digest;
|
|
9
18
|
}
|
|
10
19
|
/**
|
|
11
|
-
* Options for key derivation.
|
|
20
|
+
* Options for provider-level key derivation.
|
|
12
21
|
*/
|
|
13
22
|
export interface DeriveKeyOptions {
|
|
14
23
|
readonly password: CryptoInput;
|
|
15
24
|
readonly salt: Uint8Array;
|
|
16
25
|
readonly algorithm: KeyDerivationAlgorithm;
|
|
17
26
|
readonly keyLength?: number;
|
|
27
|
+
/** PBKDF2 iteration count. */
|
|
18
28
|
readonly iterations?: number;
|
|
29
|
+
/** PBKDF2 digest (default sha256). */
|
|
30
|
+
readonly digest?: Pbkdf2Digest;
|
|
31
|
+
/** scrypt cost parameter N. */
|
|
32
|
+
readonly memoryCost?: number;
|
|
33
|
+
/** scrypt block size parameter r. */
|
|
34
|
+
readonly blockSize?: number;
|
|
35
|
+
/** scrypt parallelization parameter p. */
|
|
36
|
+
readonly parallelism?: number;
|
|
37
|
+
/** scrypt memory upper bound in bytes (default derived from N, r, p). */
|
|
38
|
+
readonly maxMemory?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for provider-level password hashing.
|
|
42
|
+
*/
|
|
43
|
+
export interface PasswordHashProviderOptions {
|
|
44
|
+
readonly algorithm?: KeyDerivationAlgorithm;
|
|
45
|
+
/** scrypt cost N. */
|
|
19
46
|
readonly memoryCost?: number;
|
|
47
|
+
/** PBKDF2 iteration count. */
|
|
48
|
+
readonly timeCost?: number;
|
|
49
|
+
/** PBKDF2 digest (default sha256). */
|
|
50
|
+
readonly digest?: Pbkdf2Digest;
|
|
51
|
+
/** scrypt block size r. */
|
|
52
|
+
readonly blockSize?: number;
|
|
53
|
+
/** scrypt parallelization p. */
|
|
20
54
|
readonly parallelism?: number;
|
|
55
|
+
readonly keyBytes?: number;
|
|
56
|
+
readonly salt?: Uint8Array;
|
|
21
57
|
}
|
|
22
58
|
//# sourceMappingURL=cryptoKeyDerivation.type.d.ts.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { SignatureAlgorithm } from "../cryptoProvider.type.js";
|
|
1
|
+
import type { CryptoInput, SignatureAlgorithm } from "../cryptoProvider.type.js";
|
|
2
2
|
/**
|
|
3
3
|
* Options for signing.
|
|
4
4
|
*/
|
|
5
5
|
export interface SignOptions {
|
|
6
|
-
readonly key:
|
|
7
|
-
readonly data:
|
|
6
|
+
readonly key: CryptoInput;
|
|
7
|
+
readonly data: CryptoInput;
|
|
8
8
|
readonly algorithm?: SignatureAlgorithm;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Options for verification.
|
|
12
12
|
*/
|
|
13
13
|
export interface VerifyOptions {
|
|
14
|
-
readonly key:
|
|
15
|
-
readonly data:
|
|
14
|
+
readonly key: CryptoInput;
|
|
15
|
+
readonly data: CryptoInput;
|
|
16
16
|
readonly signature: Uint8Array;
|
|
17
17
|
readonly algorithm?: SignatureAlgorithm;
|
|
18
18
|
}
|
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
export type { HashResult, HashEncoding } from "./cryptoHash.type.js";
|
|
8
8
|
export type { EncryptedData, EncryptOptions, DecryptOptions, } from "./cryptoCipher.type.js";
|
|
9
9
|
export type { SignOptions, VerifyOptions } from "./cryptoSignature.type.js";
|
|
10
|
-
export type { DerivedKeyResult, DeriveKeyOptions, } from "./cryptoKeyDerivation.type.js";
|
|
10
|
+
export type { DerivedKeyResult, DerivedKeyAlgorithm, DeriveKeyOptions, PasswordHashProviderOptions, } from "./cryptoKeyDerivation.type.js";
|
|
11
11
|
export type { RandomTokenOptions } from "./cryptoRandom.type.js";
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Generates a cryptographically secure random boolean.
|
|
3
4
|
*/
|
|
4
|
-
export declare function randomBoolean(): Promise<boolean>;
|
|
5
|
+
export declare function randomBoolean(provider?: CryptoProvider): Promise<boolean>;
|
|
5
6
|
/**
|
|
6
7
|
* Generates a random value from a collection.
|
|
8
|
+
*
|
|
9
|
+
* A single-element collection returns that element.
|
|
7
10
|
*/
|
|
8
|
-
export declare function randomChoice<T>(values: readonly T[]): Promise<T>;
|
|
11
|
+
export declare function randomChoice<T>(values: readonly T[], provider?: CryptoProvider): Promise<T>;
|
|
9
12
|
/**
|
|
10
13
|
* Fills an existing Uint8Array with cryptographically secure
|
|
11
14
|
* random bytes.
|
|
12
15
|
*/
|
|
13
|
-
export declare function fillRandomBytes(target: Uint8Array): Promise<Uint8Array>;
|
|
16
|
+
export declare function fillRandomBytes(target: Uint8Array, provider?: CryptoProvider): Promise<Uint8Array>;
|
|
14
17
|
//# sourceMappingURL=cryptoRandom.choice.d.ts.map
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const provider = createNodeCryptoProvider();
|
|
1
|
+
import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
|
|
3
2
|
/**
|
|
4
3
|
* Generates a cryptographically secure random boolean.
|
|
5
4
|
*/
|
|
6
|
-
export async function randomBoolean() {
|
|
5
|
+
export async function randomBoolean(provider = getDefaultCryptoProvider()) {
|
|
7
6
|
return (await provider.randomInt(0, 2)) === 1;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
9
|
* Generates a random value from a collection.
|
|
10
|
+
*
|
|
11
|
+
* A single-element collection returns that element.
|
|
11
12
|
*/
|
|
12
|
-
export async function randomChoice(values) {
|
|
13
|
-
if (values.length === 0) {
|
|
13
|
+
export async function randomChoice(values, provider = getDefaultCryptoProvider()) {
|
|
14
|
+
if (!Array.isArray(values) || values.length === 0) {
|
|
14
15
|
throw new RangeError("Cannot choose from an empty collection.");
|
|
15
16
|
}
|
|
16
17
|
return values[await provider.randomInt(0, values.length)];
|
|
@@ -19,10 +20,13 @@ export async function randomChoice(values) {
|
|
|
19
20
|
* Fills an existing Uint8Array with cryptographically secure
|
|
20
21
|
* random bytes.
|
|
21
22
|
*/
|
|
22
|
-
export async function fillRandomBytes(target) {
|
|
23
|
+
export async function fillRandomBytes(target, provider = getDefaultCryptoProvider()) {
|
|
23
24
|
if (!(target instanceof Uint8Array)) {
|
|
24
25
|
throw new TypeError("target must be a Uint8Array.");
|
|
25
26
|
}
|
|
27
|
+
if (target.byteLength === 0) {
|
|
28
|
+
return target;
|
|
29
|
+
}
|
|
26
30
|
const bytes = await provider.randomBytes(target.byteLength);
|
|
27
31
|
target.set(bytes);
|
|
28
32
|
return target;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Generates cryptographically secure random bytes.
|
|
3
4
|
*/
|
|
4
|
-
export declare function randomBytesSecure(length: number): Promise<Uint8Array>;
|
|
5
|
+
export declare function randomBytesSecure(length: number, provider?: CryptoProvider): Promise<Uint8Array>;
|
|
5
6
|
/**
|
|
6
|
-
* Generates a cryptographically secure
|
|
7
|
+
* Generates a cryptographically secure, uniformly distributed integer.
|
|
7
8
|
*
|
|
8
9
|
* The returned value is in the range:
|
|
9
10
|
* min <= value < max
|
|
11
|
+
*
|
|
12
|
+
* Ranges up to 2^48 are supported; a range of one value returns `min`.
|
|
10
13
|
*/
|
|
11
|
-
export declare function randomInteger(min: number, max: number): Promise<number>;
|
|
14
|
+
export declare function randomInteger(min: number, max: number, provider?: CryptoProvider): Promise<number>;
|
|
12
15
|
/**
|
|
13
16
|
* Generates a cryptographically secure random integer
|
|
14
17
|
* from zero up to, but excluding, max.
|
|
15
18
|
*/
|
|
16
|
-
export declare function randomIntegerBelow(max: number): Promise<number>;
|
|
19
|
+
export declare function randomIntegerBelow(max: number, provider?: CryptoProvider): Promise<number>;
|
|
17
20
|
/**
|
|
18
21
|
* Generates a random UUID v4.
|
|
19
22
|
*/
|
|
20
|
-
export declare function randomUuid(): Promise<string>;
|
|
23
|
+
export declare function randomUuid(provider?: CryptoProvider): Promise<string>;
|
|
21
24
|
//# sourceMappingURL=cryptoRandom.core.d.ts.map
|
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const provider = createNodeCryptoProvider();
|
|
1
|
+
import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
|
|
3
2
|
/**
|
|
4
3
|
* Generates cryptographically secure random bytes.
|
|
5
4
|
*/
|
|
6
|
-
export async function randomBytesSecure(length) {
|
|
5
|
+
export async function randomBytesSecure(length, provider = getDefaultCryptoProvider()) {
|
|
7
6
|
return provider.randomBytes(length);
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
10
|
-
* Generates a cryptographically secure
|
|
9
|
+
* Generates a cryptographically secure, uniformly distributed integer.
|
|
11
10
|
*
|
|
12
11
|
* The returned value is in the range:
|
|
13
12
|
* min <= value < max
|
|
13
|
+
*
|
|
14
|
+
* Ranges up to 2^48 are supported; a range of one value returns `min`.
|
|
14
15
|
*/
|
|
15
|
-
export async function randomInteger(min, max) {
|
|
16
|
+
export async function randomInteger(min, max, provider = getDefaultCryptoProvider()) {
|
|
16
17
|
return provider.randomInt(min, max);
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
20
|
* Generates a cryptographically secure random integer
|
|
20
21
|
* from zero up to, but excluding, max.
|
|
21
22
|
*/
|
|
22
|
-
export async function randomIntegerBelow(max) {
|
|
23
|
+
export async function randomIntegerBelow(max, provider = getDefaultCryptoProvider()) {
|
|
23
24
|
return provider.randomInt(0, max);
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Generates a random UUID v4.
|
|
27
28
|
*/
|
|
28
|
-
export async function randomUuid() {
|
|
29
|
+
export async function randomUuid(provider = getDefaultCryptoProvider()) {
|
|
29
30
|
return provider.randomUUID();
|
|
30
31
|
}
|
|
31
32
|
//# sourceMappingURL=cryptoRandom.core.js.map
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Generates a cryptographically secure random hexadecimal string.
|
|
3
4
|
*/
|
|
4
|
-
export declare function randomHex(length: number): Promise<string>;
|
|
5
|
+
export declare function randomHex(length: number, provider?: CryptoProvider): Promise<string>;
|
|
5
6
|
/**
|
|
6
7
|
* Generates a cryptographically secure random base64 string.
|
|
7
8
|
*/
|
|
8
|
-
export declare function randomBase64(byteLength: number): Promise<string>;
|
|
9
|
+
export declare function randomBase64(byteLength: number, provider?: CryptoProvider): Promise<string>;
|
|
9
10
|
/**
|
|
10
11
|
* Generates a cryptographically secure URL-safe random string.
|
|
11
12
|
*/
|
|
12
|
-
export declare function randomBase64Url(byteLength: number): Promise<string>;
|
|
13
|
+
export declare function randomBase64Url(byteLength: number, provider?: CryptoProvider): Promise<string>;
|
|
13
14
|
/**
|
|
14
15
|
* Generates a random token suitable for use as an opaque identifier.
|
|
15
16
|
*
|
|
16
17
|
* The returned token contains only URL-safe characters.
|
|
17
18
|
*/
|
|
18
|
-
export declare function randomToken(byteLength?: number): Promise<string>;
|
|
19
|
+
export declare function randomToken(byteLength?: number, provider?: CryptoProvider): Promise<string>;
|
|
19
20
|
/**
|
|
20
21
|
* Generates a random numeric code.
|
|
21
22
|
*
|
|
22
|
-
* Leading zeroes are preserved.
|
|
23
|
+
* Leading zeroes are preserved. Each digit is drawn uniformly.
|
|
23
24
|
*/
|
|
24
|
-
export declare function randomNumericCode(length?: number): Promise<string>;
|
|
25
|
+
export declare function randomNumericCode(length?: number, provider?: CryptoProvider): Promise<string>;
|
|
25
26
|
/**
|
|
26
27
|
* Generates a random alphanumeric token.
|
|
27
28
|
*/
|
|
28
|
-
export declare function randomAlphanumeric(length: number): Promise<string>;
|
|
29
|
+
export declare function randomAlphanumeric(length: number, provider?: CryptoProvider): Promise<string>;
|
|
29
30
|
/**
|
|
30
31
|
* Generates random characters from a caller-provided alphabet.
|
|
31
32
|
*
|
|
32
|
-
*
|
|
33
|
+
* `length` counts Unicode code points (so astral characters count once),
|
|
34
|
+
* the alphabet must not be empty, and each character is drawn uniformly.
|
|
33
35
|
*/
|
|
34
|
-
export declare function randomFromAlphabet(length: number, alphabet: string): Promise<string>;
|
|
36
|
+
export declare function randomFromAlphabet(length: number, alphabet: string, provider?: CryptoProvider): Promise<string>;
|
|
35
37
|
//# sourceMappingURL=cryptoRandom.string.d.ts.map
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { getDefaultCryptoProvider } from "../cryptoProvider/cryptoProvider.default.js";
|
|
2
|
+
function assertLength(length, name = "length") {
|
|
3
|
+
if (!Number.isInteger(length) || length <= 0) {
|
|
4
|
+
throw new RangeError(`${name} must be a positive integer.`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
3
7
|
/**
|
|
4
8
|
* Generates a cryptographically secure random hexadecimal string.
|
|
5
9
|
*/
|
|
6
|
-
export async function randomHex(length) {
|
|
10
|
+
export async function randomHex(length, provider = getDefaultCryptoProvider()) {
|
|
11
|
+
assertLength(length);
|
|
7
12
|
const bytes = await provider.randomBytes(Math.ceil(length / 2));
|
|
8
13
|
return Buffer.from(bytes).toString("hex").slice(0, length);
|
|
9
14
|
}
|
|
10
15
|
/**
|
|
11
16
|
* Generates a cryptographically secure random base64 string.
|
|
12
17
|
*/
|
|
13
|
-
export async function randomBase64(byteLength) {
|
|
18
|
+
export async function randomBase64(byteLength, provider = getDefaultCryptoProvider()) {
|
|
19
|
+
assertLength(byteLength, "byteLength");
|
|
14
20
|
const bytes = await provider.randomBytes(byteLength);
|
|
15
21
|
return Buffer.from(bytes).toString("base64");
|
|
16
22
|
}
|
|
17
23
|
/**
|
|
18
24
|
* Generates a cryptographically secure URL-safe random string.
|
|
19
25
|
*/
|
|
20
|
-
export async function randomBase64Url(byteLength) {
|
|
26
|
+
export async function randomBase64Url(byteLength, provider = getDefaultCryptoProvider()) {
|
|
27
|
+
assertLength(byteLength, "byteLength");
|
|
21
28
|
const bytes = await provider.randomBytes(byteLength);
|
|
22
29
|
return Buffer.from(bytes).toString("base64url");
|
|
23
30
|
}
|
|
@@ -26,49 +33,41 @@ export async function randomBase64Url(byteLength) {
|
|
|
26
33
|
*
|
|
27
34
|
* The returned token contains only URL-safe characters.
|
|
28
35
|
*/
|
|
29
|
-
export async function randomToken(byteLength = 32) {
|
|
30
|
-
return randomBase64Url(byteLength);
|
|
36
|
+
export async function randomToken(byteLength = 32, provider) {
|
|
37
|
+
return randomBase64Url(byteLength, provider);
|
|
31
38
|
}
|
|
32
39
|
/**
|
|
33
40
|
* Generates a random numeric code.
|
|
34
41
|
*
|
|
35
|
-
* Leading zeroes are preserved.
|
|
42
|
+
* Leading zeroes are preserved. Each digit is drawn uniformly.
|
|
36
43
|
*/
|
|
37
|
-
export async function randomNumericCode(length = 6) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const value = await provider.randomInt(0, 1_000_000);
|
|
41
|
-
result += String(value).padStart(6, "0");
|
|
42
|
-
}
|
|
43
|
-
return result.slice(0, length);
|
|
44
|
+
export async function randomNumericCode(length = 6, provider = getDefaultCryptoProvider()) {
|
|
45
|
+
assertLength(length);
|
|
46
|
+
return randomFromAlphabet(length, "0123456789", provider);
|
|
44
47
|
}
|
|
45
48
|
/**
|
|
46
49
|
* Generates a random alphanumeric token.
|
|
47
50
|
*/
|
|
48
|
-
export async function randomAlphanumeric(length) {
|
|
49
|
-
|
|
50
|
-
let result = "";
|
|
51
|
-
while (result.length < length) {
|
|
52
|
-
const index = await provider.randomInt(0, alphabet.length);
|
|
53
|
-
result += alphabet[index];
|
|
54
|
-
}
|
|
55
|
-
return result;
|
|
51
|
+
export async function randomAlphanumeric(length, provider = getDefaultCryptoProvider()) {
|
|
52
|
+
return randomFromAlphabet(length, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", provider);
|
|
56
53
|
}
|
|
57
54
|
/**
|
|
58
55
|
* Generates random characters from a caller-provided alphabet.
|
|
59
56
|
*
|
|
60
|
-
*
|
|
57
|
+
* `length` counts Unicode code points (so astral characters count once),
|
|
58
|
+
* the alphabet must not be empty, and each character is drawn uniformly.
|
|
61
59
|
*/
|
|
62
|
-
export async function randomFromAlphabet(length, alphabet) {
|
|
63
|
-
|
|
60
|
+
export async function randomFromAlphabet(length, alphabet, provider = getDefaultCryptoProvider()) {
|
|
61
|
+
assertLength(length);
|
|
62
|
+
if (typeof alphabet !== "string" || alphabet.length === 0) {
|
|
64
63
|
throw new RangeError("alphabet must not be empty.");
|
|
65
64
|
}
|
|
66
65
|
const characters = Array.from(alphabet);
|
|
67
|
-
|
|
66
|
+
const result = [];
|
|
68
67
|
while (result.length < length) {
|
|
69
68
|
const index = await provider.randomInt(0, characters.length);
|
|
70
|
-
result
|
|
69
|
+
result.push(characters[index]);
|
|
71
70
|
}
|
|
72
|
-
return result;
|
|
71
|
+
return result.join("");
|
|
73
72
|
}
|
|
74
73
|
//# sourceMappingURL=cryptoRandom.string.js.map
|
|
@@ -1,29 +1,61 @@
|
|
|
1
|
+
import type { CryptoProvider } from "../cryptoProvider/index.js";
|
|
1
2
|
import { CryptoAlgorithm } from "../cryptoConstants/cryptoConstants.type.js";
|
|
3
|
+
import { type CipherOptions, type CipherResult } from "./operations/cryptoService.cipher.js";
|
|
4
|
+
import { type PasswordHashOptions, type PasswordHashResult } from "./operations/cryptoService.password.js";
|
|
5
|
+
import { type Pbkdf2Options, type ScryptOptions, type DerivedKeyResult } from "./cryptoService.derivation.js";
|
|
6
|
+
import { type TokenOptions } from "./operations/cryptoService.token.js";
|
|
7
|
+
import { type CryptoEncoding } from "./cryptoService.encoding.js";
|
|
2
8
|
import type { CryptoKey as ZudojsCryptoKey } from "../cryptoKey/cryptoKey.type.js";
|
|
9
|
+
/**
|
|
10
|
+
* Options for constructing a CryptoService.
|
|
11
|
+
*/
|
|
12
|
+
export interface CryptoServiceOptions {
|
|
13
|
+
/** Provider used for every operation (defaults to the process-wide default). */
|
|
14
|
+
readonly provider?: CryptoProvider;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* High-level service facade for cryptographic operations.
|
|
18
|
+
*
|
|
19
|
+
* Every failure is surfaced as a `CryptoError` whose `cause` holds the
|
|
20
|
+
* underlying error, so misconfiguration (wrong key length, invalid
|
|
21
|
+
* option) can be distinguished from environmental failures.
|
|
5
22
|
*/
|
|
6
23
|
export declare class CryptoService {
|
|
7
|
-
|
|
24
|
+
private readonly configuredProvider;
|
|
25
|
+
constructor(options?: CryptoServiceOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Returns the provider backing this service.
|
|
28
|
+
*
|
|
29
|
+
* When none was configured, the process-wide default is resolved on
|
|
30
|
+
* each call, so `setDefaultCryptoProvider` also affects this service.
|
|
31
|
+
*/
|
|
32
|
+
getProvider(): CryptoProvider;
|
|
33
|
+
private get provider();
|
|
34
|
+
/**
|
|
35
|
+
* Generates a random symmetric key sized for the algorithm.
|
|
36
|
+
*
|
|
37
|
+
* Asymmetric algorithms are rejected: random bytes are not a usable
|
|
38
|
+
* signing key. Use `generateEd25519KeyPair` for those.
|
|
39
|
+
*/
|
|
8
40
|
generateKey(algorithm?: CryptoAlgorithm): Promise<ZudojsCryptoKey>;
|
|
9
41
|
/** Generates random bytes. */
|
|
10
42
|
randomBytes(length?: number): Promise<Uint8Array>;
|
|
11
43
|
/** Encrypts data using the supplied key. */
|
|
12
|
-
encrypt(plaintext: Uint8Array, key: Uint8Array, options?:
|
|
44
|
+
encrypt(plaintext: Uint8Array, key: Uint8Array, options?: CipherOptions): Promise<CipherResult>;
|
|
13
45
|
/** Decrypts data using the supplied key. */
|
|
14
46
|
decrypt(ciphertext: Uint8Array, key: Uint8Array, iv: Uint8Array, authTag: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>;
|
|
15
47
|
/** Hashes arbitrary data with SHA-256. */
|
|
16
48
|
hash(value: string | Uint8Array): Promise<Uint8Array>;
|
|
17
49
|
/** Hashes arbitrary data and returns hexadecimal output. */
|
|
18
50
|
hashHex(value: string | Uint8Array): Promise<string>;
|
|
19
|
-
/** Hashes a password using
|
|
20
|
-
hashPassword(password: string, options?:
|
|
51
|
+
/** Hashes a password using scrypt. */
|
|
52
|
+
hashPassword(password: string, options?: PasswordHashOptions): Promise<PasswordHashResult>;
|
|
21
53
|
/** Verifies a password against a stored password hash. */
|
|
22
54
|
verifyPassword(password: string, encodedHash: string): Promise<boolean>;
|
|
23
55
|
/** Derives a cryptographic key from password material. */
|
|
24
|
-
deriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?:
|
|
56
|
+
deriveKey(password: string | Uint8Array, algorithm: CryptoAlgorithm, options?: Pbkdf2Options | ScryptOptions): Promise<DerivedKeyResult>;
|
|
25
57
|
/** Generates a cryptographically secure opaque token. */
|
|
26
|
-
generateToken(options?:
|
|
58
|
+
generateToken(options?: TokenOptions): Promise<string>;
|
|
27
59
|
/** Generates a secure one-time password. */
|
|
28
60
|
generateOtp(digits?: number): Promise<string>;
|
|
29
61
|
/** Hashes an opaque token before database storage. */
|
|
@@ -31,16 +63,22 @@ export declare class CryptoService {
|
|
|
31
63
|
/** Verifies an opaque token against its stored hash. */
|
|
32
64
|
verifyToken(token: string, expectedHash: string): Promise<boolean>;
|
|
33
65
|
/** Encodes binary data. */
|
|
34
|
-
encode(value: Uint8Array, encoding?:
|
|
66
|
+
encode(value: Uint8Array, encoding?: CryptoEncoding): string;
|
|
35
67
|
/** Decodes encoded binary data. */
|
|
36
|
-
decode(value: string, encoding?:
|
|
68
|
+
decode(value: string, encoding?: CryptoEncoding): Uint8Array;
|
|
37
69
|
}
|
|
38
70
|
/**
|
|
39
71
|
* Creates a new CryptoService instance.
|
|
40
72
|
*/
|
|
41
|
-
export declare function createCryptoService(): CryptoService;
|
|
73
|
+
export declare function createCryptoService(options?: CryptoServiceOptions): CryptoService;
|
|
42
74
|
/**
|
|
43
75
|
* Default crypto service instance.
|
|
76
|
+
*
|
|
77
|
+
* Construction is trivial (no provider is created until first use).
|
|
44
78
|
*/
|
|
45
79
|
export declare const cryptoService: CryptoService;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the default crypto service instance.
|
|
82
|
+
*/
|
|
83
|
+
export declare function getCryptoService(): CryptoService;
|
|
46
84
|
//# sourceMappingURL=cryptoService.core.d.ts.map
|