Verify Message
Verifies the S/MIME signature of a MIME message.
Code
using DRIT.Mail.Rfc.Mime;
using DRIT.Mail.Rfc.SMime;
MimeMessage message = MimeMessage.Load("signed.eml");
var verifier = new SMimeVerifier();
SMimeVerificationResult result = verifier.Verify(message);
Console.WriteLine($"Status: {result.Status}");
foreach (SMimeSignatureInfo signature in result.Signatures)
{
Console.WriteLine($" Signer: {signature.SignerCertificate?.Subject}");
Console.WriteLine($" Digest: {signature.DigestAlgorithm}");
Console.WriteLine($" Valid from: {signature.SignerCertificate?.NotBefore}");
Console.WriteLine($" Valid to: {signature.SignerCertificate?.NotAfter}");
}
Remarks
SMimeVerifier validates both detached (multipart/signed) and opaque
(application/pkcs7-mime) S/MIME signatures. The signer certificate chain
is validated against the system trust store by default.