SSL_CTX结构体

2023-11-18

/* 定义在ssl.h头文件中 */
struct
ssl_ctx_st { SSL_METHOD *method; unsigned long options; unsigned long mode; STACK_OF(SSL_CIPHER) *cipher_list; /* same as above but sorted for lookup */ STACK_OF(SSL_CIPHER) *cipher_list_by_id; struct x509_store_st /* X509_STORE */ *cert_store; struct lhash_st /* LHASH */ *sessions; /* a set of SSL_SESSIONs */ /* Most session-ids that will be cached, default is * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. */ unsigned long session_cache_size; struct ssl_session_st *session_cache_head; struct ssl_session_st *session_cache_tail; /* This can have one of 2 values, ored together, * SSL_SESS_CACHE_CLIENT, * SSL_SESS_CACHE_SERVER, * Default is SSL_SESSION_CACHE_SERVER, which means only * SSL_accept which cache SSL_SESSIONS. */ int session_cache_mode; /* If timeout is not 0, it is the default timeout value set * when SSL_new() is called. This has been put in to make * life easier to set things up */ long session_timeout; /* If this callback is not null, it will be called each * time a session id is added to the cache. If this function * returns 1, it means that the callback will do a * SSL_SESSION_free() when it has finished using it. Otherwise, * on 0, it means the callback has finished with it. * If remove_session_cb is not null, it will be called when * a session-id is removed from the cache. After the call, * OpenSSL will SSL_SESSION_free() it. */ int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess); void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess); SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, unsigned char *data,int len,int *copy); struct { int sess_connect; /* SSL new conn - started */ int sess_connect_renegotiate;/* SSL reneg - requested */ int sess_connect_good; /* SSL new conne/reneg - finished */ int sess_accept; /* SSL new accept - started */ int sess_accept_renegotiate;/* SSL reneg - requested */ int sess_accept_good; /* SSL accept/reneg - finished */ int sess_miss; /* session lookup misses */ int sess_timeout; /* reuse attempt on timeouted session */ int sess_cache_full; /* session removed due to full cache */ int sess_hit; /* session reuse actually done */ int sess_cb_hit; /* session-id that was not * in the cache was * passed back via the callback. This * indicates that the application is * supplying session-id's from other * processes - spooky :-) */ } stats; int references; void (*info_callback)(); /* if defined, these override the X509_verify_cert() calls */ int (*app_verify_callback)(); char *app_verify_arg; /* never used; should be void * */ /* default values to use in SSL structures */ struct cert_st /* CERT */ *cert; int read_ahead; int verify_mode; int verify_depth; unsigned int sid_ctx_length; unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); int purpose; /* Purpose setting */ int trust; /* Trust setting */ /* Default password callback. */ pem_password_cb *default_passwd_callback; /* Default password callback user data. */ void *default_passwd_callback_userdata; /* get client cert callback */ int (*client_cert_cb)(/* SSL *ssl, X509 **x509, EVP_PKEY **pkey */); /* what we put in client cert requests */ STACK_OF(X509_NAME) *client_CA; int quiet_shutdown; CRYPTO_EX_DATA ex_data; const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ STACK_OF(X509) *extra_certs; STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ };

 

