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