【问题标题】:PKCS12 Client Certificate in C# with BouncyCastleC# 中的 PKCS12 客户端证书与 BouncyCastle
【发布时间】:2013-01-14 16:52:09
【问题描述】:

我需要为 Windows Phone 应用程序使用证书客户端 .pkcs12。 我不能使用 X509Certificate 类,因为不允许使用 PKCS12。所以我下载了 BouncyCastle 类并制作了这个

try
{
    FileStream Cert = new FileStream 
                           ("certificate.pkcs12",FileMode.Open,FileAccess.Read);
    char[] password = new char[] { 'p','a','s','s','w','o','r','d' };
    Pkcs12Store certificate = new Pkcs12Store(Cert,password);
}     
catch (Exception e)
{
    Console.WriteLine(e.Message);
 }

我得到这个异常:

 {System.TypeInitializationException: 
   The type initializer for 'Org.BouncyCastle.Asn1.Pkcs.PkcsObjectIdentifiers' 
    threw an exception. --->
     System.IO.FileNotFoundException: Could not load file or assembly 

【问题讨论】:

  • InnerException 说明了什么?
  • 内部异常:+ InnerException {System.IO.FileNotFoundException:无法加载文件或程序集“系统,版本=1.0.5000.0,文化=中性,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该系统找不到指定的文件。文件名:Org.BouncyCastle.Asn1.DerObjectIdentifier..ctor(String identifier) at Org.BouncyCastle.Asn1.Pkcs.PkcsObjectIdentifiers..cctor() 的“系统,版本=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089” } System.Exception {System.IO.FileNotFoundException}
  • 要么你的项目没有引用系统,要么这个 dll 用于错误的框架版本,可能需要编译,也许它是一个通用 dll,它使用/引用了 windows phone 所做的事情不支持。
  • 请澄清您所说的“下载了 BouncyCastle 类”是什么意思。为 BC 提供的二进制文件未针对 Windows Phone 编译。从 1.7 版本开始,您需要自己构建库(或仅在项目中包含代码),以针对适当的平台。参见例如awkwardcoder.blogspot.com/2011/08/…
  • 太棒了。对于未来的读者,我们打算为下一个版本提供官方的可移植类库版本(也通过 NuGet)。

标签: c# certificate bouncycastle pkcs#12


【解决方案1】:

由于这是一个 FileNotFoundException,我可能与 BouncyCastle 无关。您确定文件在正确的位置并且使用了正确的文件名吗?

【讨论】:

  • 感谢您的回答!我确定我将文件放在正确的位置并且我使用了正确的名称,因为我在 FileStream 行上没有错误。 Pkcs12Store指令出现异常错误。
猜你喜欢
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2019-10-25
  • 2015-04-17
  • 2012-05-01
  • 2014-09-05
  • 1970-01-01
相关资源
最近更新 更多