有什么方法可以从 .c 和 .h 文件生成 JNI 文件吗?
我为 android 编译了 Openssl,但我不知道如何从 java 访问这些函数。我想我需要某种 JNI 文件。有没有办法从生成libssl.so和libcrypto.so相应的JNI文件>Openssl
.c 和 .h 文件。
I compiled Openssl
for android but I dont see how to access the functions from java. I think I need some kind of JNI files for that. Is there a way to generate the corresponding JNI files for the libssl.so and libcrypto.so from Openssl
.c and .h files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看看 swig。它应该能够生成必要的 Java 和 C 代码,以允许您从 Java 调用 openssl 标头中定义的本机函数。
您应该能够简单地执行以下操作:
您将拥有一些代表 openssl.h 接口的 java 类,并且您将拥有一个需要为 android 进行交叉编译的 c 包装器(就像您为 openssl 所做的那样)。
在另一个节点上,您可能想看看 Bouncy Castle。这是 Android 中包含的加密系统(可通过 javax.net 访问.ssl - 阅读该链接,听起来好像 openssl 已包含在 android 中)。
Take a look at swig. That should be able to generate the necessary Java and c-code, to allow you to call the native functions defined in the openssl header from Java.
You should simply be able to do:
And you will have some java classes representing the openssl.h interface, and you will have a c-wrapper that you need to crosscompile for android (like you have done for openssl).
On another node, you might want to take a look at Bouncy Castle. This is the crypto system included in android (and accessible through javax.net.ssl - reading that link it sounds like openssl is included in android already).