init commit
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using Org.BouncyCastle.Asn1.Crmf;
|
||||
using Org.BouncyCastle.Utilities;
|
||||
|
||||
namespace Org.BouncyCastle.Asn1.Cmp;
|
||||
|
||||
public class CertOrEncCert : Asn1Encodable, IAsn1Choice
|
||||
{
|
||||
private readonly CmpCertificate certificate;
|
||||
|
||||
private readonly EncryptedValue encryptedCert;
|
||||
|
||||
public virtual CmpCertificate Certificate => certificate;
|
||||
|
||||
public virtual EncryptedValue EncryptedCert => encryptedCert;
|
||||
|
||||
private CertOrEncCert(Asn1TaggedObject tagged)
|
||||
{
|
||||
if (tagged.TagNo == 0)
|
||||
{
|
||||
certificate = CmpCertificate.GetInstance(tagged.GetObject());
|
||||
return;
|
||||
}
|
||||
if (tagged.TagNo == 1)
|
||||
{
|
||||
encryptedCert = EncryptedValue.GetInstance(tagged.GetObject());
|
||||
return;
|
||||
}
|
||||
throw new ArgumentException("unknown tag: " + tagged.TagNo, "tagged");
|
||||
}
|
||||
|
||||
public static CertOrEncCert GetInstance(object obj)
|
||||
{
|
||||
if (obj is CertOrEncCert)
|
||||
{
|
||||
return (CertOrEncCert)obj;
|
||||
}
|
||||
if (obj is Asn1TaggedObject)
|
||||
{
|
||||
return new CertOrEncCert((Asn1TaggedObject)obj);
|
||||
}
|
||||
throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
|
||||
}
|
||||
|
||||
public CertOrEncCert(CmpCertificate certificate)
|
||||
{
|
||||
if (certificate == null)
|
||||
{
|
||||
throw new ArgumentNullException("certificate");
|
||||
}
|
||||
this.certificate = certificate;
|
||||
}
|
||||
|
||||
public CertOrEncCert(EncryptedValue encryptedCert)
|
||||
{
|
||||
if (encryptedCert == null)
|
||||
{
|
||||
throw new ArgumentNullException("encryptedCert");
|
||||
}
|
||||
this.encryptedCert = encryptedCert;
|
||||
}
|
||||
|
||||
public override Asn1Object ToAsn1Object()
|
||||
{
|
||||
if (certificate != null)
|
||||
{
|
||||
return new DerTaggedObject(explicitly: true, 0, certificate);
|
||||
}
|
||||
return new DerTaggedObject(explicitly: true, 1, encryptedCert);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user