g2uc

TeamBlog

[笔记]VS中OpenSSL环境配置示例

今天在接触国密sm2的时候在调试相关示例代码时需要配置OpenSSL环境,故转载记录一篇环境配置的步骤教程.
原文地址:https://cuiqingcai.com/2266.html

下载OpenSSL库

OpenSSL库大家可以自行下载源码然后用ruby进行编译,另外我们也可以选择直接下载编译好的类库。

这里我们利用的后者,在此提供一个下载链接。
OpenSSL-Win32
下载完成之后解压,比如我的放到了D盘。

新建项目

首先,我们找一段测试代码,在此利用的是 AES 算法的示例。

#include <stdio.h>
#include <openssl/aes.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    unsigned char key[16+1] = "my-key-i-choosed"; // 128bits key (应该是真正的随机数才好)
    char pt1[16+5+1] = "0123456789abcdef12345";   // 明文
    char ct[16+5+1];  // 密文
    char pt2[16+5+1]; // 解密后的明文

    AES_KEY k;
    unsigned char iv1[16+1] = {"1023456789abcdef"}; // 16+1,加密用
    unsigned char iv2[16+1] = {"1023456789abcdef"}; // 16+1,解密用

    {    // single blcok test
        AES_set_encrypt_key(key, 16*8, &k); 
        AES_encrypt((unsigned char*)pt1, (unsigned char*)ct, &k);

        AES_set_decrypt_key(key, 16*8, &k);
        AES_decrypt((unsigned char*)ct, (unsigned char*)pt2, &k);

        if (memcmp(pt1, pt2, 16)==0)
            puts("AES block ok");
        else
            puts("AES block err");
    }

    {    // cfb mode (stream mode)
        int num=0;
        AES_set_encrypt_key(key, 16*8, &k); 
        AES_cfb128_encrypt((unsigned char*)pt1, (unsigned char*)ct,
            16+5, &k, (unsigned char*)iv1, &num, AES_ENCRYPT);

        num=0;
        AES_set_encrypt_key(key, 16*8, &k); // MUST as enc
        AES_cfb128_encrypt((unsigned char*)ct, (unsigned char*)pt2,
            16+5, &k, (unsigned char*)iv2, &num, AES_DECRYPT);        

        if (memcmp(pt1, pt2, 16+5)==0)
            puts("AES CFB mode ok");
        else
            puts("AES CFB mode err");
    }
    system("pause");
    return 0;
}

接下来新建一个项目,win32控制台程序,空项目,完成。


新建源文件,我取名叫做 aes.cpp,将代码复制进去,可以看到代码最初是在报错的。

好,接下来我们进行环境配置。

环境配置

右键项目名称,弹出一个菜单,选择属性。

在VC++目录选项卡中,添加包含目录和库目录。

在这里,我的包含目录就是刚才解压的OpenSSL目录的include目录,库目录则是lib目录。

注意:分号要是英文分号,英文分号!

接下来选择连接器选项卡,输入libeay.lib和ssleay32.lib两个附加依赖项。

现在右击项目,重新生成。

我们可以看到,程序可以正常生成exe了。

但是直接运行的话会报错,是因为缺少dll文件。

此时,将项目中的libeay32.dll和ssleay32.dll文件放入项目的debug目录即可。

重新运行exe程序,发现已经正常运行。

至此,VS配置OpenSSL环境的过程已经全部完成。

发表评论:

搜索
标签列表
网站分类
文章归档
站点信息
  • 文章总数:20
  • 页面总数:0
  • 分类总数:4
  • 标签总数:7
  • 评论总数:1
  • 浏览总数:566
控制面板
您好,欢迎到访网站!
  查看权限

Powered By Z-BlogPHP 1.5.2 Zero

Copyright g2uc Rights Reserved.

公告

请把不属于分类中比赛的题目wp发布在essay分类!另外,题解文章请记得在标签里标注题目类型!