От:
rodos
Дата: 21.10.03 07:31
Оценка:
Ктонибуть покажите простой ример использования SSL на C++.
От:
Vlost
Дата: 21.10.03 13:43
Оценка:
Здравствуйте, rodos, Вы писали:
R>Ктонибуть покажите простой ример использования SSL на C++.
Посмотри библиотеку OpenSSL
http://www.openssl.org в ней есть несколько примеров
От:
nikogo
Дата: 24.10.03 02:44
Оценка:
Здравствуйте, rodos, Вы писали:
R>Ктонибуть покажите простой ример использования SSL на C++.
Если использовать OpenSSL, то код в клиенте будет выглядеть примерно так (обработка ошибок опущена):
SSL_METHOD *meth;
SSL_CTX* pSSLCtx;
SSL* pSSL;
SOCKET sdSecure;
// здесь создаем сокет sdSecure
// для SSL 2 исп.
// meth = SSLv2_client_method();
// для SSL 3 исп.
// meth = SSLv3_client_method();
// ипсользуется TLS 1
meth = TLSv1_client_method();
// создает SSL'ный контекст
pSSLCtx = SSL_CTX_new(meth);
// создаем струкруту для SSL соединения
pSSL = SSL_new(pSSLCtx);
// делаем connect()
// связываем сокет и pSSL
SSL_set_fd(pSSL, sdSecure);
int ret = SSL_connect(m_pSSL);
Если надо в серваке, могут написать позже.
Regards,
Igor
От:
.smoke
Дата: 26.10.03 21:03
Оценка:
Здравствуйте, Vlost, Вы писали:
V>Здравствуйте, rodos, Вы писали:
R>>Ктонибуть покажите простой ример использования SSL на C++.
V>Посмотри библиотеку OpenSSL http://www.openssl.org в ней есть несколько примеров
а примеров работы через SSPI не ниукого ?
Здравствуйте, .smoke, Вы писали:
S>а примеров работы через SSPI не ниукого ?
Пример есть в Platform SDK:
Samples\security\SSPI\SSL\WebServer
Samples\security\SSPI\SSL\WebClient
-- Alex Fedotov
От:
muradm
Дата: 02.05.04 13:17
Оценка:
N>Если надо в серваке, могут написать позже.
А Можно взглянуть на код сервака?
У меня проблема SSL_connect выдаёт ошибку (Some I/O error)...
Делаю всё стандартно.
На клиенте
char certfile[]="client.pem";
char keyfile[]="privkey.pem";
SSL_library_init();
SSL_load_error_strings();
meth=SSLv3_method();
pSSLCtx = SSL_CTX_new(meth);
if(!(SSL_CTX_use_certificate_chain_file(pSSLCtx,certfile)))
AfxMessageBox("Can’t read certificate file");
pass=password;
SSL_CTX_set_default_passwd_cb(pSSLCtx,pem_passwd_cb);
if((SSL_CTX_use_PrivateKey_file(pSSLCtx, /*keyfile*/certfile,SSL_FILETYPE_PEM)!=1))
AfxMessageBox("Client Can’t SSL_CTX_use_PrivateKey_file");
//Load the CAs we trust
if(!(SSL_CTX_load_verify_locations(pSSLCtx,"root.pem",0)))
AfxMessageBox("Can’t read CA list");
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
SSL_CTX_set_session_id_context(pSSLCtx,(unsigned char*)&s_server_session_id_context, sizeof(s_server_session_id_context));
//////////////////////////////////////////////////////////////////////////
load_dh_params(pSSLCtx,DHFILE);
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
TCPconnect();
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
pSSL = SSL_new(pSSLCtx);
BIO *sbio;
sbio=BIO_new_socket(clientsocket,BIO_NOCLOSE);
SSL_set_bio(pSSL,sbio,sbio);
int ret=SSL_connect(pSSL);
if(ret<0)
{
//ЗДЕСЬ ОШИБКА
AfxMessageBox("Client: SSL connect error");
GetError(pSSL,ret);
}
else if(ret>0)
AfxMessageBox("Client: successfully connected");
else
AfxMessageBox("Client: no handshake");
Не подскажите в чём дело???
От:
muradm
Дата: 03.05.04 13:46
Оценка:
Самое интересное, если запустить эту же последовательнось заново, устанавливается нормальное соединение.
Аналогично и со встроенным в утилиту openssl сервером (openssl s_server)
От:
gribunin
Дата: 05.05.04 19:16
Оценка:
Здравствуйте, rodos, Вы писали:
R>Ктонибуть покажите простой ример использования SSL на C++.
Тут можно найти примеры от книги OpenSSL
----------------
Кирилл Грибунин
Здравствуйте, Alex Fedotov, Вы писали:
AF>Здравствуйте, .smoke, Вы писали:
S>>а примеров работы через SSPI не ниукого ?
AF>Пример есть в Platform SDK:
AF>Samples\security\SSPI\SSL\WebServer
AF>Samples\security\SSPI\SSL\WebClient
А не подскажите, какое именно SDK?
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить