在CLion中配置OpenSSL开发环境

1.环境

平台:Windows10

开发工具:CLion

OpenSSL:OpenSSL 1.1.1m(32位)

工具链:MingGW530_32

Win32OpenSSL-1_1_1m.msi-网络安全文档类资源-CSDN文库

Windows版本的OpenSSL下载地址Win32/Win64 OpenSSL Installer for Windows - Shining Light Productionsicon-default.png?t=M7J4http://slproweb.com/products/Win32OpenSSL.html

2.SM3摘要Demo

2.1 使用CLion,新建一个C项目。

  1. 选择新建项目的类型,可以是C执行程序,也可以是C++执行程序。我们选择C执行程序;
  2. 选择项目存放的路径。我们命名项目名称为05_OpenSSL;
  3. 选择语言标准,使用默认的C99标准;
  4. 点击右下角Create俺就,创建项目。

项目中有两个重要文件:main.cCMakeLists.txt

main.c :源文件

CMakeLists.txt:CMake的配置文件,用于对软件编译过程进行控制。

 2.1运行程序

点击CLion右侧的三角Run按钮,在CLion下方输出程序运行结果。打印出Hello,World!

3. 默认的CMakeList.txt

新建项目中的CMakeLists.txt如下图:

# 指定CMake最低版本要求
cmake_minimum_required(VERSION 3.17)

#设置项目名称
project(05_OpenSSL C)

#环境变量 CMAKE_C_STANDARD 为99 ,使用C99标准
set(CMAKE_C_STANDARD 99)

#生成的执行文件05_OpenSSL ,main.c为生成可执行文件需要的源代码
add_executable(05_OpenSSL main.c)

4. Demo程序:使用OpenSSL的SM3计算摘要

4.1 修改CMakeLists.txt

增加OpenSSL头文件和库,链接库:

cmake_minimum_required(VERSION 3.17)
project(05_OpenSSL C)

set(CMAKE_C_STANDARD 99)


#定义两个变量,表示头文件路径和库路径
set(INC_DIR D:\\ProgramFiles\\OpenSSL-Win32\\include)
set(LINK_DIR D:\\ProgramFiles\\OpenSSL-Win32\\lib)

#依次设置头文件目录、库目录、要链接的库 (在add_executable 之前)
include_directories(${INC_DIR})
link_directories(${LINK_DIR})
link_libraries(openssl libcrypto)


add_executable(05_OpenSSL main.c)

#链接库 在add_executable之后 03_OpenSSL为工程名 ssl为库名称
target_link_libraries(05_OpenSSL openssl)

其中Windows中OpenSSL安装的路径为:D:\\ProgramFiles\\OpenSSL-Win32\\ 

4.2 编码main.c

使用SM3计算摘要:

main.c

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

int main() {
    printf("Hello, OpenSSL!\n");

    /* 加载所有算法 */
    OpenSSL_add_all_algorithms();

    /* SM3摘要算法 */
    unsigned char md_value[EVP_MAX_MD_SIZE];        //保存输出的摘要值的数组
    unsigned int md_len;
    EVP_MD_CTX *pmdctx = EVP_MD_CTX_new();          //EVP消息结构体
    char msg1[] = "Test Message1";                  //待计算摘要的消息1
    char msg2[] = "Test Message2";                  //待计算只要的消息2
    int i=0;


    EVP_MD_CTX_init(pmdctx);                        //初始化摘要结构体

    //设置摘要算法和密码算法引擎,这里密码算法使用SM3
    //算法引擎使用OpenSSL默认引擎,即软算法
    EVP_DigestInit_ex(pmdctx,EVP_sm3(),NULL);
    EVP_DigestUpdate(pmdctx,msg1,strlen(msg1));     //调用摘要Update计算msg1的摘要
    EVP_DigestUpdate(pmdctx,msg2,strlen(msg2));     //调用摘要Update计算msg2的摘要
    EVP_DigestFinal_ex(pmdctx,md_value,&md_len);    //摘要结束,输出摘要值
    
    
    /* 打印结果 */
    printf("原始数据%s和%s的摘要为:\n",msg1,msg2);
    for(i=0;i<md_len;i++)
    {
        printf("%02X ",md_value[i]);
    }
    printf("\n");

    return 0;
}

4.3 运行,输出如下结果:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
配置CLion开发环境来进行STM32开发之前,首先需要准备好以下几个步骤: 1. 安装CLion: 首先,你需要下载并安装最新版本的CLion集成开发环境。 2. 安装插件:为了支持STM32开发,你需要在CLion安装STM32插件。可以在CLion的插件市场搜索并安装适合你的STM32插件。 3. 安装编译工具链:在进行STM32开发时,你需要安装适合的编译工具链。可以选择GNU ARM Embedded Toolchain作为编译工具链。你可以从其官方网站下载适合你操作系统的编译工具链,并按照它们的安装说明进行安装。 4. 配置编译器路径:在CLion配置编译器路径,以便CLion可以调用编译工具链来编译和构建STM32项目。你可以在CLion的设置找到“Build, Execution, Deployment”选项,然后在“Toolchains”选项卡配置编译器路径。 5. 创建STM32项目:在CLion创建一个新的STM32项目。你可以选择使用STM32CubeMX来生成初始化代码,并将其导入到CLion项目。或者,你也可以手动创建一个空白项目,并添加所需的STM32驱动文件和库。 6. 编写代码和调试:在CLion编写你的STM32代码,并使用调试工具来调试你的代码。你可以配置调试器来连接到你的STM32开发板,并使用CLion的调试功能来监视和调试代码的执行。 请注意,以上步骤仅为一般指导,具体的配置步骤可能会因为不同的STM32开发板和工具链而有所不同。建议你参考相关的文档和资源,以获得更详细的指导和指令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[ESP32][环境配置]Clion配置ESP-IDF开发环境,支持编译下载和menucofig](https://blog.csdn.net/qq_38844263/article/details/123989779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值