当我们要使用TLS通讯时,首先要创建CTX上下文,在OpenSSL中,定义CTX上下文的具体定义。
创建CTX上下文
ctx = SSL_CTX_new(TLSv1_2_server_method());
# ifndef OPENSSL_NO_TLS1_2_METHOD
const SSL_METHOD *TLSv1_2_method(void)
{
return tlsv1_2_method();
}
const SSL_METHOD *TLSv1_2_server_method(void)
{
return tlsv1_2_server_method();
}
const SSL_METHOD *TLSv1_2_client_method(void)
{
return tlsv1_2_client_method();
}
# endif
*TLSv1_2_method(void)是返回一系列函数操作集合
集合通过宏定义,实际上定义在methods.c
#ifndef OPENSSL_NO_TLS1_2_METHOD
IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2,
tlsv1_2_client_method,
ssl_undefined_function,
ossl_statem_connect, TLSv1_2
本文详细介绍了在Linux环境中,使用TLS进行通信时的步骤,包括创建CTX上下文、建立SSL连接对象、绑定socket套接字、底层socket实现及TLS握手过程。在TLS握手过程中,着重讲解了不同状态的回调函数以及数据如何通过socket发送到TCP层。
订阅专栏 解锁全文
4589

被折叠的 条评论
为什么被折叠?



