summary refs log tree commit diff
path: root/crypto/src/crypto
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/crypto')
-rw-r--r--crypto/src/crypto/IBlockResult.cs1
-rw-r--r--crypto/src/crypto/engines/AesEngine.cs3
-rw-r--r--crypto/src/crypto/engines/Salsa20Engine.cs2
-rw-r--r--crypto/src/crypto/macs/Poly1305.cs3
-rw-r--r--crypto/src/crypto/modes/CfbBlockCipher.cs3
-rw-r--r--crypto/src/crypto/modes/EcbBlockCipher.cs5
-rw-r--r--crypto/src/crypto/modes/OpenPgpCfbBlockCipher.cs1
-rw-r--r--crypto/src/crypto/modes/SicBlockCipher.cs8
-rw-r--r--crypto/src/crypto/prng/CryptoApiRandomGenerator.cs10
-rw-r--r--crypto/src/crypto/signers/DsaDigestSigner.cs4
-rw-r--r--crypto/src/crypto/signers/DsaSigner.cs8
-rw-r--r--crypto/src/crypto/signers/ECDsaSigner.cs8
-rw-r--r--crypto/src/crypto/signers/StandardDsaEncoding.cs4
13 files changed, 27 insertions, 33 deletions
diff --git a/crypto/src/crypto/IBlockResult.cs b/crypto/src/crypto/IBlockResult.cs