转载于:https://www.cnblogs.com/coolYuan/p/8855216.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSL_CTX结构体 的相关文章

  • Mysql字段设置默认值

    方法一 select 默认值 字段名 from 表名 方法二 SELECT 默认值 as 字段名 FROM 表名 以上方法 将默认值和表名互换 则可以产生给表名去别名的作用
  • 计算分组后的记录行数(count group)

    小弟有这样一个问题 想用hql计算分组之后的总记录行数 语句如 from aTable a left outer join bTable b group by a f1 b f1 现在要计算它的总记录数 select count from
  • 对useReducer的理解

    useReducer是React提供的一个高级Hook 它不像useEffect useState useRef等必须hook一样 没有它我们也可以正常完成需求的开发 但useReducer可以使我们的代码具有更好的可读性 可维护性 可预测
  • Android通用流行框架大全,零基础入门学习android

    Picasso transformations 一个为Picasso提供多种图片变换的库 Glide transformations 一个为Glide提供多种图片变换的库 Android gpuimage 基于OpenGL的Android过
  • Jenkins持续集成项目实践 —— 基于Python Selenium自动化测试(二)

    上一篇讲了如何搭建jenkins 这篇主要讲 怎么将自动化代码与jenkins衔接起来 jenkins上运行的两种方式 第一种 在jenkins上面运行本地代码 操作如下 新建项目 项目名称根据自己项目情况填写并选择自由模式 进行配置根据如
  • LaTeX中插入matlab代码(可添加中文注释)的几种方法

    最近在用LaTeX写文件时 需要插入matlab代码 但是matlab代码编写时没有注意到注释为中文所带来的不便 导致在编写LaTeX文件时总是报错 经查阅网上有关这方面的资料和自己不断地尝试之后 总结其中的方法如下 使用matlab的mc
  • 【满分】【华为OD机试真题2023 JS】字母组合

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 字母组合 知识点回溯 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 每个数字对应多个字母 对应关系如下 0 a b c 1 d e f 2 g h i 3 j
  • Android MVP 详解(上)

    作者 李旺成 时间 2016年4月3日 Android MVP 详解 下 已经发布 欢迎大家提建议 MVP 在 Android 上的使用其实已经有挺长一段时间了 长到似乎有点 过时 了 目前风头正劲的是MVVM 那为什么现在还要讲 MVP
  • tf.nn.atrous_conv2d如何实现空洞卷积?

    转载自 https blog csdn net mao xiao feng article details 78003730 介绍 关于空洞卷积的理论可以查看以下链接 这里我们不详细讲理论 1 Long J Shelhamer E Darr
  • 业务实战中如何利用MySQL函数来解决

    随着我们业务越来越复杂的情况下 完全基于java后台来解决首先是很麻烦 而且性能带来降低 代码的可读性下降 这个时候就需要一些MySQL的函数来解决了 这篇文章对于常见的MySQL函数不予介绍 concat函数 使用方法 CONCAT st
  • Flink设置Source数据源使用kafka获取数据

    流处理说明 有边界的流bounded stream 批数据 无边界的流unbounded stream 真正的流数据 Source 基于集合 package com pzb source import org apache flink ap
  • I Hate It

    很多学校流行一种比较的习惯 老师们很喜欢询问 从某某到某某当中 分数最高的是多少 这让很多学生很反感 不管你喜不喜欢 现在需要你做的是 就是按照老师的要求 写一个程序 模拟老师的询问 当然 老师有时候需要更新某位同学的成绩 Input 本题
  • volatile和synchronized的区别

    共性 volatile与synchronized都用于保证多线程中数据的安全 区别 1 volatile修饰的变量 jvm每次都从主存 主内存 中读取 而不会从寄存器 工作内存 中读取 而synchronized则是锁住当前变量 同一时刻只
  • 第一次 openwrt源码下载编译

    openwrt 学习记录 第一次 openwrt源码下载编译 MT7620开发板 安装虚拟机VMware 安装Ubnutu 先进入root账户 topeet ubuntu su 输入密码 1 搭建编译环境 参考 https blog csd
  • maven的使用

    目录 一 maven基本参数 二 maven基础结构 三 mvn的打包和运行 一 maven基本参数 groupId 是指项目里面的标识 一般写法是com mycom myapp 其中mycom是指你公司的域名 例如com google m
  • YOLOv5+PaddleOCR手写签名识别

    YOLOv5 PaddleOCR手写签名识别 介绍 参加了一个中国移动的比赛 比赛的数据集是一个工单 上面有多个人的签名还有手写的时间 因为主办方不允许数据公开 所以在这一系列博客中 我主要讲一下实现的思路 在YOLO演示的时候我会用其他的
  • 查看linux服务器内存信息

    查看服务器内存信息 dmidecode grep P A5 Memory s Device grep Size root localhost home dmidecode grep P A5 Memory s Device grep Siz
  • 【leetcode刷题】--- 21.合并两个有序链表(C++递归)

    21 合并两个有序链表 原题链接 https leetcode cn com problems merge two sorted lists 题目 将两个升序链表合并为一个新的 升序 链表并返回 新链表是通过拼接给定的两个链表的所有节点组成
  • 关于ApplicationContext的getBean()方法发现

    假定 Son类实现father接口 在Son类定义声明式事务后 通过ApplicationContext接口的getBean Class arg0 方法获取注入好的bean会报异常 方法参数Son class Son已声明bean org
  • 18. 线性代数 - 线性变换

    文章目录 线性空间 线性变换 线性变换的几何意义 特征值与特征向量 NumPy的矩阵操作 Hi 你好 我是茶桁 经历了几节线性代数课程之后 终于咱们到了最后一节课了 本节课的内容说多不多 说少也不少 我们先是要理解一下线性空间和线性变换 并

