我正在尝试在Windows Mobile 6.5设备上使用Bouncy Castle v1.7。
我正在尝试执行以下代码:
ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");
在Windows Mobile设备上,代码会导致抛出以下异常:
“此版本的Microsoft .NET Compact Framework无法加载程序集System,Version = 1.0.5000.0,Culture = neutral,PublicKeyToken = B77A5C561934E089的版本。”
在经典桌面应用程序(使用整个.NET框架)上,此代码运行没有问题。
所以我猜测Bouncy Castle和Compact Framework之间存在不兼容性。 但是,对于版本1.2,Bouncy Castle C# index page说“ Source现在基于.NET Compact Framework 1.0构建”
我也尝试从源代码编译Bouncy Castle 我使用Visual Studio 2008编译它(必须使用以下编译符号转换项目并删除链接到引用但缺少的IDEA加密算法的类): NET_1_1; NETCF_2_0
当我引用编译产生的DLL并运行上面提到的代码(在设备上)时,我得到以下异常:
“未找到方法:GetSigner Org.BouncyCastle.Security.SignerUtilities。”
这似乎很奇怪,因为我在编码时在Visual Studio中获得了IntelliSense。
有人能告诉我如何在Compact Framework 3.5上运行Bouncy Castle吗?
非常感谢,
克里斯托夫
答案 0 :(得分:4)
我创建了所需的文件和put the SLN/CSPROJ files up on my blog。我创建了一个非常简单的测试应用程序,成功创建了一个ISigner实现实例。这是我的消费者代码:
class Program
{
static void Main(string[] args)
{
ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");
}
}