summary refs log tree commit diff
path: root/crypto/src/security/PrivateKeyFactory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/security/PrivateKeyFactory.cs')
-rw-r--r--crypto/src/security/PrivateKeyFactory.cs42
1 files changed, 8 insertions, 34 deletions
diff --git a/crypto/src/security/PrivateKeyFactory.cs b/crypto/src/security/PrivateKeyFactory.cs
index 4c7a91ecf..dfc73c2cd 100644
--- a/crypto/src/security/PrivateKeyFactory.cs
+++ b/crypto/src/security/PrivateKeyFactory.cs
@@ -135,7 +135,7 @@ namespace Org.BouncyCastle.Security
                 Gost3410PublicKeyAlgParameters gostParams = Gost3410PublicKeyAlgParameters.GetInstance(
                     algID.Parameters.ToAsn1Object());
 
-                ECDomainParameters ecP = ECGost3410NamedCurves.GetByOid(gostParams.PublicKeyParamSet);
+                X9ECParameters ecP = ECGost3410NamedCurves.GetByOidX9(gostParams.PublicKeyParamSet);
 
                 if (ecP == null)
                     throw new ArgumentException("Unrecognized curve OID for GostR3410x2001 private key");
@@ -198,7 +198,7 @@ namespace Org.BouncyCastle.Security
                 if (p is Asn1Sequence && (Asn1Sequence.GetInstance(p).Count == 2 || Asn1Sequence.GetInstance(p).Count == 3))
                 {
 
-                    ECDomainParameters ecP = ECGost3410NamedCurves.GetByOid(gostParams.PublicKeyParamSet);
+                    X9ECParameters ecP = ECGost3410NamedCurves.GetByOidX9(gostParams.PublicKeyParamSet);
 
                     ecSpec = new ECGost3410Parameters(
                         new ECNamedDomainParameters(
@@ -235,29 +235,10 @@ namespace Org.BouncyCastle.Security
                     {
                         DerObjectIdentifier oid = DerObjectIdentifier.GetInstance(parameters.Parameters);
                         X9ECParameters ecP = ECNamedCurveTable.GetByOid(oid);
-                        if (ecP == null)
-                        {
-                            ECDomainParameters gParam = ECGost3410NamedCurves.GetByOid(oid);
-                            ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters(
-                                    oid,
-                                    gParam.Curve,
-                                    gParam.G,
-                                    gParam.N,
-                                    gParam.H,
-                                    gParam.GetSeed()), gostParams.PublicKeyParamSet, gostParams.DigestParamSet,
-                                gostParams.EncryptionParamSet);
-                        }
-                        else
-                        {
-                            ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters(
-                                    oid,
-                                    ecP.Curve,
-                                    ecP.G,
-                                    ecP.N,
-                                    ecP.H,
-                                    ecP.GetSeed()), gostParams.PublicKeyParamSet, gostParams.DigestParamSet,
-                                gostParams.EncryptionParamSet);
-                        }
+
+                        ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters(oid, ecP),
+                            gostParams.PublicKeyParamSet, gostParams.DigestParamSet,
+                            gostParams.EncryptionParamSet);
                     }
                     else if (parameters.IsImplicitlyCA)
                     {
@@ -266,15 +247,8 @@ namespace Org.BouncyCastle.Security
                     else
                     {
                         X9ECParameters ecP = X9ECParameters.GetInstance(parameters.Parameters);
-                        ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters(
-                                algOid,
-                                ecP.Curve,
-                                ecP.G,
-                                ecP.N,
-                                ecP.H,
-                                ecP.GetSeed()),
-                            gostParams.PublicKeyParamSet,
-                            gostParams.DigestParamSet,
+                        ecSpec = new ECGost3410Parameters(new ECNamedDomainParameters(algOid, ecP),
+                            gostParams.PublicKeyParamSet, gostParams.DigestParamSet,
                             gostParams.EncryptionParamSet);
                     }