Структура Android SSL JNI?

1

Я смотрел пакет 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.

Кто-нибудь сможет рассказать мне, как провайдер связан с абстрактными классами, учитывая, что пользователь вызывает абстрактные классы непосредственно из своего кода. Я думал, что обычно пользователь будет вызывать подкласс, но в этом случае это выглядит наоборот.

Спасибо,
Крис

  • 0
    Может быть, это как-то связано с провайдером JAVA? Что означает, что пакет apache / harmony является «поставщиком» услуг для пакета javax.net.ssl? Если да, то как это связано?
Теги:
jni

1 ответ

0
Лучший ответ

Хорошо, после некоторых исследований, я думаю, что у меня моя голова обернулась вокруг этого. Похоже, Apache Harmony выступает в качестве поставщика безопасности Java для пакета javax.net.ssl.

Поскольку OpenSSL используется под капотом, JNI должен использоваться, чтобы позволить Java разговаривать с кодом C OpenSSL.

Поставщик определяется в файле с именем "java.security", и хороший обзор добавления поставщика на Java можно найти по этой ссылке: http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню