CertId
using Org.BouncyCastle.Asn1.X509;
using System;
namespace Org.BouncyCastle.Asn1.Crmf
{
public class CertId : Asn1Encodable
{
private readonly GeneralName m_issuer;
private readonly DerInteger m_serialNumber;
public virtual GeneralName Issuer => m_issuer;
public virtual DerInteger SerialNumber => m_serialNumber;
public static CertId GetInstance(object obj)
{
if (obj == null)
return null;
CertId certId = obj as CertId;
if (certId != null)
return certId;
return new CertId(Asn1Sequence.GetInstance(obj));
}
public static CertId GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
return new CertId(Asn1Sequence.GetInstance(obj, isExplicit));
}
public static CertId GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
{
return new CertId(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
}
private CertId(Asn1Sequence seq)
{
int count = seq.Count;
if (count != 2)
throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
m_issuer = GeneralName.GetInstance(seq[0]);
m_serialNumber = DerInteger.GetInstance(seq[1]);
}
public CertId(GeneralName issuer, DerInteger serialNumber)
{
if (issuer == null)
throw new ArgumentNullException("issuer");
m_issuer = issuer;
if (serialNumber == null)
throw new ArgumentNullException("serialNumber");
m_serialNumber = serialNumber;
}
public override Asn1Object ToAsn1Object()
{
return new DerSequence(m_issuer, m_serialNumber);
}
}
}