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