OpenSSL&TLS
用户昵称2021
这个作者很懒,什么都没留下…
展开
-
TLS Certificate
参考链接:如何验证数字证书的真伪原创 2021-06-16 15:24:43 · 492 阅读 · 0 评论 -
TLS Session resumption
Session复用有两种方式:Session Id在断开连接前,保存session Id到本地存储中://Client Port SSL_SESSION *session = SSL_get1_session(client.ssl); //SSL_get_session if(session == nullptr) LOGW("session is null"); BIO *stmp = BIO_new_file("sdcard/DCIM/session_cl原创 2021-06-15 14:47:09 · 521 阅读 · 0 评论 -
在蓝牙通道上通过BIO实现TLS 1.2
TLS简介TLS 通常应用在Socket通道上,保证数据传输的秘密性,完整性,认证性。对程序来说,openssl将整个握手过程用一对函数体现,即客户端的SSL_connect和服务端的SSL_accept.而后的应用层数据交换则用SSL_read和 SSL_write来完成. 将Socket传入接口后,整个握手过程都由openssl完成。参考:OpenSSL编写SSL,TLS程序***而我接触的项目需要在BLE通道上实现TLS 1.2, 没有针对BLE通道的接口,故采取BIO的模式来实现:证书完整原创 2021-06-10 17:48:39 · 260 阅读 · 0 评论 -
OpenSSL库编译
编译环境Ubuntu in WSL 即 Windows Subsystem LinuxNDK linux版本OpenSSL openssl-1.1.1k.tar.gz将NDK和OpenSSL解压缩在同一个文件夹下开始编译打开UbuntuAndroid的编译可参考openSSL源码根目录下的的NOTES.ANDROID文件cd /mnt/c/Users/name/Downloads/linux/openssl-1.1.1i/export ANDROID_NDK_HOME="/m原创 2021-05-14 10:49:25 · 396 阅读 · 1 评论 -
TLS OpenSSL 证书验证
int verify_err = SSL_get_verify_result(client.ssl);拿到非X509_V_OK结果后,需由客户端/服务端应用层来决定是否中止TLS流程,在一些场景下,openSSL库并不会通过Alert Message来反馈证书验证失败的结果,具体如下:场景1:当服务端只发送合法的用户证书时,客户端设置根证书和二级证书:r = SSL_CTX_load_verify_locations(k->ctx, "/data/user/0/cn.areful.ope原创 2021-05-14 10:30:26 · 758 阅读 · 0 评论