mbedtls_ssl_conf_ca_chain(&(session->mbedSslConf), &(session->mbedX509Crt), NULL); mbedtls_ssl_conf_rng(&(session->mbedSslConf), mbedtls_ctr_drbg_random, &(session->mbedDrbgCtx)); //edtls_ssl_conf_dbg(&(session->mbedSslConf), NULL, NULL); mbedtls_ssl_set_bio(&(session->mbedSs...
设置读写回调函数:mbedtls_ssl_set_bio(&session->ssl, &session->server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl,void *p_bio,mbedtls_ssl_send_t *f_send,mbedtls_ssl_recv_t *f_recv,mbedtls_ssl_recv_timeout_t *f_recv_timeout )...
if( ( ret = mbedtls_ssl_set_hostname( &ssl, "替换自己证书的CN字段填写的值" ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\r\n", ret ); } // 设置发送和接收接口 mbedtls_ssl_set_bio( &ssl, NULL, custom_ssl_send, custom_ssl_recv, NULL );...
}//设置host name 用到动态内存分配if( ( ret = mbedtls_ssl_set_hostname( &ssl,"替换自己证书的CN字段填写的值") ) !=0) { mbedtls_printf("failed\n ! mbedtls_ssl_set_hostname returned %d\r\n", ret ); }//设置发送和接收接口mbedtls_ssl_set_bio( &ssl, NULL, custom_ssl_send, custom...
8.增加SSL底层获取数据函数 咱们在后面设置好SSL接收回调函数以后, SSL底层会调用 custom_ssl_recv 函数 SSL底层要多少个数据,咱们才返回多少个数据,这是SSL底层规定的,所以为了配合SSL底层,程序写的比较多. SSL底层调用的时候最后一个参数 size_t len是指定要多少个数据. ...
ssl_client2.c范例都在main函数,其大体流程如下: 1、先加载各种证书、秘钥,配置opt结构体成员初始化,如TLS版本,加密套件类型等 2、然后开始连接服务器 mbedtls_net_connect 3、初始化tls参数 mbedtls_ssl_config_defaults,设置网络收发回调函数等 4、SSL/TLS握手流程,过程比较复杂,简化就是通信双方校验对方身份,获取...
网络模块net_sockets.c文件中对套接字接口进行了封装,用户可以将接口进行替换,替换后通过mbedtls_ssl_set_bio()接口来注册发送和接收接口,根据需要开启或关闭超时检测、阻塞/非阻塞功能。 适配时间模块 定时器回调 如果在系统中需要使用DTLS协议,则需要适配时间模块来提供以下接口: ...
MBEDTLS_SSL_VERIFY_NONE:不检查对等证书(也就是无认证)。(服务器默认值,如果客户端配置为此选项那么连接是不安全的;如果服务器配置为此值那么是单向认证。 MBEDTLS_SSL_VERIFY_OPTIONAL :检查对等证书(也就是单向认证),但即使验证失败,握手仍将继续;可以在握手完成后调用mbedtls_ssl_get_verify_result()查看验证结果...
8.增加SSL底层获取数据函数 咱们在后面设置好SSL接收回调函数以后, SSL底层会调用 custom_ssl_recv 函数 SSL底层要多少个数据,咱们才返回多少个数据,这是SSL底层规定的,所以为了配合SSL底层,程序写的比较多. SSL底层调用的时候最后一个参数 size_t len是指定要多少个数据. ...
说明Docker并没有老老实实走外部代理。于是我尝试使用Docker使用代理以便于解决问题。当然这一步的前提也...