diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-01-30 16:20:40 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-01-30 16:20:40 +0700 |
commit | c1e0d224b9e34b40679ec105cd3a007a9ce37054 (patch) | |
tree | fb473048d96e4f40310b622b85157ae2b8a6bf2a /crypto/src | |
parent | Add missing failure reports (no bug) (diff) | |
download | BouncyCastle.NET-ed25519-c1e0d224b9e34b40679ec105cd3a007a9ce37054.tar.xz |
Ensure configured SecureRandom is passed on
Diffstat (limited to 'crypto/src')
-rw-r--r-- | crypto/src/crypto/signers/PssSigner.cs | 15 | ||||
-rw-r--r-- | crypto/src/crypto/signers/X931Signer.cs | 11 |
2 files changed, 16 insertions, 10 deletions
diff --git a/crypto/src/crypto/signers/PssSigner.cs b/crypto/src/crypto/signers/PssSigner.cs index c1613c8d1..2e4c37772 100644 --- a/crypto/src/crypto/signers/PssSigner.cs +++ b/crypto/src/crypto/signers/PssSigner.cs @@ -158,15 +158,15 @@ namespace Org.BouncyCastle.Crypto.Signers { parameters = withRandom.Parameters; random = withRandom.Random; - } - else + cipher.Init(forSigning, withRandom); + } + else { random = forSigning ? CryptoServicesRegistrar.GetSecureRandom() : null; - } - - cipher.Init(forSigning, parameters); + cipher.Init(forSigning, parameters); + } - RsaKeyParameters kParam; + RsaKeyParameters kParam; if (parameters is RsaBlindingParameters blinding) { kParam = blinding.PublicKey; @@ -185,8 +185,7 @@ namespace Org.BouncyCastle.Crypto.Signers } /// <summary> clear possible sensitive data</summary> - private void ClearBlock( - byte[] block) + private void ClearBlock(byte[] block) { Array.Clear(block, 0, block.Length); } diff --git a/crypto/src/crypto/signers/X931Signer.cs b/crypto/src/crypto/signers/X931Signer.cs index 9db4e1642..c185eacfd 100644 --- a/crypto/src/crypto/signers/X931Signer.cs +++ b/crypto/src/crypto/signers/X931Signer.cs @@ -71,9 +71,16 @@ namespace Org.BouncyCastle.Crypto.Signers public virtual void Init(bool forSigning, ICipherParameters parameters) { - kParam = (RsaKeyParameters)parameters; + if (parameters is ParametersWithRandom withRandom) + { + kParam = (RsaKeyParameters)withRandom.Parameters; + } + else + { + kParam = (RsaKeyParameters)parameters; + } - cipher.Init(forSigning, kParam); + cipher.Init(forSigning, parameters); keyBits = kParam.Modulus.BitLength; |