C++ OpenSSL库 源码编译及使用(VS2019)

源码编译

下载源码

git clone https://github.com/openssl/openssl.git

如果打不开可以试试:

git clone git@gitee.com:epson/openssl.git

安装 Perl

按照作者建议的建议使用 Strawberry Perl,直接官网下载安装就好,免费。

https://strawberryperl.com/

加入环境变量,一般安装完会自动加入。

测试下安装成功

安装 NASM

https://www.nasm.us/

 加入环境变量

打开控制台 

根据需要编译的平台选择相应的控制台,64位的选择x64,32位的选择x86

 

配置

perl Configure VC-WIN64A no-asm --debug --prefix=E:\Common\OpenSSL --openssldir=E:\Common\SSL

可查看openssl文件夹的 INSTALL.md

 

32位:VC-WIN32

64位:VC-WIN64A

不使用汇编代码:no-asm

Debug:--debug

Release:--release(默认)

 最后安装的目录:--prefix=E:\Common\OpenSSL

一些配置说明文件存放目录:--openssldir=E:\Common\SSL

编译

nmake

大概30分钟左右,没有提示错误就是成功了。

继续

nmake test

大概40分钟左右,Result: Pass 就是成功了

生成安装

nmake install

成功

需要用到的头文件

lib文件

因为是编译的动态库,所以还有dll文件

注意需要添加包含目录

简单测试

#include <iostream>
#include <openssl/evp.h>

#ifndef _DEBUG
#ifdef _WIN64
#pragma comment (lib,"lib/x64/Release/libcrypto.lib")
#pragma comment (lib,"lib/x64/Release/libssl.lib")
#else
#pragma comment (lib,"lib/x86/Release/libcrypto.lib")
#pragma comment (lib,"lib/x86/Release/libssl.lib")
#endif // _WIN64
#else
#ifdef _WIN64
#pragma comment (lib,"lib/x64/Debug/libcrypto.lib")
#pragma comment (lib,"lib/x64/Debug/libssl.lib")
#else
#pragma comment (lib,"lib/x86/Debug/libcrypto.lib")
#pragma comment (lib,"lib/x86/Debug/libssl.lib")
#endif // _WIN64
#endif

int main()
{
    const char* src = "Test OpenSSL MD5!";
    unsigned char dst[0x10] = { 0 };
    unsigned int dst_len = 0x10;
    size_t src_len = strlen(src);

    EVP_MD_CTX *ctx;
    ctx = EVP_MD_CTX_new();
    EVP_MD_CTX_init(ctx);
    EVP_DigestInit(ctx, EVP_md5());
    if (EVP_DigestUpdate(ctx, src, src_len))
    {
        if (EVP_DigestFinal(ctx, dst, &dst_len))
        {
            EVP_MD_CTX_free(ctx);
        }
    }
}

运行结果:

关于版本

这里从 git 拉下来的是master分支,最新3.0版。和之前1.x.x版本差别很大。

比如编译1.0.2k版本

直接再openssl官网上下载源码

/source/old/index.html

解压后,使用管理员身份打开 vs 控制台

#64位debug静态库
perl Configure debug-VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

#64位release静态库
perl Configure VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

#64位debug动态库
perl Configure debug-VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

#64位release动态库
perl Configure VC-WIN64A no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_win64a.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

#32位debug静态库
perl Configure debug-VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

#32位release静态库
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

#32位debug动态库
perl Configure debug-VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

#32位release动态库
perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL --openssldir=E:\SSL
ms\do_ms.bat
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install

参考

Openssl 3.0安装流程——Windows平台,VS2019,Strawberryperl_Original 博客空间-CSDN博客

Demo下载(含库)

OpenSSL3.0Demo-C++文档类资源-CSDN下载

openssl1.1.1动态库-C++文档类资源-CSDN下载

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XRayser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值