首页 > 其他分享 >转SSL相关

转SSL相关

时间:2023-12-19 09:26:21浏览次数:46  
标签:ctr ssl drbg SSL mbedtls conf 相关


int ret;// const char *pers = "ssl_client1"; mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; void ssl_int(void) { mbedtls_ssl_close_notify( &ssl ); mbedtls_ssl_free( &ssl ); mbedtls_ssl_config_free( &conf ); mbedtls_ctr_drbg_free( &ctr_drbg ); mbedtls_entropy_free( &entropy ); // mbedtls_debug_set_threshold( 1 );// mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); mbedtls_ctr_drbg_init( &ctr_drbg ); mbedtls_entropy_init( &entropy ); printf( "\n . Seeding the random number generator..." ); //DRBG---->Deterministic Random Bit Generators 伪随机数产生器 if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); } //MBEDTLS_SSL_IS_CLIENT 表示配置为客户端 //MBEDTLS_SSL_TRANSPORT_STREAM 表示传输方式为TLS //设置版本, MBEDTLS_SSL_PRESET_DEFAULT 表示 TLS1.0 if( ( ret = mbedtls_ssl_config_defaults( &conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) { printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\r\n", ret ); } /*设置数字证书检查模式 * MBEDTLS_SSL_VERIFY_NONE: peer certificate is not checked * (default on server) * (insecure on client) * * MBEDTLS_SSL_VERIFY_OPTIONAL: peer certificate is checked, however the * handshake continues even if verification failed; * mbedtls_ssl_get_verify_result() can be called after the * handshake is complete. * * MBEDTLS_SSL_VERIFY_REQUIRED: peer *must* present a valid certificate, * handshake is aborted if verification failed. * (default on client) */ mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE ); // 配置随机数生成器的回调函数 mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); // 配置调试回调函数 // mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); // 根据conf设置ssl结构 if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned 0x%x\r\n", -ret ); } // 设置host name 用到动态内存分配 if( ( ret = mbedtls_ssl_set_hostname( &ssl, "替换自己的域名" ) ) != 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 ); }

替换自己的域名

 连接上TCP以后,等待SSL握手成功

 

标签:ctr,ssl,drbg,SSL,mbedtls,conf,相关
From: https://www.cnblogs.com/wellons/p/17912857.html

相关文章

  • Java-并发编程-03深入理解并发编程概念以及相关关键字
    浅入并发编程三个核心概念在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题。我们先看具体看一下这三个概念:1.原子性原子性:即一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。举个最简单的例子,大家想一下假如为一......
  • 音视频相关接口概念总结
    HDMIHDMI(High-DefinitionMultimediaInterface)是一种数字音视频接口标准,广泛用于连接高清晰度电视、显示器、投影仪、音响等设备。HDMI提供了一个单一的数字接口,支持高清晰度视频和多声道音频传输,同时还能传输其他数据,如显示器信息和遥控器信号。以下是HDMI的一些主要特点和......
  • 【沁恒 CH58x 应用】BLE相关知识基础
    大纲:1.什么是ble,ble与传统蓝牙的区别,ble与蓝牙4.0的区别2.ble的基本概念:协议层(协议框架)、服务(Service)、特征(Characteristic)。什么是配对(pair)、通知(notify)。 介绍低功耗蓝牙1.什么是低功耗蓝牙?图1BLE介绍低功耗蓝牙,简称BLE,是蓝牙的一种省电变体。BLE的主要应......
  • jieba 分词红楼梦相关的分词,出现次数最高的20个
    点击查看代码importjiebaimportwordclouddeftakeSecond(elem):returnelem[1]defcreateWordCloud(text):#生成词云函数w=wordcloud.WordCloud(font_path="STZHONGS.TTF",width=1000,height=500,background_color="white")w.g......
  • shell脚本检测ssl证书有效时间
     [ytx@workshell]$catssl_check.sh#!/bin/bash#设置要检查的域名和端口DOMAIN="www.xxx.com"#域名PORT=443#端口#获取SSL证书信息CERT_INFO=$(openssls_client-connect${DOMAIN}:${PORT}-servername${DOMAIN}-showcerts</dev/null2>/dev......
  • vue3 相关知识汇总
    1组合式api和选项式api  1.1概念  选项式api:用包含多个选项的对象来描述组件的逻辑。  组合式api:组合式api使用导入的API函数来描述组件逻辑。组合式API通常会与<scriptsetup>搭配使用。  1.2应用场景    选项式api:不需要使用构建工具或者低复......
  • C#的相关知识,封装一个泛型的数据库访问查询方法
    publicTGet<T>(intid)whereT:BaseModel{stringConnectionString="DataSource=DESKTOP-63QE7M1;Database=CustomerDB;UserID=sa;Password=sa123;MultipleActiveResultSets=True";Typetype=typeof(T);varpropList=type.GetProperties......
  • can总线相关内容
    can总线是一种串行通讯总线。具有多主控制的特点,及在总线空闲时,所有单元都可以开始发送消息,最先访问总线的单元可以获得发送权。多个单元同时访问总线时,发送高优先级id消息的单元可以优先访问。can总线中利用id标识各个节点。在节点发送数据时,发送的报文帧中也应含有节点的id信息......
  • Qt 信号槽相关
    Qt中信号与槽的机制用于实现对象之间的通信,这种机制允许对象在特定事件发生时发送信号,而其他对象可以通过连接到这些信号的槽函数来响应这些事件。Qt官方的相关文档在此:https://doc.qt.io/qt-5/signalsandslots.html实现信号槽的功能首先需要两个(可以是同一个)对象,一个负责发送......
  • SslSugar导航查询与EF Core导航查询
    SqlSugar:当我们在SQLSugar中定义了两个实体类之间的关联关系时,可以使用导航属性进行关联查询。导航属性是表示一个实体对象与其他实体对象之间关联的属性。通过导航属性,我们可以方便地在查询中访问和检索相关联的实体数据。在SQLSugar中,导航属性需要满足以下条件:导航属性必须......