private static void CheckData2(byte[] data)
{
try
{
SignedCms signedMessage = new SignedCms();
signedMessage.Decode(data); //Hier werden die signierten Daten dekordiert und in SignedMessage geschrieben
signedMessage.CheckSignature(true); // überprüfen der Signatur
//Hier werden nun die Zertifikat-Überprüfungs-Parameter gesetzt
X509Chain chain = new X509Chain();
chain.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
chain.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
chain.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(0, 0, 30);
//Und hier endlich die Überprüfen des Zertifikats
chain.Build(signedMessage.SignerInfos[0].Certificate);
foreach (X509ChainStatus status in chain.ChainStatus)
{
Console.WriteLine(status.Status); //Status der Überprüfung ausgeben
}
}
catch (
Exception ex)
{
Console.WriteLine(ex);
}
}