52 lines
1.1 KiB
C#
52 lines
1.1 KiB
C#
using System;
|
|
using Org.BouncyCastle.Utilities;
|
|
|
|
namespace Org.BouncyCastle.Asn1.Esf;
|
|
|
|
public class SignaturePolicyIdentifier : Asn1Encodable, IAsn1Choice
|
|
{
|
|
private readonly SignaturePolicyId sigPolicy;
|
|
|
|
public SignaturePolicyId SignaturePolicyId => sigPolicy;
|
|
|
|
public static SignaturePolicyIdentifier GetInstance(object obj)
|
|
{
|
|
if (obj == null || obj is SignaturePolicyIdentifier)
|
|
{
|
|
return (SignaturePolicyIdentifier)obj;
|
|
}
|
|
if (obj is SignaturePolicyId)
|
|
{
|
|
return new SignaturePolicyIdentifier((SignaturePolicyId)obj);
|
|
}
|
|
if (obj is Asn1Null)
|
|
{
|
|
return new SignaturePolicyIdentifier();
|
|
}
|
|
throw new ArgumentException("Unknown object in 'SignaturePolicyIdentifier' factory: " + Platform.GetTypeName(obj), "obj");
|
|
}
|
|
|
|
public SignaturePolicyIdentifier()
|
|
{
|
|
sigPolicy = null;
|
|
}
|
|
|
|
public SignaturePolicyIdentifier(SignaturePolicyId signaturePolicyId)
|
|
{
|
|
if (signaturePolicyId == null)
|
|
{
|
|
throw new ArgumentNullException("signaturePolicyId");
|
|
}
|
|
sigPolicy = signaturePolicyId;
|
|
}
|
|
|
|
public override Asn1Object ToAsn1Object()
|
|
{
|
|
if (sigPolicy != null)
|
|
{
|
|
return sigPolicy.ToAsn1Object();
|
|
}
|
|
return DerNull.Instance;
|
|
}
|
|
}
|