3

在 Java 中,可以通过编辑 JRE 或 JDK 的安全策略文件来静态注册像BouncyCastle 这样的安全提供者,或者通过以编程方式添加提供者来动态注册。

当像 BouncyCastle 这样的 java 安全提供程序使用IKVM转换为 C# 可调用 dll时,可以通过添加对以下 C# 代码的引用,然后IKVM.OpenJDK.Core通过dll 继续使用 BouncyCastle 。IKVM.OpenJDK.Security

java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

我知道 BouncyCastle 的源代码已经以 C# 的形式提供。但是,我需要将我自己用 Java 编写的加密库转换为可在 C# 中使用,因此我需要利用IKVM来实现这一点。我已经可以通过将我的加密库从 jar 转换为 dll 并使用如上所述的动态方法来做到这一点。

只是想知道是否可以像在 Java 中一样使用IKVM静态注册提供程序。有任何想法吗?

4

1 回答 1

0

有同样的问题,无法找到静态方法。最终重新编译了整个 IKVM 项目以使 BouncyCastle 提供程序工作。- 下载 IKVM 的源项目(https://sourceforge.net/projects/ikvm/files/ikvm/7.2.4630.5/ikvmsrc-7.2.4630.5.zip/download) - 在项目内部有一个 HOWTO 文件,其中包含编译说明. 第一步说“这个 IKVM.NET 源包需要 OpenJDK 7u6 b24 源(和构建工件)。”,因此您可以手动编辑该 OpenJDK 中的“lib/security/java.security”并添加 security.provider.XX =org.bouncycastle.jce.provider.BouncyCastleProvider,然后按照其余步骤重新编译项目。

于 2021-01-29T21:37:01.340 回答