随机推荐

  • uml之Robustness Diagram

    Robustness Diagram 从需求分析到架构设计 转载自 http www dotblogs com tw jed archive 2010 11 21 robustness diagram aspx 什么是Robustness
  • Java IO流

    目录 一 认识Java的流 二 使用字节流读写文本文件 三 使用字符流读写文本文件 四 读写二进制文件 五 序列化和反序列化 六 总结 一 认识Java的流 1 读文件是指把文件中的数据读取到内存中 2 写文件是把内存中的数据写到文件中 3
  • 2023高教社杯 国赛数学建模E题思路 - 黄河水沙监测数据分析

    1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河 研究黄河水沙通量的变化规律对沿黄流域的环境治理 气候变 化和人民生活的影响 以及对优化黄河流域水资源分配 协调人地关系 调水调沙 防洪减灾 等方面都具有重要的理论指导意义 附件
  • spring boot 之 kotlin语言开发,用一次就想放弃Java,爽歪歪~~~

    废话少说 上视频 spring boot 之 kotlin用一次就想放弃java 爽歪歪 1 启动入口 SpringBootApplication EnableDiscoveryClient class TawuziAuthServerDb
  • LVGL V8学习之键盘按键样式重绘(二)

    这一篇继续研究一下基于btnmatrix的键盘按键重绘 是对上一篇LVGL V8学习之键盘按键样式重绘 一 的代码的优化 还是通过codeblock来模拟代码的运行 代码如下 按键矩阵的事件回调函数 static void btnmatri
  • vue后台管理系统—— 模糊查询和列表分页展示

    1 效果显示 通过输入作品名称或者开始时间或者结束时间来显示数据列表 这里的三项选择可以输入其一 也可以都输入 2 分页代码 用的是element组件 包括表格 上面的搜索 div class personalident top div
  • pycharm scrapy 爬取“文章”(文章阅读网)

    import scrapy import re from urllib import parse from scrapy http import Request from Article spider Article spider item
  • nvm使用大全nvm如何动态切换node版本

    注意 nvm use node版本时 要使用管理员权限打开cmd输入命令 否则报错 常用命令 nvm ls 列出所有已安装的 node 版本 nvm list 列出所有已安装的 node 版本 nvm list available 显示所有
  • java基础:日志框架

    文章目录 一 日志技术的概述 二 日志技术体系 三 Logback日志框架 四 Logback快速入门 五 Logback 配置详解 5 1 输出位置 格式设置 5 2 对日志不同内容是否输出的控制 一 日志技术的概述 程序中的日志可以用来
  • Linux 数据库备份与恢复

    1 备份数据主要使用dump命令 格式为 mysqldump u db user p db passwd db name gt backup dir db name time sql p 和 db passwd之间没有空格 不然 db pa
  • 加解密和签名验签简述

    文章目录 一 数字加密算法 1 对称加密 2 非对称加密 3 对称加密和非对称加密的区别 二 使用keytool生成证书 1 创建证书 2 查看密钥库 2 1 keytool list 命令 2 2 keytool list v 命令 3
  • Transformer:Attention is All You Need

    Transformer论文逐段精读 论文精读 https www bilibili com video BV1pu411o7BE share source copy web vd source 30e93e9c70e5a43ae75d429
  • 分析 ExitCode 定位 Pod 异常退出原因

    使用kubectl describe pod
  • vue 表单校验不通过时拦截提交表单

    上代码
  • JSP 弹出框 子页面给父页面回传参数

    做一个jsp的页面 然后又弹出一个对话框 并且把输入框的值返回到文本中 具体代码如下 1 父页面 写道
  • 引入纯 ESM 模块化的第三方包

    CSDN中文章不一定能及时更新 欢迎点击前往我的博客查看最新版本 许盛的博客 背景 今天要做个 CLI 工具 一路调研学习加实践都比较顺利 但是在引入 globby 这个库时 就开始报错了 Users xusheng workspace t
  • 2023华为OD机试真题【二元组个数/哈希表】

    题目描述 给定两个数组a b 若a i b j 则称 i j 为一个二元组 求在给定的两个数组中 二元组的个数 输入描述 第一行输入 m 第二行输入m个数 表示第一个数组 第三行输入 n 第四行输入n个数 表示第二个数组 输出描述 二元组个
  • mysql cstmt_MySQL

    创建一个以JDBC连接数据库的程序 包含7个步骤 1 加载JDBC驱动程序 在连接数据库之前 首先要加载想要连接的数据库的驱动到JVM Java虚拟机 这通过java lang Class类的静态方法forName String class
  • 《上海市居住证》签注和积分确认流程指南

    上海市居住证 签注和积分确认流程指南 一 办理条件 员工已经自行至社区事务受理服务中心办理 上海市居住证 签注 由于上海市居住地所属的社区事务中心非常多 具体申请相关流程指南及材料办理清单最好事先和居住地所属的社区事务中心确认 办理 上海市
  • SSL_CTX结构体

    定义在ssl h头文件中 struct ssl ctx st SSL METHOD method unsigned long options unsigned long mode STACK OF SSL CIPHER cipher lis