| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > boost::asio::ssl, авторизация на сервере по ключу |
| Автор: bsa 9.9.2009, 16:15 |
| Задача: нужно написать сервер, каждый клиент которого должен иметь свой собственный сертификат шифрования (т.е. авторизация по сертификату, как в ssh). Желательно сделать это через boost::asio. На данный момент (поковыряв этот asio) я решил, что проще всего сделать так: при подключении клиента получить у него некий идентификатор (логин), по этому идентификатору загрузить с диска необходимый публичный ключ (приватный хранится на стороне клиента) и после этого начать процедуру SSL:handshake... Возможно ли это? И как это сделать (меня интересуют процедуры авторизации по публичному ключу и преобразования обычного сокета в защищенный)? |
| Автор: andrew_121 9.9.2009, 16:57 |
да asio/examples/ssl/client.cpp тут отличный пример. Добавлено через 6 минут и 57 секунд дополню. В примерах, не используются загружаемые ключи. Нет надобности. Но если нужно, то можно. |
| Автор: andrew_121 9.9.2009, 17:20 |
| еще дополню. в asio::ssl::context(могу ошибаться), есть методы с постфиксом file. они это реализуют. нужно в доках уточнить... |
| Автор: bsa 9.9.2009, 19:44 |
| это я все видел. доки, если честно, просто жгут. Имхо, исходник был бы более информативным. Единственное, что спасает - примеры. Но опять же, хоть бы подсветку синтаксиса сделали... |
| Автор: andrew_121 9.9.2009, 21:05 |
да уж. так вот же: examples/ssl/server.cpp examples/ssl/client.cpp или что не так? |
| Автор: andrew_121 9.9.2009, 21:23 |
| Если использовать это: http://getunderstand.com/latest/understand/understand-b489-win32.exe можно получить такую картинку. http://ipicture.ru/Gallery/Viewfull/23495633.html имхо, намного облегчает понимание. учитывая что она динамическая. |
| Автор: bsa 9.9.2009, 21:55 | ||
Я имел в виду, исходник библиотеки, а не примера. |
| Автор: andrew_121 9.9.2009, 22:02 |
Ну тогда ваще не понял |
| Автор: bsa 9.9.2009, 22:20 | ||
Проблема в доке, которая хуже, чем исходник. Я только это и хотел сказать. |
| Автор: Lazin 9.9.2009, 22:30 |
| я никогда не использовал ssl, но могу что-нибудь подсказать по архитектуре там на самом деле все не сложно, как и все удачные библиотеки, asio очень просто и понятно организована |
| Автор: bsa 9.9.2009, 23:18 | ||
Мне очень интересно, можно ли один и тот же SSL контекст использовать для разных подключений (об этом в доке я ничего не нашел). Например, коннектится к серверу клиент, для него используется некий контекст, затем второй коннектится... Можно ли для него использовать тот же контекст? Ведь все методы получают неконстантный контекст! А вот в примере я увидел, что именно так и делается - контекст для всех один:
|
| Автор: andrew_121 10.9.2009, 06:46 | ||
да. а вот наоборот, не уверен. |