diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2016-04-29 21:53:39 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2016-04-29 21:53:39 +0700 |
commit | bf135f987ab9b636bc583e7589c3270394d4b268 (patch) | |
tree | e7f79ff086faf297c3de8de6097921d0ed883408 /crypto | |
parent | Added IsCertification methods. (diff) | |
download | BouncyCastle.NET-ed25519-bf135f987ab9b636bc583e7589c3270394d4b268.tar.xz |
Support GetInstance from byte[]
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/src/asn1/DerBitString.cs | 11 | ||||
-rw-r--r-- | crypto/test/src/asn1/test/BitStringTest.cs | 16 |
2 files changed, 27 insertions, 0 deletions
diff --git a/crypto/src/asn1/DerBitString.cs b/crypto/src/asn1/DerBitString.cs index a3c2cee01..26adc575b 100644 --- a/crypto/src/asn1/DerBitString.cs +++ b/crypto/src/asn1/DerBitString.cs @@ -28,6 +28,17 @@ namespace Org.BouncyCastle.Asn1 { return (DerBitString) obj; } + if (obj is byte[]) + { + try + { + return (DerBitString)FromByteArray((byte[])obj); + } + catch (Exception e) + { + throw new ArgumentException("encoding error in GetInstance: " + e.ToString()); + } + } throw new ArgumentException("illegal object in GetInstance: " + Platform.GetTypeName(obj)); } diff --git a/crypto/test/src/asn1/test/BitStringTest.cs b/crypto/test/src/asn1/test/BitStringTest.cs index f2ae3de97..35b7811bc 100644 --- a/crypto/test/src/asn1/test/BitStringTest.cs +++ b/crypto/test/src/asn1/test/BitStringTest.cs @@ -86,10 +86,26 @@ namespace Org.BouncyCastle.Asn1.Tests //Fail("failed DL check"); Fail("failed BER check"); } + IAsn1String dl = BerBitString.GetInstance(dlData); + + //IsTrue("DL test failed", dl is DLBitString); + IsTrue("BER test failed", dl is BerBitString); if (!Arrays.AreEqual(derData, Asn1Object.FromByteArray(dlData).GetDerEncoded())) { Fail("failed DER check"); } + // TODO This test isn't applicable until we get the DL variants + //try + //{ + // DerBitString.GetInstance(dlData); + // Fail("no exception"); + //} + //catch (ArgumentException e) + //{ + // // ignore + //} + IAsn1String der = DerBitString.GetInstance(derData); + IsTrue("DER test failed", der is DerBitString); } public override void PerformTest() |