Как использовать GnuTLS с Java и C - PullRequest
1 голос
/ 27 февраля 2012

Я хочу создать Java-сервер, который может безопасно общаться с клиентом C по сети.Я решил использовать GnuTLS для криптографической библиотеки.Проблема в том, что GnuTLS написан на C. У меня есть два вопроса: 1. Можно ли использовать Java с GnuTLS с использованием JNI?2. Можно ли использовать внутренний криптографический пакет Java для серверной части, а GnuTLS и C - для клиентской?Будут ли они совместимы?

1 Ответ

4 голосов
/ 27 февраля 2012

TLS 1.0 , 1.1 и 1.2 являются стандартами IETF, которые специально разработаны таким образом, чтобы их реализации могли взаимодействовать (на практике большинство SSL / Библиотеки TLS также будут включать поддержку SSLv3 как минимум). Это происходит все время, когда вы подключаетесь к веб-серверу (например, запускаете Apache с поддержкой OpenSSL) из браузера, который обычно не использует свои стеки SSL / TLS (например, IE, Firefox и Safari используют разные библиотеки SSL / TLS).

Возможно, можно использовать GnuTLS с JNI из Java, но я не уверен, что оно того стоит. У Java уже есть JSSE .

Причиной проблемы могут быть версия TLS, которую вы планируете использовать, и поддержка комплектов шифров.

В Oracle JRE используется поставщик Sun. То, что поддерживается, описано в документации поставщика SunJSSE для Java 6 и для Java 7 (в частности, TLS 1.1 и 1.2 не поддерживаются в Java 6). Существуют также таблицы, показывающие, что поддерживается различными реализациями в Википедии , но вам также может понадобиться посмотреть документацию для конкретной версии, которую вы хотите использовать для получения точных данных.

Например, можно подключиться к серверу Java (например, Jetty), работающему на JRE Java 6 из cURL, скомпилированного с GnuTLS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...