summary refs log tree commit diff
path: root/crypto/src
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2023-01-30 16:20:40 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2023-01-30 16:20:40 +0700
commitc1e0d224b9e34b40679ec105cd3a007a9ce37054 (patch)
treefb473048d96e4f40310b622b85157ae2b8a6bf2a /crypto/src
parentAdd missing failure reports (no bug) (diff)
downloadBouncyCastle.NET-ed25519-c1e0d224b9e34b40679ec105cd3a007a9ce37054.tar.xz
Ensure configured SecureRandom is passed on
Diffstat (limited to 'crypto/src')
-rw-r--r--crypto/src/crypto/signers/PssSigner.cs15
-rw-r--r--crypto/src/crypto/signers/X931Signer.cs11
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;