mbedtls交换服务器证书,mbedtls

2023-11-02

mbedtls系列文章

Demo工程源码

https://github.com/Mculover666/mbedtls-study-demo

本工程基于STM32L41RCT6开发板,包含了本系列文章中所编写的所有Demo,持续更新……

文章目录

mbedtls系列文章

Demo工程源码

一、DH秘钥协商算法

二、DH秘钥协商功能的配置和使用

1. 配置宏

2. DH秘钥协商功能API说明

3. 编写测试函数

4. 测试结果

一、DH秘钥协商算法

DH是一种秘钥协商算法,使得通信双方在不安全通道交换共享参数,从而协商出一个会话秘钥。

DH秘钥协商的过程如下:

① 通信双方A和B确认共享参数;

② A生成随机秘钥x;

③ B生成随机秘钥y;

④ A计算共享秘钥;

⑤ B计算共享秘钥;

DH秘钥协商算法可以有效防止中间听者,但是无法方式中间拦截者。

二、DH秘钥协商功能的配置和使用

1. 配置宏

使用DH秘钥协商功能需要提前开启伪随机数生成器(依赖AES算法、SHA256算法、MD通用接口),其中伪随机数生成器的硬件适配移植实现已经讲述,请参考对应的第二篇博客,不再赘述。

综合上述,本实验中需要开启的宏如下表:

宏定义

功能MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES

不使用默认熵源(如果已有、要屏蔽该宏)

MBEDTLS_NO_PLATFORM_ENTROPY

不使用系统内置熵源

MBEDTLS_AES_C

使用AES算法

MBEDTLS_ENTROPY_C

使能熵源模块

MBEDTLS_CTR_DRBG_C

使能随机数模块

MBEDTLS_SHA256_C

使能SHA256算法

MBEDTLS_MD_C

开启MD通用接口

MBEDTLS_AES_ROM_TABLES

使能预定义S盒(节约内存空间)

MBEDTLS_BIGNUM_C

开启大数运算

MBEDTLS_GENPRIME

开启生成素数

MBEDTLS_DHM_C

开启DH秘钥协商模块

下面补充几个一个第一次出现宏的定义。

① MBEDTLS_DHM_C

/**

* \def MBEDTLS_DHM_C

*

* Enable the Diffie-Hellman-Merkle module.

*

* Module: library/dhm.c

* Caller: library/ssl_cli.c

* library/ssl_srv.c

*

* This module is used by the following key exchanges:

* DHE-RSA, DHE-PSK

*

* \warning Using DHE constitutes a security risk as it

* is not possible to validate custom DH parameters.

* If possible, it is recommended users should consider

* preferring other methods of key exchange.

* See dhm.h for more details.

*

*/

#define MBEDTLS_DHM_C

编辑针对本实验的配置文件mbedtls_config_dhm.h:

/**

* @brief Minimal configuration for DHM Function

* @author mculover666

* @date 2020/09/28

*/

#ifndef _MBEDTLS_CONFIG_DHM_H_

#define _MBEDTLS_CONFIG_DHM_H_

/* System support */

#define MBEDTLS_HAVE_ASM

//#define MBEDTLS_HAVE_TIME

/* mbed feature support */

#define MBEDTLS_ENTROPY_HARDWARE_ALT

//#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES

#define MBEDTLS_NO_PLATFORM_ENTROPY

/* mbed modules */

#define MBEDTLS_AES_C

#define MBEDTLS_AES_ROM_TABLES

#define MBEDTLS_CTR_DRBG_C

#define MBEDTLS_ENTROPY_C

#define MBEDTLS_SHA256_C

#define MBEDTLS_MD_C

#define MBEDTLS_BIGNUM_C

#define MBEDTLS_GENPRIME

#define MBEDTLS_DHM_C

#include "mbedtls/check_config.h"

#endif /* _MBEDTLS_CONFIG_DHM_H_ */

在MDK配置mbedtls使用该配置文件:

3ae556ba8c8fc7b44b5f56e6cda57ba2.png

2. DH秘钥协商功能API说明

使用该功能模块需要包含头文件:

