本文使用OpenSSL工具生成国密算法SM2的三级CA证书,组成证书链,并使用证书链签名客户端证书和服务端证书。 可以通过证书链对生成的客户端和服务端证书进行校验。 虽然OpenSSL工具可以使用SM2算法来生成并校验证书…
sm2_sign.c #include <stdio.h> #include <stdlib.h> #include <openssl/ec.h> #include <openssl/evp.h> int main(void) { int ret = -1, i; EVP_PKEY_CTX* pctx = NULL, * sctx = NULL; EVP_PKEY* pkey = NULL; EVP_MD_CTX* md_ctx = NULL, * md_ctx_verify = NULL; unsigned ...
gcc -o mysm2 *.c -I. -lcrypto 运行 三、OpenSSL EVP函数 sm2_enc_dec.c #include <stdio.h>#include<stdlib.h>#include<string.h>#include<openssl/ec.h>#include<openssl/evp.h>intmain(void) {intret = -1, i; EVP_PKEY_CTX*pctx = NULL, *ectx =NULL; EVP_PKEY*pkey =NULL; unsigned...
首先,我们需要加载公钥和签名文件。在C语言中,我们可以使用openssl库提供的API来加载公钥和签名文件。 #include<openssl/evp.h>#include<openssl/ec.h>#include<openssl/bio.h>#include<openssl/pem.h>intverify_signature(constchar*public_key_file,constchar*signature_file,constunsignedchar*data,size_tdata_len...
OpenSSL源码编译 1.1. 环境 WIN7 64bit, vs2013。 1.2. 编译 1)下载OpenSSL源码,解压至C盘根目录; 2)安装ActivePerl; 3)cmd.exe,进入openssl源码目录,执行命令“perl Configure VC-WIN32”; 4)执行命令“ms\do_ms”; 5)切换至目录“C:\Program Files\Microsoft Visual Studio 12.0\VC\bin”,执行命令“vcva...
SM2,SM3,SM4的C代码如下:使用了openssl开源库。 http://files.cnblogs.com/files/TaiYangXiManYouZhe/Sm2_sm3_sm4_c%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0.zip 当使用特定的芯片进行SM1或其他国密算法加密时,若用多个线程调用加密卡的API时,要考虑芯片对于多线程的支持情况。 以下为不使用openssl库的另...
1、SM2实现( 利openssl的evp)加解密#include #include #include #include openssl/ec.h #include openssl/evp.h/* Main function return value:0: main function executes successfully-1: an error occurs*/ int main(void)int ret = -1, i;EVP_PKEY_CTX *pctx = NULL, *ectx = NULL; EVP_PKEY *p...
/usr/local/openssl/bin/openssl ecparam -genkey -name SM2 -out SM2PrivateKey.pem 执行以下命令生成公钥 代码语言:javascript 代码运行次数:0 复制Cloud Studio 代码运行 /usr/local/openssl/bin/openssl ec -in SM2PrivateKey.pem -pubout -out SM2PublicKey.pem 结果示例: 国密SM2私钥SM2PrivateKey.pem 代码...
它在移动设备上的应用前景广阔,有助于提升移动场景下数字证书的安全性和便利性,为用户提供更好的数字身份认证和数据保护,SM2协同算法作为手机盾产品的核心算法,目前在平台上真正提供开源实现的很少,本人处于一种爱好实现了在OPENSSL开源代码的基础上实现了一种SM2的协同算法,可供各同仁参考研究。本次把测试源码分享给...
需要使用到openssl,所以我windows安装了openssl来进行调试,安装版本为openssl-1.1.1b,安装教程可以参考:https://blog.csdn.net/weixin_41642793/article/details/90407107 公钥及私钥介绍: 公钥:公钥是一个65字节长的字符数组,用于加密使用 组成:04 || X || Y,X和Y是公钥的坐标点,长度各为32位,这个需要理解 ...