diff options
Diffstat (limited to 'crypto/src/security/PrivateKeyFactory.cs')
-rw-r--r-- | crypto/src/security/PrivateKeyFactory.cs | 42 |
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); } |