Подтвердить что ты не робот

Поиск библиотеки SSL на высоком уровне

Сегодня я проверил немало библиотек SSL. OpenSSL выглядит хорошо, но не хватает документации, как и большинство из них. Я думал, что попал в джек-пот, когда нашел NetSieben SSL С++ Library (http://www.netsieben.com/products/ssh/index.phtml), но после нескольких часов я не могу его собрать. Он говорит, что ему нужен Botan lib, но абсолютно никакой информации о том, как связать его с Botan или что-то еще.

Итак, я ищу довольно простую в использовании библиотеку SSL. Я просто использую его для клиентского приложения для подключения к уже существующему серверу.

4b9b3361

Ответ 1

Вам может понравиться CyaSSL, что является еще одной реализацией SSL. Вы можете скачать его на http://www.yassl.com.

Ответ 2

Чтобы дать более полный ответ: Существует несколько библиотек SSL, которые лучше документированы, чем OpenSSL, что, как известно, плохо.

Если вы посмотрите на грандиозную картинку, реальными альтернативами в качестве библиотеки SSL являются Botan, PolarSSL, Mozilla NSS, Wolf и GnuTLS.

Все, кроме Botan, не являются С++, поэтому у них нет хороших объектов С++ и управления ресурсами.

Мой персональный предпочтительнее использовать SSL-библиотеку PolarSSL из-за читаемости кода, документации API в заголовке и просто общих хороших впечатлений. Он используется в некоторых крупных проектах FOSS, и у них есть своего рода государственная аккредитация.

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

Mozilla NSS является одним из старых, но он не поддерживает новые стандарты TLS 1.1 и TLS 1.2, которые они на самом деле должны делать.

Оба ботаника и CyaSSL также являются хорошими альтернативами. Документация Botan является тщательной в некоторых частях и, возможно, немного не хватает на других частях, но некоторые крупные проекты с открытым исходным кодом включают Botan и имеют хороший опыт работы с ним.

В общем, вы можете сделать намного лучше, чем OpenSSL с любым из них.

Надеюсь, это поможет!

Ответ 3

Boost.Asio предоставляет возможности SSL, обертывая OpenSSL. examples довольно просты, для клиентского кода это выглядит как this

ssl::context ctx(my_io_service, ssl::context::sslv23);
ctx.set_verify_mode(ssl::context::verify_peer);
ctx.load_verify_file("ca.pem");

ssl::stream<ip::tcp::socket> ssl_sock(my_io_service, ctx);
ip::tcp::socket::lowest_layer_type& sock = ssl_sock.lowest_layer();
sock.connect(my_endpoint);
sock.handshake();
sock.write(...);

Заметьте, существуют асинхронные методы async_connect и async_handshake и async_write тоже.

Ответ 5

Mozilla NSS - это относительно улучшенный документированный набор библиотек.