Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Dimon_KV
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49

Не работает SSL в Boost

02.12.2015, 17:22. Показов 2715. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Пытаюсь написать программу для подключения к серверу.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
#include <iostream>
 
using namespace boost::asio;
 
int main()
{
    typedef ssl::stream<ip::tcp::socket> ssl_socket;
 
    io_service client;
    char buff[512];
    ssl::context ctx(ssl::context::sslv23);
    ssl_socket sock(client, ctx);
    ip::tcp::resolver resolv(client);
    std::string host = "smtp.gmail.com";
    ip::tcp::resolver::query query(host, "465");
    connect(sock.lowest_layer(), resolv.resolve(query));
 
    // The SSL handshake
    sock.set_verify_mode(ssl::verify_none);
    sock.set_verify_callback(ssl::rfc2818_verification(host));
    boost::system::error_code ec;
    sock.handshake(ssl_socket::client, ec);
 
    std::string req = "EHLO gmail.com\r\n";
    write(sock, buffer(req.c_str(), req.length()));
 
    while (!ec)
    {
        int bytes = read(sock, buffer(buff), ec);
        std::cout << std::string(buff, bytes);
    }
 
    system("PAUSE");
    return 0;
}
Вроде и Boost успешно откомпилировал, и в опциях компилятора пути к библиотекам прописал.

Но при компиляции выводит ошибку: openssl/conf.h: No such file or directory.

Подскажите, что я делаю не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2015, 17:22
Ответы с готовыми решениями:

C++ | boost::asio + ssl?
Доброго времени суток! Хотелось бы узнать как подключаться по SSL? int main() { boost::asio::ip::tcp::iostream stream; ...

Boost SSL ошибка линковки
Добрый день. Собственно вопрос: возникла необходимость работы с OpenSSL да еще под виндовс. Собрал буст. Собрал openSSL. Прикрутил все это...

Boost + ssl Отправка почты с gmail.com
Прога просто висит. Что не так ? )) #include &lt;boost/asio.hpp&gt; #include &lt;boost/asio/ssl.hpp&gt; #include &lt;iostream&gt; using...

6
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.12.2015, 19:16
OpenSSL подключен ?
0
 Аватар для Dimon_KV
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
02.12.2015, 19:34  [ТС]
Нет.

А как её подключить? Я смотрел на оф. сайте OpenSSL, скачивал оттуда исходники, но непонятно, что с ними потом делать.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.12.2015, 19:41
Их нужно собрать, следуя инструкции от OpenSSL.
Там все достаточно просто, из дополнительных инструментов нужен
только Perl и ассемблер NASM (это если собирать под Windows).
0
 Аватар для Dimon_KV
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
02.12.2015, 20:06  [ТС]
Хорошо, попробую завтра подключить OpenSSL согласно оригинальной инструкции, хоть там и на английском всё.

Если получится - отпишусь.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
02.12.2015, 20:22
Да там все достаточно несложно. За точную последовательность действий не ручаюсь,
но я делал примерно так (рецепт для Visual C++ 2008/2010, версия OpenSSL 1.0.2d):

1. Скачиваем и устанавливаем ActiveState Perl (у меня 64-битная Windows,
Perl я тоже ставил 64-битный).

2. Скачиваем и устанавливаем NASM. Путь к папке с nasm.exe необходимо добавить в
системную переменную Path.

3. Открываем Visual Studio Command Prompt, заходим в папку с исходниками OpenSSL,
выполняем примерно такую команду:

Code
1
perl Configure VC-WIN32 --prefix=C:\SomePath\MyOpenSSL
C:\SomePath\MyOpenSSL - это путь, куда будут скопированы библиотеки OpenSSL
после сборки. Возможны дополнительные опции, например debug-VC-WIN32,
если нужно собрать OpenSSL в конфигурации Debug. Все описано в файлах
INSTALL.W32 и в INSTALL.W64.

Я обычно собираю в четырех комбинациях: Debug|Win32, Debug|x64,
Release|Win32, Release|x64, все с опцией "enable-static-engine".

Далее так:

Code
1
ms\do_nasm
и

Code
1
nmake -f ms\ntdll.mak
Сборка занимает несколько минут. После этого запускаем тесты:

Code
1
nmake -f ms\ntdll.mak test
и, если все прошло успешно, даем команду на копирование файлов:

Code
1
nmake -f ms\ntdll.mak install
Почти точно также собирается OpenSSL в конфигурации x64,
только там вместо do_nasm надо писать do_win64a, ну и команда для Perl
будет perl Configure VC-WIN64A.

--------

После этого достаточно в проекте с Boost.Asio указать пути к
заголовкам (include) и библиотекам (lib) от OpenSSL.
0
 Аватар для Dimon_KV
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
03.12.2015, 09:55  [ТС]
Да, кстати, забыл указать, что у меня CodeBlocks.

Я понимаю, что к Visual C++ больше всяких примочек и рецептов, но мне с ней как-то не хочется иметь дело...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2015, 09:55
Помогаю со студенческими работами здесь

Boost 1.67.0 ssl connect не получается сделать timeout 10sec
Не очень-то я сильна в библиотеке boost 1.67.0, от чего прошу помощи экспертов. Спустя какое-то время, запрос ждет ответа от сервера...

Не работает SSL
Здравствуйте, проблема с SSL. Qt5.8 qDebug() &lt;&lt; QSslSocket::supportsSsl(); qDebug() &lt;&lt;...

Не работает SSL с Apache
Новая интересная задачка от меня) На FreeBSD 6.2 стоит апач 1.3. Также должен работать https-протокол. Он работал не так давно. И вот...

Не работает SSL у Tomcat
Здравствуйте. Я настроил томката под свой сертификат. Прописал всё так, как сказано в описании и статьях. При запуске томкат в...

не работает turbo boost
доброго времени суток! у меня dv6- 6051. возникла проблема такого харктера:- при обновлении BIOS с версии F.06 на F.1a перестал работать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru