diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2024-05-07 22:44:37 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2024-05-07 22:44:37 +0700 |
commit | 45c6b993945f01076e386cb59988b1836a329999 (patch) | |
tree | af2cfef4965004df69538b330db2923d3f4e7b20 /crypto/src/math/ec/ECCurve.cs | |
parent | Set version to '2.3' (diff) | |
download | BouncyCastle.NET-ed25519-release/v2.3.tar.xz |
Patch #1 for 2.3 release-2.3.1 release/v2.3
- TLS: fix timing side-channel for RSA key exchange - fix method Write(ReadOnlySpan<byte>) in LimitedBuffer - ASN.1: Limit OID contents to 4096 bytes - EdDSA: fix verification infinite loop - EC: restrict m value in F2m curves
Diffstat (limited to 'crypto/src/math/ec/ECCurve.cs')
-rw-r--r-- | crypto/src/math/ec/ECCurve.cs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/crypto/src/math/ec/ECCurve.cs b/crypto/src/math/ec/ECCurve.cs index 245ca1941..ae0d5d69e 100644 --- a/crypto/src/math/ec/ECCurve.cs +++ b/crypto/src/math/ec/ECCurve.cs @@ -607,6 +607,13 @@ namespace Org.BouncyCastle.Math.EC } #endif + internal static int ImplGetInteger(string envVariable, int defaultValue) + { + string property = Platform.GetEnvironmentVariable(envVariable); + + return int.TryParse(property, out int value) ? value : defaultValue; + } + private class DefaultLookupTable : AbstractECLookupTable { @@ -757,13 +764,6 @@ namespace Org.BouncyCastle.Math.EC throw new ArgumentException("Fp q value not prime"); } - private static int ImplGetInteger(string envVariable, int defaultValue) - { - string property = Platform.GetEnvironmentVariable(envVariable); - - return int.TryParse(property, out int value) ? value : defaultValue; - } - private static int ImplGetIterations(int bits, int certainty) { /* @@ -966,6 +966,10 @@ namespace Org.BouncyCastle.Math.EC private static IFiniteField BuildField(int m, int k1, int k2, int k3) { + int maxM = ImplGetInteger("Org.BouncyCastle.EC.F2m_MaxSize", 1142); // 2 * 571 + if (m > maxM) + throw new ArgumentException("F2m m value out of range"); + int[] exponents = (k2 | k3) == 0 ? new int[]{ 0, k1, m } : new int[]{ 0, k1, k2, k3, m }; |