summary refs log tree commit diff
path: root/crypto/src/asn1/x9/X962Parameters.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/x9/X962Parameters.cs')
-rw-r--r--crypto/src/asn1/x9/X962Parameters.cs35
1 files changed, 35 insertions, 0 deletions
diff --git a/crypto/src/asn1/x9/X962Parameters.cs b/crypto/src/asn1/x9/X962Parameters.cs

index 5b7eaa1de..04a5c9cbe 100644 --- a/crypto/src/asn1/x9/X962Parameters.cs +++ b/crypto/src/asn1/x9/X962Parameters.cs
@@ -1,3 +1,5 @@ +using System; + using Org.BouncyCastle.Asn1; namespace Org.BouncyCastle.Asn1.X9 @@ -7,6 +9,34 @@ namespace Org.BouncyCastle.Asn1.X9 { private readonly Asn1Object _params; + public static X962Parameters GetInstance( + object obj) + { + if (obj == null || obj is X962Parameters) + { + return (X962Parameters)obj; + } + + if (obj is Asn1Object) + { + return new X962Parameters((Asn1Object)obj); + } + + if (obj is byte[]) + { + try + { + return new X962Parameters(Asn1Object.FromByteArray((byte[])obj)); + } + catch (Exception e) + { + throw new ArgumentException("unable to parse encoded data: " + e.Message, e); + } + } + + throw new ArgumentException("unknown object in getInstance()"); + } + public X962Parameters( X9ECParameters ecParameters) { @@ -30,6 +60,11 @@ namespace Org.BouncyCastle.Asn1.X9 get { return (_params is DerObjectIdentifier); } } + public bool IsImplicitlyCA + { + get { return (_params is Asn1Null); } + } + public Asn1Object Parameters { get { return _params; }