private static SignedCms EnsureCertificatesInCertificatesCollection( SignedCms timestamp, IReadOnlyList <X509Certificate2> chain) { using (ICms timestampCms = CmsFactory.Create(timestamp.Encode())) { timestampCms.AddCertificates( chain.Where(certificate => !timestamp.Certificates.Contains(certificate))); var bytes = timestampCms.Encode(); var updatedCms = new SignedCms(); updatedCms.Decode(bytes); return(updatedCms); } }