自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

原创 基于OpenSSL,实现C语言SM2的PKCS8的公私钥编码

在自己的学习过程中,可以参考网络中,自己创建一个CA中心,自己产生一个证书请求,自己用CA中心颁发一个自签名的证书,这样在验证过程中,就可以验证此证书了。下面我将给出针对C语言产生P10的实例。在接触密码学中,就会涉及到证书,我们在虚拟网络中产生信任,就要有一个信任源,而在密码层面,信任源就是颁布证书的认证中心,从而,证书就是我们可以相信的虚拟对象。在日常工作中使用密码,就一定会接触到OpenSSL,这个算法库带给我们的东西太多太多,不管是密码算法层面,还有代码框架和使用技巧上更是值得我们去学习和专研。

2023-04-26 15:19:04 727

原创 基于OpenSSL,实现C语言RSA的PKCS8的公私钥编码

在自己的学习过程中,可以参考网络中,自己创建一个CA中心,自己产生一个证书请求,自己用CA中心颁发一个自签名的证书,这样在验证过程中,就可以验证此证书了。下面我将给出针对C语言产生P10的实例。在接触密码学中,就会涉及到证书,我们在虚拟网络中产生信任,就要有一个信任源,而在密码层面,信任源就是颁布证书的认证中心,从而,证书就是我们可以相信的虚拟对象。在日常工作中使用密码,就一定会接触到OpenSSL,这个算法库带给我们的东西太多太多,不管是密码算法层面,还有代码框架和使用技巧上更是值得我们去学习和专研。

2023-04-26 14:53:18 373

原创 基于OpenSSL,实现C语言RSA的PKCS10的证书请求

在自己的学习过程中,可以参考网络中,自己创建一个CA中心,自己产生一个证书请求,自己用CA中心颁发一个自签名的证书,这样在验证过程中,就可以验证此证书了。这里的证书请求就是PKCS10,简称为P10。在接触密码学中,就会涉及到证书,我们在虚拟网络中产生信任,就要有一个信任源,而在密码层面,信任源就是颁布证书的认证中心,从而,证书就是我们可以相信的虚拟对象。具体调用方式如下,我添加了一些注释,便于理解,这里在使用RSA做签名和验签时不同于SM2,RSA在签名验签入参时,需要先对源数据进行hash计算。

2022-10-27 15:49:05 936 1

原创 基于OpenSSL,实现C语言SM2的PKCS10的证书请求

在自己的学习过程中,可以参考网络中,自己创建一个CA中心,自己产生一个证书请求,自己用CA中心颁发一个自签名的证书,这样在验证过程中,就可以验证此证书了。这里的证书请求就是PKCS10,简称为P10。在接触密码学中,就会涉及到证书,我们在虚拟网络中产生信任,就要有一个信任源,而在密码层面,信任源就是颁布证书的认证中心,从而,证书就是我们可以相信的虚拟对象。,这个算法库带给我们的东西太多太多,不管是密码算法层面,还有代码框架和使用技巧上更是值得我们去学习和专研。具体调用方式如下,我添加了一些注释,便于理解,

2022-10-27 10:36:19 1428 5

原创 基于OpenSSL,实现SM2密文数据的ASN1编码转换

在实际应用场景中会遇到ASN1数据的编码转换,如,在硬件密码库中使用的API接口和在OpenSSL中使用的接口,很有可能是两种格式数据的表现形式,因此,本文提供以下方式进行数据格式的转换。由于SM2密文格式分为C1C3C2和C1C2C3两种格式,所以在OpenSSL中并没有提供定义的ASN1编码结构和相关函数的定义,因为,需要用户自己定义ASN1编码的结构体。...

2022-08-27 16:06:03 1966 2

原创 基于OpenSSL,实现SM2签名数据的ASN1编码转换

在实际应用场景中会遇到ASN1数据的编码转换,如,在硬件密码库中使用的API接口和在OpenSSL中使用的接口,很有可能是两种格式数据的表现形式,因此,本文提供以下方式进行数据格式的转换。

2022-08-27 15:22:56 2165

原创 SM2公私钥的格式转换

在硬件密码库中使用的API接口和在OpenSSL中使用的接口,很有可能是两种格式数据的表现形式,因此,本文提供以下方式对SM2公私钥数据格式的转换。以下是经过整理后的SM2密钥对的格式转换,没有使用OpenSSL的函数库。SM2的公私钥格式转换非ASN1编码。..................

2022-08-27 13:47:15 2054

原创 基于OpenSSL,实现RSA公私钥的ASN1编码转换

在硬件密码库中使用的API接口和在OpenSSL中使用的接口,很有可能是两种格式数据的表现形式,因此,本文提供以下方式进行数据格式的转换。

2022-08-26 19:05:25 856

原创 基于OpenSSL,实现RSA签名使用的hash的ASN1编码转换

