summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2024-01-25 23:05:56 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2024-01-25 23:05:56 +0700
commit86f0d2b2dad8f419ec392a466e3aff6a8fd8a68e (patch)
tree0d2ef2391a93cfb6b4ef1a2c1db559e98cf321de
parentRefactor some one-byte writes (diff)
downloadBouncyCastle.NET-ed25519-86f0d2b2dad8f419ec392a466e3aff6a8fd8a68e.tar.xz
Update rosstandart OIDs
- see https://github.com/bcgit/bc-csharp/issues/513
-rw-r--r--crypto/src/asn1/cryptopro/ECGOST3410NamedCurves.cs43
-rw-r--r--crypto/src/asn1/rosstandart/RosstandartObjectIdentifiers.cs6
2 files changed, 16 insertions, 33 deletions
diff --git a/crypto/src/asn1/cryptopro/ECGOST3410NamedCurves.cs b/crypto/src/asn1/cryptopro/ECGOST3410NamedCurves.cs
index cb702794c..92e7ec908 100644
--- a/crypto/src/asn1/cryptopro/ECGOST3410NamedCurves.cs
+++ b/crypto/src/asn1/cryptopro/ECGOST3410NamedCurves.cs
@@ -127,38 +127,6 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
             }
         };
 
-        internal class Holder_gostR3410_2001_CryptoPro_XchB
-            : X9ECParametersHolder
-        {
-            private Holder_gostR3410_2001_CryptoPro_XchB() {}
-
-            internal static readonly X9ECParametersHolder Instance = new Holder_gostR3410_2001_CryptoPro_XchB();
-
-            protected override ECCurve CreateCurve()
-            {
-                BigInteger mod_p = FromHex("9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D759B");
-                BigInteger mod_q = FromHex("9B9F605F5A858107AB1EC85E6B41C8AA582CA3511EDDFB74F02F3A6598980BB9");
-
-                return ConfigureCurve(new FpCurve(
-                    mod_p,
-                    FromHex("9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D7598"),
-                    FromHex("805A"),
-                    mod_q, BigInteger.One, isInternal: true));
-            }
-
-            protected override X9ECParameters CreateParameters()
-            {
-                byte[] S = null;
-                ECCurve curve = Curve;
-
-                X9ECPoint G = ConfigureBasepoint(curve,
-                    BigInteger.Zero,
-                    FromHex("41ECE55743711A8C3CBF3783CD08C0EE4D4DC440D4641A8F366E550DFDB3BB67"));
-
-                return new X9ECParameters(curve, G, curve.Order, curve.Cofactor, S);
-            }
-        };
-
         internal class Holder_id_tc26_gost_3410_12_256_paramSetA
             : X9ECParametersHolder
         {
@@ -317,10 +285,19 @@ namespace Org.BouncyCastle.Asn1.CryptoPro
                 Holder_gostR3410_2001_CryptoPro_A.Instance);
             DefineCurve("GostR3410-2001-CryptoPro-XchB",
                 CryptoProObjectIdentifiers.GostR3410x2001CryptoProXchB,
-                Holder_gostR3410_2001_CryptoPro_XchB.Instance);
+                Holder_gostR3410_2001_CryptoPro_C.Instance);
             DefineCurve("Tc26-Gost-3410-12-256-paramSetA",
                 RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256_paramSetA,
                 Holder_id_tc26_gost_3410_12_256_paramSetA.Instance);
+            DefineCurve("Tc26-Gost-3410-12-256-paramSetB",
+                RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256_paramSetB,
+                Holder_gostR3410_2001_CryptoPro_A.Instance);
+            DefineCurve("Tc26-Gost-3410-12-256-paramSetC",
+                RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256_paramSetC,
+                Holder_gostR3410_2001_CryptoPro_B.Instance);
+            DefineCurve("Tc26-Gost-3410-12-256-paramSetD",
+                RosstandartObjectIdentifiers.id_tc26_gost_3410_12_256_paramSetD,
+                Holder_gostR3410_2001_CryptoPro_C.Instance);
             DefineCurve("Tc26-Gost-3410-12-512-paramSetA",
                 RosstandartObjectIdentifiers.id_tc26_gost_3410_12_512_paramSetA,
                 Holder_id_tc26_gost_3410_12_512_paramSetA.Instance);
diff --git a/crypto/src/asn1/rosstandart/RosstandartObjectIdentifiers.cs b/crypto/src/asn1/rosstandart/RosstandartObjectIdentifiers.cs
index 45eaaa6e3..865e82883 100644
--- a/crypto/src/asn1/rosstandart/RosstandartObjectIdentifiers.cs
+++ b/crypto/src/asn1/rosstandart/RosstandartObjectIdentifiers.cs
@@ -35,6 +35,12 @@ namespace Org.BouncyCastle.Asn1.Rosstandart
 
         public static readonly DerObjectIdentifier id_tc26_gost_3410_12_256_paramSetA = id_tc26_gost_3410_12_256_paramSet.Branch("1");
 
+        public static readonly DerObjectIdentifier id_tc26_gost_3410_12_256_paramSetB = id_tc26_gost_3410_12_256_paramSet.Branch("2");
+
+        public static readonly DerObjectIdentifier id_tc26_gost_3410_12_256_paramSetC = id_tc26_gost_3410_12_256_paramSet.Branch("3");
+
+        public static readonly DerObjectIdentifier id_tc26_gost_3410_12_256_paramSetD = id_tc26_gost_3410_12_256_paramSet.Branch("4");
+
         public static readonly DerObjectIdentifier id_tc26_gost_3410_12_512_paramSet = id_tc26.Branch("2.1.2");
 
         public static readonly DerObjectIdentifier id_tc26_gost_3410_12_512_paramSetA = id_tc26_gost_3410_12_512_paramSet.Branch("1");