コード例 #1
0
        public CadesSignatureModel(CadesSignature signature, ICadesPolicyMapperBySignerInfo policyMapper = null)
        {
            HasEncapsulatedContent = signature.HasEncapsulatedContent;
            EncapsulatedContent    = signature.GetEncapsulatedContent();

            // Convert signers validating each one.
            Signers = signature.Signers.Select(s => {
                // Validate signature according to the provided policy.
                if (policyMapper != null)
                {
                    var vr = signature.ValidateSignature(s, policyMapper);
                    return(new CadesSignerModel(s)
                    {
                        ValidationResults = new ValidationResultsModel(vr)
                    });
                }
                return(new CadesSignerModel(s));
            }).ToList();

            var contentType = signature.EncapsulatedContentType;

            if (contentType == CmsContentType.Data)
            {
                EncapsulatedContentType = CmsContentTypes.Data;
            }
            else if (contentType == CmsContentType.SignedData)
            {
                EncapsulatedContentType = CmsContentTypes.SignedData;
            }
            else if (contentType == CmsContentType.DigestedData)
            {
                EncapsulatedContentType = CmsContentTypes.DigestedData;
            }
            else if (contentType == CmsContentType.EncryptedData)
            {
                EncapsulatedContentType = CmsContentTypes.EncryptedData;
            }
            else if (contentType == CmsContentType.AuthenticatedData)
            {
                EncapsulatedContentType = CmsContentTypes.AuthenticatedData;
            }
            else if (contentType == CmsContentType.TstInfo)
            {
                EncapsulatedContentType = CmsContentTypes.TstInfo;
            }
        }