From ea97e77307f5e2b6f119250a1542ccea24446fc7 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Mon, 4 Sep 2017 17:30:13 +0700 Subject: Support INTEGER encoding when reading GOST private keys - see https://github.com/bcgit/bc-csharp/pull/86 --- crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'crypto/src/asn1') diff --git a/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs b/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs index 10c45ba4d..ea42a1ec4 100644 --- a/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs +++ b/crypto/src/asn1/cryptopro/GOST3410PublicKeyAlgParameters.cs @@ -22,16 +22,9 @@ namespace Org.BouncyCastle.Asn1.CryptoPro object obj) { if (obj == null || obj is Gost3410PublicKeyAlgParameters) - { - return (Gost3410PublicKeyAlgParameters) obj; - } - - if (obj is Asn1Sequence) - { - return new Gost3410PublicKeyAlgParameters((Asn1Sequence) obj); - } + return (Gost3410PublicKeyAlgParameters)obj; - throw new ArgumentException("Invalid GOST3410Parameter: " + Platform.GetTypeName(obj)); + return new Gost3410PublicKeyAlgParameters(Asn1Sequence.GetInstance((obj))); } public Gost3410PublicKeyAlgParameters( -- cgit 1.5.1 From a610e3ed96f70969d21b57f453435d3a95bbe8ed Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Mon, 4 Sep 2017 17:32:10 +0700 Subject: Update handling of implicitly-tagged OIDs (from bc-java) --- crypto/src/asn1/DerObjectIdentifier.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'crypto/src/asn1') diff --git a/crypto/src/asn1/DerObjectIdentifier.cs b/crypto/src/asn1/DerObjectIdentifier.cs index 6ac2b7e9e..495260a68 100644 --- a/crypto/src/asn1/DerObjectIdentifier.cs +++ b/crypto/src/asn1/DerObjectIdentifier.cs @@ -42,7 +42,14 @@ namespace Org.BouncyCastle.Asn1 Asn1TaggedObject obj, bool explicitly) { - return GetInstance(obj.GetObject()); + Asn1Object o = obj.GetObject(); + + if (explicitly || o is DerObjectIdentifier) + { + return GetInstance(o); + } + + return FromOctetString(Asn1OctetString.GetInstance(o).GetOctets()); } public DerObjectIdentifier( -- cgit 1.5.1