使用带有.NET Compact Framework的Bouncy Castle库

时间:2011-07-28 13:40:30

标签: compact-framework bouncycastle signature

我正在尝试在Windows Mobile 6.5设备上使用Bouncy Castle v1.7

我正在尝试执行以下代码:

ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");

使用Bouncy Castle二进制文件

在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

我也尝试从源代码编译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吗?

非常感谢,
克里斯托夫

1 个答案:

答案 0 :(得分:4)

我创建了所需的文件和put the SLN/CSPROJ files up on my blog。我创建了一个非常简单的测试应用程序,成功创建了一个ISigner实现实例。这是我的消费者代码:

class Program
{
    static void Main(string[] args)
    {
        ISigner signer = SignerUtilities.GetSigner("SHA256withRSA"); 
    }
}