#include "mbed

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

mbedtls交换服务器证书,mbedtls 的相关文章

  • 几种常用的无源滤波器的特征

    无源滤波器的缺点 带负载能力差 无放大作用 特性不理想 边沿不陡峭 各级相互影响 滤波器是一种通过一定频率的信号而阻止或衰减其他频率信号的部件 分类 按照处理信号形式 模拟滤波器和数字滤波器 按功能分 低通 高通 带通 带阻 按电路组成分
  • Visio中实现任意两点之间的连线

    参考博客01 https blog csdn net wanzhen4330 article details 84837279 想实现的效果 如下图所示 想要实现的是像下面图中 让箭头线段多次弯折 最终连接两个矩形方框 二 做法 在Visi
  • SQLServer数据库密码已过期问题 处理

    Sqlserver在设置登录账户信息的时候 有个复选框信息会被默认勾上 即强制实施密码策略 默认勾选上的还有强制密码过期 如果勾上了这个强制密码过期后 则你的账户密码在一定时间登录后会提示Sqlserver登录密码已过期请重新设置密码 如果
  • docker-management遇到的一些问题

    一个mysql节点 两个cloudstack management节点 先启动mysql节点 如果cloudstack management容器节点无法访问mysql节点 注意docker宿主机的iptables规则 启动cloudstac
  • 总结一波安卓组件化开源方案

    摘要 为了让大家能快速对android组件化有个整体的认识 本文将从多个维度对目前网上一些有代表性的开源组件化开发方案进行对比 从而更好的区分各组件化方案的特点 快速选择适合自己使用的方案深入学习并使用 在面试中被问到时也能做到心中有数 前
  • PCL 从深度图像中提取边界

    一 图像边界 深度图像边界 计从前景跨越到背景的位置定义为边界 具体有 物体边界 这是物体的最外层和阴影边界的可见点集 阴影边界 毗邻与遮挡的背景上的点集 Veil点集 在被遮挡物边界和阴影边界之间的内插点 它们是有激光雷达获取的3D距离数
  • docker基础6——制作镜像(dockerfile)

    文章目录 一 基本了解 1 1 基于centos构建镜像 1 2 基于alpine制作镜像 二 常用指令 三 制作httpd镜像 一 基本了解 Dockerfile 是一个文本格式的配置文件 可以使用Dockerfile 快速创建自定义镜像
  • 飞机降落(dfs 全排列)

    题目描述 N 架飞机准备降落到某个只有一条跑道的机场 其中第 i 架飞机在 Ti 时刻到达机场上空 到达时它的剩余油料还可以继续盘旋 Di 个单位时间 即它最早 可以于 Ti 时刻开始降落 最晚可以于 Ti Di 时刻开始降落 降落过程需要
  • C# 枚举 enum(学习心得 17)

    枚举是一组命名整型常量 枚举类型是使用 enum 关键字声明的 C 枚举是值类型 枚举包含自己的值 且不能继承或传递继承 超级小白友好 讲解C 基础 每集5分钟轻松学习 拒绝从入门到放弃 声明 enum
  • linux服务器无法ssh怎么解决,linux服务器有可能无法连接ssh

    新安装的linux服务器有可能无法连接ssh 这可是怎么办 我的服务器是centOS6 9的版本 1 首先关闭 SELINUX vi etc selinux config SELINUX enforcing 注释掉 SELINUXTYPE
  • SpringBoot三种注解启动方式

    1 SpringBoot内置了Tomcat Jetty等容器 所以可以通过注解方式进行启动 2 SpringBoot注解启动的原理 SpringBoot main方法 是程序入口 启动SpringBoot项目 创建内置tomcat服务器 使
  • windows 10 webrtc 下载与编译以及遇到的问题

    下载 1 由于webrtc 源码在 墙外 所以需要科学上网 自行解决 当然现在webrtc 有国内的镜像地址 https webrtc org cn mirror 内附编译下载教程自行查阅 下载后只包含M79 和最新的master 分支 由
  • dao层动态sql利器!数据持久化jpa插件spring-data-jpa-extra?Fenix!

    把hibernate mybatis都整合到一个项目中 有没有觉得臃肿繁琐 我们知道 dao层 会用数据持久化框架 如hibernate mybatis等 他们都实现了jpa规范 几年来 spring想统领这个层 有spring jpa d
  • 追踪邮件发送者的地理位置

    今天偶然发现Gmail可以追踪发送者的IP位置 于是忍不住跃跃欲试 邮件不只有文本内容 还有额外的信息在每个邮件的header里面 一般的邮件客户端都是不能查看header的 Gmail和雅虎邮箱可以 网易邮箱的查看信头也能实现 打开Gma
  • 【GitHubShare】Web 前后端开发、以太坊基础、智能合约、密码学、数据分析

    区块链开发指南 作者通过 NFT 进行募资 然后将资金用于激励社区创作 让参与教程编写的人都能获益 从项目创建之初 教程便一直保持开放 GitHub github com dcbuild3r blockchain development g
  • 第二章 主机到网络层(网卡)--基于Linux3.10

    TCP IP协议栈模型 网络协议栈常用OSI七层模型 实际上Linux网络协议栈使用的却是四层模型 图2 1展示了OSI七层和四层模型它们之间各层对应关系 图2 1的最左侧一列是数据在协议栈上各层的称谓 frame位于主机到网络层 Laye
  • C++数组(数组定义方式、数组名作用、数组地址)

    文章目录 1 数组概述 2 一维数组 2 1 一维数组定义方式 2 2 一维数组数组名 2 2 1 一维数组名称的作用 2 2 2 一维数组名的2种特例情况 2 3 一维数组的地址 2 4 冒泡排序 3 二维数组 3 1 二维数组定义方式
  • logback--基础--03--配置--logger

    logback 基础 03 配置 logger 代码位置 https gitee com DanShenGuiZu learnDemo tree master logback learn 1 设置logger 1 1 lt root gt
  • 整理6个超好用的在线编辑器!

    随着 Web 开发对图像可扩展性 响应性 交互性和可编程性的需求增加 SVG 图形成为最适合 Web 开发的图像格式之一 它因文件小 可压缩性强并且无论如何放大或缩小 图像都不会失真而受到欢迎 然而 为了编辑 SVG 图像 需要使用 SVG

