【发布时间】:2014-04-15 11:23:15
【问题描述】:
我必须在 java 中调用 openssl 方法,例如 android.external.openssl.crypto.pkcs7.PKCS7_encrypt() 方法。我发现这个没有 JNI 实现。所以我必须写JNI层。 如果我错了,请纠正我。
所以我学习了基本的 JNI。我发现如果我想在 java 中调用一个方法,例如 search(),那么 C 中的方法定义将类似于 Java_packageNameOfJavaFile_JavaClassName_method()。 Mehotd 名称表示 c/c++ 库实现必须在为本地方法创建头文件(*.h 文件)后完成。
我的困惑是,如果我想使用 inbuild 库(openssl 库)这些方法不包括上面提到的命名约定,那么我应该如何在 Java 中调用这些方法。
【问题讨论】:
-
"如何在 Java 中调用 OpenSSL 方法?" - 不!使用另一个加密库。
-
为什么? Java 中内置了很多加密。你可能不需要任何外部的东西,如果你这样做了,它可能会在 BouncyCastle 中找到。
-
使用
javah创建 Java 错位名称。 -
EJP - 他可能需要 FIPS。据我所知,没有一个免费的 Java 加密库提供它。那些不是免费的,可能会被美国间谍机构(RSA Data Security 的 BSAFE)渗透。
-
@jww 他可能会,也可能不会。由他来告诉我们。我对猜测不太感兴趣。
标签: java android openssl java-native-interface