C# 解码PKCS#12文件
我正在寻找在.NET中解码PKCS#12文件的方法,我需要提取私钥和任何证书,以便通过编程访问以下内容C# 解码PKCS#12文件,c#,pfx,pkcs#12,C#,Pfx,Pkcs#12,我正在寻找在.NET中解码PKCS#12文件的方法,我需要提取私钥和任何证书,以便通过编程访问以下内容 模数 公众指数 私人指数 prime1 prime2 指数1 指数2 系数 我需要这些信息,以便我能够成功地使用PKCS#11在USB令牌上创建私钥和证书 我发现了一个用于输出这些数据的网站。当我发现分割PKCS#12个文件的功能尚未实现时,我非常激动。我想知道是否有人知道任何替代品 谢谢 Rohan如果您必须使用pinvoke访问win32加密库,请参阅此MSDN文章:您应该能够通过pi
- 模数
- 公众指数
- 私人指数
- prime1
- prime2
- 指数1
- 指数2
- 系数
Rohan如果您必须使用pinvoke访问win32加密库,请参阅此MSDN文章:您应该能够通过pinvoke直接使用OpenSSL。当OpenSSL.NET项目开始工作时,也许您可以为它做出贡献
win32 crypto providers是一个很好的替代方案,但它在解析和生成格式方面可能有点不灵活。我在最近的一个项目中,在其Java端口上扩展使用了bouncy castle API,它工作得非常出色,完美无缺 我打赌他们的C#没什么不同,它在目标方面做得非常好 为曼努埃尔干杯 我下载了Bouncy Castle API,很快就找到了我需要的东西。源代码包括大量的单元测试列表
static void Main(string[] args)
{
char[] password = new char[] {'p','a','s','s','w','o','r','d'};
using(StreamReader reader = new StreamReader(@"Test.pfx"))
{
Pkcs12Store store = new Pkcs12Store(reader.BaseStream,password);
foreach (string n in store.Aliases)
{
if(store.IsKeyEntry(n))
{
AsymmetricKeyEntry key = store.GetKey(n);
if(key.Key.IsPrivate)
{
RsaPrivateCrtKeyParameters parameters = key.Key as RsaPrivateCrtKeyParameters;
Console.WriteLine(parameters.PublicExponent);
}
}
}
}
}