我创建了一个代码,它加载公钥并且应该将数据加载到DSACryptoServiceProvIDer中:
DSA dsa; using (StreamReader rdr = new StreamReader(@"pubkey.pem")) { PemReader pr = new PemReader(rdr); DsaPublicKeyParameters o = pr.Readobject() as DsaPublicKeyParameters; CspParameters prm = new CspParameters(13); prm.Flags = System.Security.Cryptography.CspProvIDerFlags.UseMachineKeyStore; //o.Parameters. dsa = new DSACryptoServiceProvIDer(prm); DSAParameters dp = new DSAParameters(); dp.G = o.Parameters.G.ToByteArray(); dp.P = o.Parameters.P.ToByteArray(); dp.Q = o.Parameters.Q.ToByteArray(); dp.Y = o.Y.ToByteArray(); if (o.Parameters.ValIDationParameters != null) { dp.Counter = o.Parameters.ValIDationParameters.Counter; dp.Seed = o.Parameters.ValIDationParameters.GetSeed(); } //todo: missing: J,X? dsa.importParameters(dp); }
它在dsa.importParameters(dp)上崩溃;以下异常:加密异常:错误数据.
我应该改变什么才能工作?
@H_404_20@解决方法 你需要使用ToByteArrayUnsigned方法而不是普通的ToByteArray方法,否则有些情况下字节数组表示最后会有一个前导零字节,它会破坏所有内容:) 总结以上是内存溢出为你收集整理的谁能给我一个使用BouncyCastle将.pem公共DSA密钥导入c#的例子?全部内容,希望文章能够帮你解决谁能给我一个使用BouncyCastle将.pem公共DSA密钥导入c#的例子?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)