You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

33 lines
1.1 KiB

using System.Security.Cryptography;
using com.hitrust.b2b.trustpay.client;
using System;
using System.Text;
using System.Security.Cryptography.X509Certificates;
namespace com.hitrust.b2b.Security
{
public class Signature
{
public int verifySignature(string aCertFile, string aMessage, string aBase64Signature)
{
X509Certificate certificate;
int num = 0;
try {
certificate = X509Certificate.CreateFromCertFile(aCertFile);
byte[] rgbSignature = new Base64().decode(aBase64Signature);
byte[] rgbHash = new SHA1Managed().ComputeHash(Encoding.GetEncoding("UTF-8").GetBytes(aMessage));
//certificate.PublicKey.ExportParameters(false);
RSACryptoServiceProvider publicKey = new RSACryptoServiceProvider();
publicKey.ImportParameters(new RSAParameters() { Exponent = certificate.GetPublicKey() });
if (!publicKey.VerifyHash(rgbHash, CryptoConfig.MapNameToOID("SHA1"), rgbSignature)) {
num = -1;
}
} catch (Exception exception) {
SupportClass.WriteStackTrace(exception, Console.Out);
num = 1;
}
return num;
}
}
}