【发布时间】: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