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

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;
}
}