SignaturePolicyIdentifier
using System;
namespace Org.BouncyCastle.Asn1.Esf
{
public class SignaturePolicyIdentifier : Asn1Encodable, IAsn1Choice
{
private readonly SignaturePolicyId m_sigPolicy;
public SignaturePolicyId SignaturePolicyId => m_sigPolicy;
public static SignaturePolicyIdentifier GetInstance(object obj)
{
return Asn1Utilities.GetInstanceChoice(obj, GetOptional);
}
public static SignaturePolicyIdentifier GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return Asn1Utilities.GetInstanceChoice(taggedObject, declaredExplicit, GetInstance);
}
public static SignaturePolicyIdentifier GetOptional(Asn1Encodable element)
{
if (element == null)
throw new ArgumentNullException("element");
SignaturePolicyIdentifier signaturePolicyIdentifier = element as SignaturePolicyIdentifier;
if (signaturePolicyIdentifier != null)
return signaturePolicyIdentifier;
SignaturePolicyId optional = SignaturePolicyId.GetOptional(element);
if (optional != null)
return new SignaturePolicyIdentifier(optional);
if (Asn1Null.GetOptional(element) != null)
return new SignaturePolicyIdentifier();
return null;
}
public static SignaturePolicyIdentifier GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance);
}
public SignaturePolicyIdentifier()
{
m_sigPolicy = null;
}
public SignaturePolicyIdentifier(SignaturePolicyId signaturePolicyId)
{
if (signaturePolicyId == null)
throw new ArgumentNullException("signaturePolicyId");
m_sigPolicy = signaturePolicyId;
}
public override Asn1Object ToAsn1Object()
{
return m_sigPolicy?.ToAsn1Object() ?? DerNull.Instance;
}
}
}