我正在尝试使用 Bouncy Castle v1.7在 Windows Mobile 6.5 设备上。
我正在尝试执行以下代码:
ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");
使用 Bouncy CaSTLe 二进制文件
在 Windows Mobile 设备上,代码会引发以下异常:
"The version of the assembly System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 cannot be loaded by this version of the Microsoft .NET Compact Framework."
在经典桌面应用程序(使用整个 .NET 框架)上,此代码可以毫无问题地运行。
所以我猜测 Bouncy CaSTLe 和 Compact Framework 之间存在不兼容的问题。
然而 Bouncy Castle C# index page对 1.2 版说“Source 现在基于 .NET Compact Framework 1.0 构建”
从源代码编译 Bouncy CaSTLe
我还尝试从其源代码编译 Bouncy CaSTLe。
我使用 Visual Studio 2008 编译它(必须转换项目并删除链接到 IDEA 加密算法的类,这些算法被引用但缺失),并带有以下编译符号: NET_1_1;NETCF_2_0
当我引用编译产生的 DLL 并运行上面提到的代码(在设备上)时,我得到以下异常:
"Method not found: GetSigner Org.BouncyCastle.Security.SignerUtilities."
这看起来很奇怪,因为我在编码时在 Visual Studio 中获得了 IntelliSense。
有人能告诉我如何让 Bouncy CaSTLe 在 Compact Framework 3.5 上运行吗?
非常感谢,
克里斯托夫
最佳答案
我创建了所需的文件和put the SLN/CSPROJ files up on my blog .我创建了一个非常简单的测试应用程序,它成功地创建了一个 ISigner 实现实例。这是我的消费者代码:
class Program
{
static void Main(string[] args)
{
ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");
}
}
关于compact-framework - 将 Bouncy CaSTLe 库与 .NET Compact Framework 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6859886/