Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
1

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

02.12.2015, 17:22. Просмотров 1029. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2015, 17:22
Ответы с готовыми решениями:

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

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

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

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

6
Ушел с форума
Эксперт С++
16419 / 7394 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
02.12.2015, 19:16 2
OpenSSL подключен ?
0
16 / 12 / 12
Регистрация: 11.06.2015
Сообщений: 49
02.12.2015, 19:34  [ТС] 3
Нет.

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

Если получится - отпишусь.
0
Ушел с форума
Эксперт С++
16419 / 7394 / 1185
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
02.12.2015, 20:22 6
Да там все достаточно несложно. За точную последовательность действий не ручаюсь,
но я делал примерно так (рецепт для 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,
выполняем примерно такую команду:

Код
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".

Далее так:

Код
ms\do_nasm
и

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

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

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

--------

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

Я понимаю, что к Visual C++ больше всяких примочек и рецептов, но мне с ней как-то не хочется иметь дело...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2015, 09:55

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.