PolicyInformation
using System;
namespace Org.BouncyCastle.Asn1.X509
{
public class PolicyInformation : Asn1Encodable
{
private readonly DerObjectIdentifier m_policyIdentifier;
private readonly Asn1Sequence m_policyQualifiers;
public DerObjectIdentifier PolicyIdentifier => m_policyIdentifier;
public Asn1Sequence PolicyQualifiers => m_policyQualifiers;
public static PolicyInformation GetInstance(object obj)
{
if (obj == null)
return null;
PolicyInformation policyInformation = obj as PolicyInformation;
if (policyInformation != null)
return policyInformation;
return new PolicyInformation(Asn1Sequence.GetInstance(obj));
}
public static PolicyInformation GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new PolicyInformation(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
}
public static PolicyInformation GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new PolicyInformation(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private PolicyInformation(Asn1Sequence seq)
{
int count = seq.Count;
if (count < 1 || count > 2)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_policyIdentifier = DerObjectIdentifier.GetInstance(seq[0]);
m_policyQualifiers = ((count < 2) ? null : Asn1Sequence.GetInstance(seq[1]));
}
public PolicyInformation(DerObjectIdentifier policyIdentifier)
: this(policyIdentifier, null)
{
}
public PolicyInformation(DerObjectIdentifier policyIdentifier, Asn1Sequence policyQualifiers)
{
if (policyIdentifier == null)
throw new ArgumentNullException("policyIdentifier");
m_policyIdentifier = policyIdentifier;
m_policyQualifiers = policyQualifiers;
}
public override Asn1Object ToAsn1Object()
{
if (m_policyQualifiers != null)
return new DerSequence(m_policyIdentifier, m_policyQualifiers);
return new DerSequence(m_policyIdentifier);
}
}
}