第326行中的RSACryptoServiceProvider.VerifyData异常

时间:2013-03-04 18:22:35

标签: c# nullreferenceexception rsacryptoserviceprovider

我在使用RSACryptoServiceProvider.VerifyData

时遇到问题
  

NullReferenceException:未将对象引用设置为的实例   宾语   System.Security.Cryptography.RSACryptoServiceProvider.VerifyData   (System.Byte [] buffer,System.Object halg,System.Byte [] signature)   (在   /Applications/buildAgent/work/3df08680c6f85295/mcs/class/corlib/System.Security.Cryptography/RSACryptoServiceProvider.cs:326)

您可以在RSACryptoServiceProvider.cs第326行中看到引发的异常 我仔细检查了所有params和rsa的创建 - 一切都好。 有什么想法吗?

我的代码:

X509Certificate2 x509 = null;
RSACryptoServiceProvider rsa = null;
byte[] certificate = Convert.FromBase64String( certificate_s );
x509 = new X509Certificate2( certificate );
rsa = (RSACryptoServiceProvider) x509.PublicKey.Key;
bool sha1Valid = rsa.VerifyData( data, CryptoConfig.MapNameToOID("SHA1"), signature );

1 个答案:

答案 0 :(得分:3)

解决。 halg param引起的错误 - CryptoConfig.MapNameToOID(" SHA1") 似乎在Unity C#scripting中它是非法的 必须使用HashAlgorithm.Create(" SHA1")