- Create and Verify Digital Signatures using .NET Digital Signature Library
- .NET Digital Signature Library Code Samples
- Download .NET Digital Signature Library with all samples
void DigitallySignXMLDocument(string unsignedDocument, string signedDocument)
{
XmlSignatureSha256 cs = new XmlSignatureSha256("");
//Load the signature certificate from a PFX or P12 file
X509Certificate2 cert = new X509Certificate2("cert.pfx", "123456", X509KeyStorageFlags.Exportable);
//Load the certificate from Microsoft Store.
//The smart card or USB token certificates are usually available on Microsoft Certificate Store (start - run - certmgr.msc).
//If the smart card certificate not appears on Microsoft Certificate Store it cannot be used by the library
//cs.DigitalSignatureCertificate = DigitalCertificate.LoadCertificate(false, string.Empty, "Select Certificate", "Select the certificate for digital signature");
//The smart card PIN dialog can be bypassed for some smart cards/USB Tokens.
//DigitalCertificate.SmartCardPin = "123456";
cs.DigitalSignatureCertificate = cert;
cs.IncludeKeyInfo = true;
cs.IncludeSignatureCertificate = true;
cs.RemoveWhitespaces = true;
cs.SignatureType = XmlSignatureType.DefaultWithComments;
//apply the digital signature
cs.ApplyDigitalSignature(unsignedDocument, signedDocument);
}
void VerifyXMLSignature(string signedDocument)
{
XmlSignature cv = new XmlSignature("");
Console.WriteLine("Number of signatures: " + cv.GetNumberOfSignatures(signedDocument));
//verify the signature
Console.WriteLine("Signature validity status: " + cv.VerifyDigitalSignature(signedDocument));
//signature algorithm
Console.WriteLine("Signature algorithm: " + cv.GetSignatureAlgorithm(signedDocument));
}
See also: