<TrnResponse> <Transaction> <Type>TrnResponse</MessageType> <ReferenceNo>123456</ReferenceNo> <ClientName>ABCDI</ClientName> <TReferenceNo>111111</CTReferenceNo> <Mode>05</Mode> <Status>SUCCESSFUL</Status> <TRXDateTime>06-03-2012 13:16:21</TRXDateTime> <TRXID>001111222</TRXID> </Transaction> <Signature> <SignatureValue>MIAGCSqGSIb3DQEHAqCAMIIHlwIBATELMAkGBSsOAwIaBQAwCwYJKoZIhvcNAQcB</SignatureValue> </Signature> </TrnResponse>
XmlDocument Doc = new XmlDocument(); Doc.PreserveWhitespace = false; Doc.Load(@"d:\data.xml"); SignedXml signedXml = new SignedXml(Doc); XmlNodeList nodeList = Doc.GetElementsByTagName("Signature"); X509Certificate2 cert = GetRecipientCert(); // method returns public certificate RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PublicKey.Key; string publickey = cert.PublicKey.Key.ToXmlString(false); XmlNodeList xn1 = Doc.GetElementsByTagName("Transaction"); string license_code = xn1.Item(0).OuterXml.ToString(); ASCIIEncoding ByteConverter = new ASCIIEncoding(); byte[] verify_this = ByteConverter.GetBytes(license_code); string base64_encoded_signature = Doc.GetElementsByTagName("SignatureValue").Item(0).InnerText; byte[] signature = Convert.FromBase64String(base64_encoded_signature); bool ok = csp.VerifyData(verify_this, new SHA1CryptoServiceProvider(), signature);
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)