随机推荐

  • linux下显示隐藏文件

    linux下显示隐藏文件有两种可能 显示所有文件 包括隐藏文件 仅显示隐藏文件 显示所有文件 包含隐藏文件 ls A 只显示隐藏文件 l 或者 ls d
  • react + typescript解决TS2339:Property ‘..‘ does not exist on type ‘Readonly<{}>‘错误

    说来比较惭愧 已经两个多月没有更新博客了 由于手头上的项目快进入收尾阶段了 一直没有时间与欲望更新博客 前几天boss又下发了一个新的项目 采用taro react reflux typescript taroUI做一个微信小程序 说多了都
  • MS Chart 控件学习(二) 数据绑定

    Chart的数据绑定非常灵活支持多种形式的数据绑定 现在主要介绍几种常见的 一 关于数据源 可以在图表的设计界面 在属性设置窗口中的Series属性下的Points中添加需要的数据 可以在图表的设计界面中 在属性中绑定一个数据源 可以在后台
  • Spring框架基础学习

    Spring是什么 Spring是分层的Java SE EE应用 full stack轻量级开源框架 以IoC Inverse Of Control 反转控制 和AOP Aspect Oriented Programming 面向切面编程
  • Spring Boot框架基础概览

    基本概述 Spring Boot是所有基于Spring开发的项目的起点 Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件 它采用了 习惯优于配置 的理念 就像Maven整合了所有的JAR包
  • Ubuntu下的进程管理和启动项管理工具

    sudo apt get install bum
  • tkinter创建真正的嵌套子窗口

    tkinter创建真正的嵌套子窗口 引言 获取窗口句柄 方法一 方法二 创造嵌入窗口 嵌套在组件中 一些问题 一个简单的例子 2022 7 22问题解决 结语 引言 在我之前的这篇纯tkinter创建嵌套子窗口的文章中 只提及了3种方法 原
  • 选择排序 简单选择排序 直接选择排序的区别

    选择排序 图示过程如下 区分 直接选择排序每次遇到n 1 gt n 的时候就要发生交换 简单选择排序则只是记录下较大那个元素的位置 这样一轮过后这个记录变身本轮所要选取的最大值 而每轮需要确定的位置已由外层循环确定 只需将最大元素位置记录所
  • face alignment (人脸对齐)

    face alignment 是计算机视觉的一个热点研究问题 人脸对齐作为人脸识别系统中的一个重要组成部分 人脸对齐的性能在人脸识别系统起着举足轻重的作用 人脸对齐的目的是定位出人脸面部关键点的位置 这些关键点通常是人脸中具有语义的器官 比
  • 【人工智能】推荐系统算法

    推荐系统算法详解 一 推荐系统详解 1 基于人口统计学的推荐算法 基于人口统计学的推荐机制 Demographic based Recommendation 是一种最易于实现的推荐方法 它只是简单的根据系统用户的基本信息发现用户的相关程度
  • 第一次用上 Android Studio 2.3 过程及错误解决

    因为要开发Android5 0的缘故 抛弃了eclipse转到了Android Studio 第一次使用就是遇到了许多问题 终于是解决问题了 特意写一篇博文给各位要准备从eclipse转到Android Studio 由于之前使用eclip
  • Archiving With Multiple Destinations Fails With ORA-16040

    fact Oracle Server Enterprise Edition 9 0 fact Oracle Server Enterprise Edition 8 1 symptom Archiving fails symptom ORA
  • 【开源】团队版 ChatGPT Web 应用,多用户,免登录

    Muchat 团队版 ChatGPT Web 应用 多用户 免登录 适合公司 组织或小团体内部使用 有人乍一看目录觉得只是发布了个 exe 但实际代码在各个子仓库中 本仓库只是一个入口 特性 无需登录 输入卡密即可使用 支持匿名试用 可设置
  • Unity中烘焙光照,同mesh同uv的模型烘焙光照时共用一张光照贴图

    我们再开发中 经常会遇到需要烘焙场景光照的情况 但是尴尬的是 一个场景中你好几个物体用的都是一个贴图 但是不同mesh 或者是相同mesh 你都会如下图 多出一张光照贴图 正常unity开发的解决办法是合并mesh 来降低光照贴图数量 但是
  • vnc 连接不上,出现Warning: zhouziqi:1 is taken because of /tmp/.X11-unix/X1

    楼主不知道怎么回事 突然就边不上VNC了 我就打算重新启动服务 发现服务启不来 我用 journalctl xe命令出现下面的东西 Apr 24 21 30 24 zhouziqi runuser 23390 pam unix runuse
  • ScriptManager的用法

    脚本管理控件 ScriptManger 是ASP NET AJAX中非常重要的控件 通过使用ScriptManger能够进行整个页面的局部更新的管理 ScriptManger用来处理页面上局部更新 同时生成相关的代理脚本以便能够通过Java
  • 怎么画因果图?因果图绘图步骤详解

    因果图设计法 因果图法是一种利用图解法分析输人的各种组合情况的测试方法 它考虑了输入条件的各种组合及输入条件之间的相互制约关系 并考虑输出情况 例如 某一软件要求输人地址 具体到市区 如 北京 昌平区 天津 南开区 其中第2个输人受到第1个
  • C++tuple快速而随意的数据结构

    初始化 lt 学号 姓名 年龄 gt tuple
  • 转:通过注册表查看操作系统默认编码的方法

    在 转 使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系 介绍了一种通过chcp查看windows操作系统默认编码的方法 同时还有一种通过注册表查看默认编码的方法 虽然是以没有dos命令简单 但也可以使用
  • mbedtls交换服务器证书,mbedtls

    mbedtls系列文章 Demo工程源码 https github com Mculover666 mbedtls study demo 本工程基于STM32L41RCT6开发板 包含了本系列文章中所编写的所有Demo 持续更新 文章目录