index f3b73e59f..2a62e26de 100644 --- a/crypto/src/crypto/IBlockResult.cs +++ b/crypto/src/crypto/IBlockResult.cs
@@ -31,6 +31,7 @@ namespace Org.BouncyCastle.Crypto int Collect(Span<byte> output); #endif + /// <summary>Return an upper limit for the size of the result.</summary> int GetMaxResultLength(); } } diff --git a/crypto/src/crypto/engines/AesEngine.cs b/crypto/src/crypto/engines/AesEngine.cs
index 914550d6d..3977cb893 100644 --- a/crypto/src/crypto/engines/AesEngine.cs +++ b/crypto/src/crypto/engines/AesEngine.cs
@@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Crypto.Utilities; @@ -37,7 +36,7 @@ namespace Org.BouncyCastle.Crypto.Engines // The S box private static readonly byte[] S = { - 99, 124, 119, 123, 242, 107, 111, 197, + 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, diff --git a/crypto/src/crypto/engines/Salsa20Engine.cs b/crypto/src/crypto/engines/Salsa20Engine.cs
index 7c2c1e1f9..2e8f8e50a 100644 --- a/crypto/src/crypto/engines/Salsa20Engine.cs +++ b/crypto/src/crypto/engines/Salsa20Engine.cs
@@ -27,7 +27,7 @@ namespace Org.BouncyCastle.Crypto.Engines private readonly static uint[] TAU_SIGMA = Pack.LE_To_UInt32(Strings.ToAsciiByteArray("expand 16-byte k" + "expand 32-byte k"), 0, 8); - internal void PackTauOrSigma(int keyLength, uint[] state, int stateOffset) + internal static void PackTauOrSigma(int keyLength, uint[] state, int stateOffset) { int tsOff = (keyLength - 16) / 4; state[stateOffset] = TAU_SIGMA[tsOff]; diff --git a/crypto/src/crypto/macs/Poly1305.cs b/crypto/src/crypto/macs/Poly1305.cs
index d02216309..adf4975ba 100644 --- a/crypto/src/crypto/macs/Poly1305.cs +++ b/crypto/src/crypto/macs/Poly1305.cs
@@ -4,6 +4,7 @@ using System.Diagnostics; using System.Runtime.CompilerServices; #endif +using Org.BouncyCastle.Crypto.Generators; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Crypto.Utilities; @@ -22,7 +23,7 @@ namespace Org.BouncyCastle.Crypto.Macs /// href="https://github.com/floodyberry/poly1305-donna">poly1305-donna-unrolled</a> C implementation /// by Andrew M (@floodyberry). /// </remarks> - /// <seealso cref="Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator"/> + /// <seealso cref="Poly1305KeyGenerator"/> public class Poly1305 : IMac { diff --git a/crypto/src/crypto/modes/CfbBlockCipher.cs b/crypto/src/crypto/modes/CfbBlockCipher.cs
index 7bce9843f..cdb17dd3c 100644 --- a/crypto/src/crypto/modes/CfbBlockCipher.cs +++ b/crypto/src/crypto/modes/CfbBlockCipher.cs
@@ -61,9 +61,8 @@ namespace Org.BouncyCastle.Crypto.Modes ICipherParameters parameters) { this.encrypting = forEncryption; - if (parameters is ParametersWithIV) + if (parameters is ParametersWithIV ivParam) { - ParametersWithIV ivParam = (ParametersWithIV) parameters; byte[] iv = ivParam.GetIV(); int diff = IV.Length - iv.Length; Array.Copy(iv, 0, IV, diff, iv.Length); diff --git a/crypto/src/crypto/modes/EcbBlockCipher.cs b/crypto/src/crypto/modes/EcbBlockCipher.cs
index 96f9811dd..b41452622 100644 --- a/crypto/src/crypto/modes/EcbBlockCipher.cs +++ b/crypto/src/crypto/modes/EcbBlockCipher.cs
@@ -17,10 +17,7 @@ namespace Org.BouncyCastle.Crypto.Modes public EcbBlockCipher(IBlockCipher cipher) { - if (cipher == null) - throw new ArgumentNullException(nameof(cipher)); - - m_cipher = cipher; + m_cipher = cipher ?? throw new ArgumentNullException(nameof(cipher)); } public bool IsPartialBlockOkay => false; diff --git a/crypto/src/crypto/modes/OpenPgpCfbBlockCipher.cs b/crypto/src/crypto/modes/OpenPgpCfbBlockCipher.cs
index 4e6e0ffaa..dff5af1c6 100644 --- a/crypto/src/crypto/modes/OpenPgpCfbBlockCipher.cs +++ b/crypto/src/crypto/modes/OpenPgpCfbBlockCipher.cs
@@ -161,7 +161,6 @@ namespace Org.BouncyCastle.Crypto.Modes return (byte)(FRE[blockOff] ^ data); } - #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER private int EncryptBlock(ReadOnlySpan<byte> input, Span<byte> output) { diff --git a/crypto/src/crypto/modes/SicBlockCipher.cs b/crypto/src/crypto/modes/SicBlockCipher.cs
index fee8bb028..ee204c18c 100644 --- a/crypto/src/crypto/modes/SicBlockCipher.cs +++ b/crypto/src/crypto/modes/SicBlockCipher.cs
@@ -1,7 +1,6 @@ using System; using Org.BouncyCastle.Crypto.Parameters; -using Org.BouncyCastle.Math; using Org.BouncyCastle.Utilities; @@ -45,8 +44,7 @@ namespace Org.BouncyCastle.Crypto.Modes bool forEncryption, //ignored by this CTR mode ICipherParameters parameters) { - ParametersWithIV ivParam = parameters as ParametersWithIV; - if (ivParam == null) + if (!(parameters is ParametersWithIV ivParam)) throw new ArgumentException("CTR/SIC mode requires ParametersWithIV", "parameters"); this.IV = Arrays.Clone(ivParam.GetIV()); @@ -58,13 +56,13 @@ namespace Org.BouncyCastle.Crypto.Modes if (blockSize - IV.Length > maxCounterSize) throw new ArgumentException("CTR/SIC mode requires IV of at least: " + (blockSize - maxCounterSize) + " bytes."); + Reset(); + // if null it's an IV changed only. if (ivParam.Parameters != null) { cipher.Init(true, ivParam.Parameters); } - - Reset(); } public virtual string AlgorithmName diff --git a/crypto/src/crypto/prng/CryptoApiRandomGenerator.cs b/crypto/src/crypto/prng/CryptoApiRandomGenerator.cs
index dcd3baa1c..bafb4fd5e 100644 --- a/crypto/src/crypto/prng/CryptoApiRandomGenerator.cs +++ b/crypto/src/crypto/prng/CryptoApiRandomGenerator.cs
@@ -52,8 +52,8 @@ namespace Org.BouncyCastle.Crypto.Prng m_randomNumberGenerator.GetBytes(bytes, start, len); #else if (start < 0) - throw new ArgumentException("Start offset cannot be negative", "start"); - if (bytes.Length < (start + len)) + throw new ArgumentException("Start offset cannot be negative", nameof(start)); + if (start > bytes.Length - len) throw new ArgumentException("Byte array too small for requested offset and length"); if (bytes.Length == len && start == 0) @@ -62,9 +62,9 @@ namespace Org.BouncyCastle.Crypto.Prng } else { - byte[] tmpBuf = new byte[len]; - NextBytes(tmpBuf); - Array.Copy(tmpBuf, 0, bytes, start, len); + byte[] tmp = new byte[len]; + NextBytes(tmp); + tmp.CopyTo(bytes, start); } #endif } diff --git a/crypto/src/crypto/signers/DsaDigestSigner.cs b/crypto/src/crypto/signers/DsaDigestSigner.cs
index f546785bd..608e55304 100644 --- a/crypto/src/crypto/signers/DsaDigestSigner.cs +++ b/crypto/src/crypto/signers/DsaDigestSigner.cs
@@ -78,7 +78,7 @@ namespace Org.BouncyCastle.Crypto.Signers public virtual byte[] GenerateSignature() { if (!forSigning) - throw new InvalidOperationException("DSADigestSigner not initialised for signature generation."); + throw new InvalidOperationException("DsaDigestSigner not initialized for signature generation."); byte[] hash = new byte[digest.GetDigestSize()]; digest.DoFinal(hash, 0); @@ -98,7 +98,7 @@ namespace Org.BouncyCastle.Crypto.Signers public virtual bool VerifySignature(byte[] signature) { if (forSigning) - throw new InvalidOperationException("DSADigestSigner not initialised for verification"); + throw new InvalidOperationException("DsaDigestSigner not initialized for verification"); byte[] hash = new byte[digest.GetDigestSize()]; digest.DoFinal(hash, 0); diff --git a/crypto/src/crypto/signers/DsaSigner.cs b/crypto/src/crypto/signers/DsaSigner.cs
index d0a2c29e4..a45c05c33 100644 --- a/crypto/src/crypto/signers/DsaSigner.cs +++ b/crypto/src/crypto/signers/DsaSigner.cs
@@ -54,17 +54,17 @@ namespace Org.BouncyCastle.Crypto.Signers parameters = rParam.Parameters; } - if (!(parameters is DsaPrivateKeyParameters)) + if (!(parameters is DsaPrivateKeyParameters dsaPrivateKeyParameters)) throw new InvalidKeyException("DSA private key required for signing"); - this.key = (DsaPrivateKeyParameters)parameters; + this.key = dsaPrivateKeyParameters; } else { - if (!(parameters is DsaPublicKeyParameters)) + if (!(parameters is DsaPublicKeyParameters dsaPublicKeyParameters)) throw new InvalidKeyException("DSA public key required for verification"); - this.key = (DsaPublicKeyParameters)parameters; + this.key = dsaPublicKeyParameters; } this.random = InitSecureRandom(forSigning && !kCalculator.IsDeterministic, providedRandom); diff --git a/crypto/src/crypto/signers/ECDsaSigner.cs b/crypto/src/crypto/signers/ECDsaSigner.cs
index b27182a9e..32225ec82 100644 --- a/crypto/src/crypto/signers/ECDsaSigner.cs +++ b/crypto/src/crypto/signers/ECDsaSigner.cs
@@ -57,17 +57,17 @@ namespace Org.BouncyCastle.Crypto.Signers parameters = rParam.Parameters; } - if (!(parameters is ECPrivateKeyParameters)) + if (!(parameters is ECPrivateKeyParameters ecPrivateKeyParameters)) throw new InvalidKeyException("EC private key required for signing"); - this.key = (ECPrivateKeyParameters)parameters; + this.key = ecPrivateKeyParameters; } else { - if (!(parameters is ECPublicKeyParameters)) + if (!(parameters is ECPublicKeyParameters ecPublicKeyParameters)) throw new InvalidKeyException("EC public key required for verification"); - this.key = (ECPublicKeyParameters)parameters; + this.key = ecPublicKeyParameters; } this.random = InitSecureRandom(forSigning && !kCalculator.IsDeterministic, providedRandom); diff --git a/crypto/src/crypto/signers/StandardDsaEncoding.cs b/crypto/src/crypto/signers/StandardDsaEncoding.cs
index 77cd6124d..8fa195982 100644 --- a/crypto/src/crypto/signers/StandardDsaEncoding.cs +++ b/crypto/src/crypto/signers/StandardDsaEncoding.cs
@@ -24,7 +24,7 @@ namespace Org.BouncyCastle.Crypto.Signers return new BigInteger[]{ r, s }; } - throw new ArgumentException("Malformed signature", "encoding"); + throw new ArgumentException("Malformed signature", nameof(encoding)); } public virtual byte[] Encode(BigInteger n, BigInteger r, BigInteger s) @@ -55,7 +55,7 @@ namespace Org.BouncyCastle.Crypto.Signers protected virtual BigInteger CheckValue(BigInteger n, BigInteger x) { if (x.SignValue < 0 || (null != n && x.CompareTo(n) >= 0)) - throw new ArgumentException("Value out of range", "x"); + throw new ArgumentException("Value out of range", nameof(x)); return x; }