Самый простой способ добавить SSL на сервер Windows на базе IOCP? - PullRequest
1 голос
/ 16 декабря 2010

У меня есть сервер на базе IOCP, который мы использовали долгое время. Теперь нам нужно добавить поддержку SSL к этому. Я изо всех сил пытаюсь найти чистое решение. Я нашел два варианта, предложенных в двух других темах -

1) Используйте openssl Memory BIO - но не нашли в сети примеров, работающих с портами IOCP, которые объясняют проблемы, возникающие из-за многопоточной природы IOCP. 2) Используйте Boost ASIO с ssl - который, я думаю, использует IOCP для внутреннего использования. Но нет примеров, показывающих, как могут храниться данные о состоянии соединения - например, на нашем сервере есть информация о состоянии, хранящаяся для каждого подключенного клиента, эта информация о состоянии используется для распознавания клиента и анализа, отправленного данными клиента соответственно.

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

ОБНОВЛЕНИЕ: я использую Simple C для реализации IOCP в библиотеке winsock2.

С наилучшими пожеланиями Ниладри

1 Ответ

2 голосов
/ 17 декабря 2010

Смотрите мой ответ здесь: Как мне использовать OpenSSL с WinSock?

Я написал статью, в которой есть код для использования OpenSSL с асинхронными сокетами. Код статьи показывает асинхронные сокеты MFC, но теория аналогична IOCP.

Я использовал вариант, представленный в статье, для поддержки OpenSSL, доступной как часть моей серверной инфраструктуры на основе IOCP; смотри здесь: http://www.serverframework.com/products---the-ssltls-using-openssl-option.html.

...