谁能给我一个使用BouncyCastle将.pem公共DSA密钥导入c#的例子?

谁能给我一个使用BouncyCastle将.pem公共DSA密钥导入c#的例子?,第1张

概述我正在尝试将.pem密钥导入c#,我找到了一个库,它可以做到: BouncyCastle 我创建了一个代码,它加载公钥并且应该将数据加载到DSACryptoServiceProvider中: DSA dsa; using (StreamReader rdr = new StreamReader(@"pubkey.pem")) { PemRe 我正在尝试将.pem密钥导入c#,我找到了一个库,它可以做到: BouncyCastle

我创建了一个代码,它加载公钥并且应该将数据加载到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#的例子?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1234074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存