OpenSSL学习笔记
20191318王泽文
sm3 sm4 api调用学习
在OpenSSL中,sm3 sm4可以通过OpenSSL的evp.h调用。
sm3
sm4
测试使用sm3的调用。
简单编写了调用sm3的测试代码:
#include <openssl/evp.h>
#include <string.h>
int main(){
unsigned char data[128] = "20191318wzw";
int data_size = strlen((char*)data);
//初始化EVP上下文
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
//掉用EVP简化接口编码 国密SM3
unsigned char out[64] = { 0 };
unsigned int out_size = 0;
EVP_Digest(data, data_size, out, &out_size, EVP_sm3(), NULL);
printf("%s
",data);
printf( "国密SM3:");
int i;
for ( i = 0; i < 64; i++)
{
printf("%x",out[i]);
}
printf(" ( %d)
",out_size);
}
测试结果:
与直接使用命令行的对比:
完全一致
测试使用sm4的调用。
参考链接https://blog.csdn.net/bruce135lee/article/details/81811403
测试结果:
代码链接
https://gitee.com/Yushino/system-job/blob/master/sm3t.c
https://gitee.com/Yushino/system-job/blob/master/sm4t.c