Ответ 1
Вам нужно использовать SSLEngine
, как описано в Неблокирующий ввод-вывод с SSLEngine. Библиотеки, о которых вы упоминаете, используют его или используют библиотеки, которые его используют.
(Обратите внимание, что это, как известно, трудно использовать.)
Вы можете найти эти ссылки интересными:
- Этот ответ (который также содержит ссылку на книгу).
- Заметки от Jean-François Arcand, которые внедрили его в Grizzly.
- пример типа проблем, которые вы можете получить с асинхронным SSL/TLS.
- Знакомство с проблемами, упомянутыми в этих этом вопросе, также должно быть релевантным (в частности, как справиться с ними в асинхронном режиме).
- Simple Framework также поддерживает асинхронный SSL/TLS.
Для датаграмм вы должны изучить DTLS вместо TLS. Я не уверен в его статусе реализации на Java, но вы можете прорыть архивы списка рассылки java.openjdk.security.devel
.