Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/X9/X962Parameters.cs
2025-10-09 09:57:24 +09:00

59 lines
1.1 KiB
C#

using System;
namespace Org.BouncyCastle.Asn1.X9;
public class X962Parameters : Asn1Encodable, IAsn1Choice
{
private readonly Asn1Object _params;
public bool IsNamedCurve => _params is DerObjectIdentifier;
public bool IsImplicitlyCA => _params is Asn1Null;
public Asn1Object Parameters => _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 ex)
{
throw new ArgumentException("unable to parse encoded data: " + ex.Message, ex);
}
}
throw new ArgumentException("unknown object in getInstance()");
}
public X962Parameters(X9ECParameters ecParameters)
{
_params = ecParameters.ToAsn1Object();
}
public X962Parameters(DerObjectIdentifier namedCurve)
{
_params = namedCurve;
}
public X962Parameters(Asn1Object obj)
{
_params = obj;
}
public override Asn1Object ToAsn1Object()
{
return _params;
}
}