CertificateConfirmationContent
using Org.BouncyCastle.Asn1.Cmp;
using Org.BouncyCastle.Cms;
using Org.BouncyCastle.Operators.Utilities;
using System;
namespace Org.BouncyCastle.Cmp
{
public class CertificateConfirmationContent
{
private readonly CertConfirmContent m_content;
private readonly IDigestAlgorithmFinder m_digestAlgorithmFinder;
public static CertificateConfirmationContent FromPkiBody(PkiBody pkiBody)
{
return FromPkiBody(pkiBody, DefaultDigestAlgorithmFinder.Instance);
}
public static CertificateConfirmationContent FromPkiBody(PkiBody pkiBody, IDigestAlgorithmFinder digestAlgorithmFinder)
{
if (!IsCertificateConfirmationContent(pkiBody.Type))
throw new ArgumentException("content of PKIBody wrong type: " + pkiBody.Type.ToString());
return new CertificateConfirmationContent(CertConfirmContent.GetInstance(pkiBody.Content), digestAlgorithmFinder);
}
public static bool IsCertificateConfirmationContent(int bodyType)
{
return 24 == bodyType;
}
public CertificateConfirmationContent(CertConfirmContent content)
: this(content, DefaultDigestAlgorithmFinder.Instance)
{
}
[Obsolete("Use constructor taking 'IDigestAlgorithmFinder' instead")]
public CertificateConfirmationContent(CertConfirmContent content, DefaultDigestAlgorithmIdentifierFinder digestAlgFinder)
: this(content, (IDigestAlgorithmFinder)digestAlgFinder)
{
}
public CertificateConfirmationContent(CertConfirmContent content, IDigestAlgorithmFinder digestAlgorithmFinder)
{
m_content = content;
m_digestAlgorithmFinder = digestAlgorithmFinder;
}
public CertConfirmContent ToAsn1Structure()
{
return m_content;
}
public CertificateStatus[] GetStatusMessages()
{
return Array.ConvertAll(m_content.ToCertStatusArray(), (CertStatus element) => new CertificateStatus(m_digestAlgorithmFinder, element));
}
}
}