SSL. это в состоянии добавить / удалить ssl из сокета bsd? - PullRequest
0 голосов
/ 06 апреля 2011

Я смотрю на пример openssl в c.

Похоже, я могу сначала создать обычный BSD-сокет, и
добавить возможность ssl поверх него.

/* Connect the TCP socket*/
sock=tcp_connect(host,port);

/* Connect the SSL socket */
ssl=SSL_new(ctx);
sbio=BIO_new_socket(sock,BIO_NOCLOSE);
SSL_set_bio(ssl,sbio,sbio);
if(SSL_connect(ssl)<=0)
  berr_exit("SSL connect error");

где tcp_connect (хост, порт) возвращает обычный сокет bsd. (Чтобы сделать эту запись короткой, я не вставляю здесь код)

Мой вопрос,
1. не будет ли медленно передавать данные под ssl.
2. если это так, задаюсь вопросом, могу ли я удалить ssl из сокета, чтобы сделать его обычным tcp-сокетом (поскольку на веб-сайте есть https для страницы входа и http для других страниц. Интересно, можно ли использовать ssl только для первых нескольких пакетов аутентификации? Я определяю)

Спасибо

1 Ответ

0 голосов
/ 06 апреля 2011

Да, если уровень ssl выше простого сокета, и вы закрываете сеанс SSL, сокет все еще полезен, и вы можете использовать его.

т.е. вы можете установить ssl-сеанс между двумя частями в протоколе для аутентификации клиента, закрыть SSL-соединение после аутентификации и использовать сокет для остальной части соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...