java - Android SSL JNI结构?

标签 java c android java-native-interface

我一直在研究 Android 的 javax.net.ssl 包,但仍然对它如何与底层 JNI 胶水一起工作感到困惑。

据我所知,javax.net.ssl 包(/libcore/x-net/src/main/java/javax/net/ssl)下的所有类都是抽象的,不直接实现功能。

上述所有功能都在 org.apache.harmony.xnet.provider.jsse 文件夹中实现(/libcore/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse),并且此实现调用底层 JNI C 代码。

假设用户直接从他们的代码中调用抽象类,谁能告诉我提供者如何链接到抽象类。我以为通常用户会调用子类,但在这种情况下似乎相反。

谢谢,
克里斯

最佳答案

好的,经过一些研究,我想我已经解决了这个问题。看起来 Apache Harmony 正在充当 javax.net.ssl 包的 Java 安全提供程序。

因为 OpenSSL 是在后台使用的,所以必须使用 JNI 来允许 Java 与 OpenSSL 的 C 代码对话。

提供程序在名为“java.security”的文件中定义,可以在以下链接中找到有关将提供程序添加到 Java 的详细概述:http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html

关于java - Android SSL JNI结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136672/

相关文章:

java - 在 spring 重试中仅处理自定义异常

java - 为什么这个 for 循环不起作用?

c - 为什么更新大数组会使 "change_protection"内核调用支配 CPU?

Android 测试模块(Gradle 插件 1.3)不起作用 : "debug-classes not found"

java - 使用 RMI 访问对象

java - 如何对ArrayList中的数组进行排序?

c - OpenGL glAttachShader 不工作

c - 表面和纹理的区别(SDL/通用)

android - 使用 BusyBox 挂载 ext2 SD 卡

android - 事件时区值