在实际应用场景中会遇到ASN1数据的编码转换,如,在硬件密码库中使用的API接口和在OpenSSL中使用的接口,很有可能是两种格式数据的表现形式,因此,本文提供以下方式进行数据格式的转换。在非对称密钥算法运算中,因为公私钥的特殊使用,会产生签名的场景,在做签名时,只是为了证明身份,而非保护数据,所以在签名时,是对数据的哈希进行签名。二进制转为ASN1编码。ASN1编码转为二进制。..............................

2022-08-26 14:17:28 505

原创 AES在OpenSSL的使用和ENGINE算法替换

从接触密码到现在,感触颇深。刚开始因为工作需要,自己学习OpenSSL和使用密码卡,作为密码界的新人,完全无处下手,OpenSSL代码又特别多,最困惑的就是函数入口在哪里?我需要包含什么头文件?怎样才能真正的调用对应的算法。所有的东西都需要从零开始,最初的代码只为了功能,毫无深度可言。现在回头来看,当时实在太年轻!在日常工作中使用密码,就一定会接触到OpenSSL,这个算法库带给我们的东西太多太多,不管是密码算法层面,还有代码框架和使用技巧上更是值得我们去学习和专研。本专栏订阅后可查看以下文章。......

2022-08-01 13:58:33 266

原创 SM4在OpenSSL的使用和ENGINE算法替换

sm4的EVP调用和engine算法替换,支持ecb,cbc,cfb,ofb,ctr模式

2022-08-01 10:23:03 450

原创 SM3在OpenSSL的使用和ENGINE算法替换

SM3计算哈希值,附带增加Z值的计算,即计算时添加用户ID和公钥。

2022-07-31 13:34:18 634

原创 RAND随机数在OpenSSL中的使用和ENGINE算法替换

只要使用引擎替换算法,那么随机数的引擎是必须的,真随机数在密码的使用中尤其重要

2022-07-29 13:06:33 862

原创 SM2在OpenSSL的使用和ENGINE算法替换

SM2使用引擎方式,以及EVP方式调用

2022-07-28 21:49:19 949

原创 RSA在OpenSSL中的使用和ENGINE算法替换

从2020年接触密钥到现在,感触颇深。刚开始的一年因为工作需要,自己专研OpenSSL和密码卡,作为密码界的新人,所有的东西都需要学习。在日常工作中使用密码,就一定会接触到强大的OpenSSL,这个算法库带给我们的东西太多太多,不管是密码算法层面的,还有代码框架和使用技巧上更是值得我们去学习和专研。.............................................

2022-07-27 18:03:07 625

原创 GMT 0009-2012数据格式-GO语言操作

SM2椭圆曲线密码算法(以下简称SM2)是国家密码管理局批准的一组算法,其中包括SM2-1椭圆曲线数字签名算法、SM2-2椭圆曲线密钥协商协议、SM2-3椭圆曲线加密算法。0009-2012标准的目标是保证SM2使用的正确性,为SM2密码算法的使用制定统一的数据格式和使用方法。本文主要介绍ASN1对;;;等四中类型。前三种都比较容易实现,本文主要介绍密钥对保护数据的封装和解析!!!.........

2022-07-21 13:30:58 908

原创 Golang-PKCS8

PKCS8:全名《Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification》,从名称可以看出它是一个专门用来存储私钥而定义的格式规范。个人理解:PKCS1只定义了对RSA密钥的编码规范,而PKCS8则可以对范围更大的私钥进行编码!!!本章内容只列举RSA和SM2两种类型的密钥编码。2、解码二、私钥1、编码2、解码...

2022-07-06 15:04:58 971

原创 Golang-PKCS1

PKCS1:全名《Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications》最新版本2.2 ,从名称上可以看出它是针对RSA算法的一个规范。里面包含了RSA加密、解密、签名验签等所有的内容,当然也包含了私钥的格式。因为PKCS1只是针对RSA的一个规范,所以,PKCS1填充也是针对RSA加解密的填充。在开源库中并没有PKCS1填充的函数封装。因此,本人在加解密算法中提取了填充代码封装了函数。2、UnPadd

2022-07-06 14:39:22 600

原创 GO语言-gox交叉编译

最近在工作中使用GO语言进行编码开发,因为项目中的环境时arm64,所以总是需要交叉建议,在arm下才能正确运行,GO语言还是非常强大的,在windows下就可以交叉编译各个环境的二进制文件,Gox是Go交叉编译的一种简单,简洁的工具,其行为类似要安装Gox,请使用。我们标记版本,因此可以随时签出该标记并进行编译。安装成功后会生成gox命令行,使用gox --help二、使用使用命令gox --osarch-list可以查看默认的编译环境,如下为显示的部分内容。如果想指定一个环境进行编译,则

2022-07-05 13:02:05 1312

原创 Golang-PKCS7

P7签名验签,数字信封

2022-06-24 16:48:13 1442 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除