首页 > 其他分享 >实验二OpenSSL API

实验二OpenSSL API

时间:2022-10-26 14:46:56浏览次数:93  
标签:MD mdctx 1.1 tar OpenSSL openssl API 实验 EVP

任务列表
参考 https://blog.csdn.net/bruce135lee/article/details/81811403 调用OpenSSL API

  • 0 推荐在openEuler中实现 ,参考https://www.cnblogs.com/rocedu/p/6012545.html第三节
  • 1 提交相关代码码云(或github)链接
  • 2 提交不少于6张编译测试过程截图
  • 3 至少包含SM4,SM3的测试

实验过程
一、下载源码,解压后进行编译
1.下载源码
https://www.openssl.org/source/openssl-1.1.1-pre4.tar.gz
https://www.openssl.org/source/openssl-1.1.1-pre5.tar.gz
2.解压缩(下载tar:yum install tar)

tar xzvf openssl-1.1.1-pre4.tar.gz
tar xzvf openssl-1.1.1-pre5.tar.gz

3.编译步骤

cd openssl-1.1.1-pre5
./config
make

4.配置LD_LIBRARY_PATH并检查openssl可执行程序版本号

export LD_LIBRARY_PATH=`pwd`
./apps/openssl version

二、检查 SM3 哈希校验和
echo -n "abc" | ./apps/openssl dgst -SM3

三、检查椭圆曲线是否包含SM2
./apps/openssl ecparam -list_curves | grep SM2

四、检查对称算法
./apps/openssl enc -ciphers

五、测试SM4-ECB电子密码本模式, 选取AES-128-ECB作为参考
编译代码:

gcc -Iinclude -c main.c
gcc main.o libcrypto.so -o a.out
export LD_LIBRARY_PATH=`pwd`
ldd a.out
./a.out

六、sm3的代码与测试
代码:

#include <stdio.h>
#include <string.h>
#include <openssl/evp.h>
#include <openssl/err.h>


void tDigest(){
	unsigned char md_value[EVP_MAX_MD_SIZE];
	unsigned int md_len;
	EVP_MD_CTX *mdctx;
	mdctx = EVP_MD_CTX_new();
	char msg1[] = "20201319";
	char msg2[] = "WXL";
	
	EVP_MD_CTX_init(mdctx);
	EVP_DigestInit_ex(mdctx, EVP_sm3(), NULL);
	EVP_DigestUpdate(mdctx, msg1, strlen(msg1));
	EVP_DigestUpdate(mdctx, msg2, strlen(msg2));
	EVP_DigestFinal_ex(mdctx, md_value, &md_len);
	EVP_MD_CTX_destroy(mdctx);

	printf("Debug:Message1%s and Message2%s digest to:\n",msg1, msg2);
	for(int i = 0; i<md_len; i++){

		printf("0x%02x ", md_value[i]);
	}
	printf("\n");
}

int main(){

	OpenSSL_add_all_algorithms();
	tDigest();
	return 0;
}

测试

标签:MD,mdctx,1.1,tar,OpenSSL,openssl,API,实验,EVP
From: https://www.cnblogs.com/wxl2761407387/p/16828305.html

相关文章

  • open-api 算法实现
    作者:20201303张奕博要求:推荐在openEuler中实现,参考https://www.cnblogs.com/rocedu/p/6012545.html第三节提交相关代码码云(或github)链接(我使用博客园)提交不少于6张编......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、......
  • OpenSSL API使用
    OpenSSLAPI使用配置LD_LIBRARY_PATH并检查openssl可执行程序版本号检查SM3哈希校验和检查椭圆曲线是否包含SM2检查对称算法SM4-自测试数据/**文件名:https:......
  • 实验二 OpenSSL API使用
    截图代码/**文件名:https://github.com/liuqun/openssl-sm4-demo/blob/cmake/src/main.c*/#include<stddef.h>#include<stdio.h>#include<stdlib.h>#inc......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践基础要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;下......
  • 实验7:基于REST API的SDN北向应用实践
    目录一、基本要求1、编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight(2)下发指令删除s1上的流表数据·创......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一.基础实验1.编写python程序,调用odl北向接口实现以下功能①利用mininet平台搭建下图网络拓扑并连接odl编写Python程序,调用OpenDa......
  • 实验二 OpenSSL API使用
    一、任务详情参考 https://blog.csdn.net/bruce135lee/article/details/81811403 调用OpenSSLAPI0推荐在openEuler中实现,参考https://www.cnblogs.com/rocedu/p/60......
  • 实验7:基于REST API的SDN北向应用实践
    一、基本要求1.编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight(2)下发指令删除s1上的流表数据delet......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环......