我有两个应用程序。一个用于签署文件,另一个用于验证。
签署应用程序执行以下操作:
"cert.pfx" 是使用 OpenSSL 生成的自签名证书。
验证应用程序:
据我所知,.pfx文件包含公钥和私钥信息,因此我不应该将其提供给任何人。我知道,在验证步骤中只需要公钥。如何在不暴露我的.pfx文件的情况下使用rsa.VerifyData或其他函数来验证签名呢?
签署应用程序执行以下操作:
X509Certificate2 certificate = new X509Certificate2(PROJECT_DIR_PATH + "cert.pfx", "password");
using (RSA rsa = certificate.GetRSAPrivateKey())
{
signature = rsa.SignData(exeContent, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);
}
"cert.pfx" 是使用 OpenSSL 生成的自签名证书。
验证应用程序:
X509Certificate2 certificate = new X509Certificate2(PROJECT_DIR_PATH + "cert.pfx", "password");
using (RSA rsa = certificate.GetRSAPublicKey())
{
return rsa.VerifyData(exeContentWithoutSignature, signature, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);
}
据我所知,.pfx文件包含公钥和私钥信息,因此我不应该将其提供给任何人。我知道,在验证步骤中只需要公钥。如何在不暴露我的.pfx文件的情况下使用rsa.VerifyData或其他函数来验证签名呢?