OpenSSL 3.0 版本已经发布VS2019编译源码教程

1 OpenSSL 3.0版本在2020年五月发布

OpenSSL3.0 在2020年5月发布了第一个版本,随即在六月份又发布了一些alpha版本,版本修正了一些bug,增加了一些协议支持,继续支持国密sm2 ,sm3 ,sm4(从1.1.1版本开始支持)。

3.0版本完全兼容1.1.1版本接口,但低级别的MD2, MD4, MD5, MDC2,SHA1, SHA224, SHA256, SHA384, SHA512,AES,DES,ECDH,DSA,ECDSA,RSA接口都会被警告将要被弃用。但文档中没有提及要用什么接口替换,估计是全部用EVP接口替换,我在项目中基本都替换为了EVP接口。

2 OpenSSL 3.0版本使用VS2019编译过程

2.1 OpenSSL3.0 源码下载

源码可以到官方网站或者直接使用git进行下载

下载地址 ffmpeg.vip

或者使用git下载版本库上最新源码

git clone git://git.openssl.org/openssl.git

2.2 依赖工具安装

安装 perl 脚本解释器

下载 http://openssl.vip/download

安装 nasm 汇编器

默认会安装到用户目录

C:\Users\用户名\AppData\Local\bin\NASM

配置windows的环境变量,将此路径加入到环境变量path中

安装好后,重新打开控制台能够运行nasm 和perl命令

2.3 编译工具:VS2019社区版本

下载地址 http://openssl.vip/download 安装社区版本,安装后注册个用户就可以免费使用。

2.4 编译步骤

1)进入控制台(运行 CMD),或者编写批处理bat文件

或者直接运行菜单中的vs2019 命令行编译工具,选择相应的版本(x86x64

2)运行vs编译环境

打开菜单中VS2019中有对应的命令行工具,把地址复制过来

编译32位库版本

"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"

编译64位库版本

"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

3)进入openssl源码吗目录

cd openssl-3.0.0-alpha2

4)使用perl生成makefile文件

perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE } --prefix=%OUTPATH%

perl Configure VC-WIN32

VC-WIN32 表示生成32位程序 --prefix 是编译后输出的路径,默认会生成到C:\Program Files (x86)目录,因为要写到C盘,有可能会出错,如果控制台不是管理员方式运行

5)用nmake编译

#编译库源码

nmake

#编译测试程序

nmake test

# 安装openssl

nmake install

将编译好的文件安装到指定目录,默认是C:\Program Files (x86)\OpenSSL,如果是在C盘,运行控制台是需要有管理员权限

2.5 编译中的一些错误

'perl' 不是内部或外部命令,也不是可运行的程序

需要安装perl

NMAKE : fatal error U1064: 未找到 MAKEFILE 并且未指定目标

perl 生成makefile失败,可以清理掉重新生成,或者替换参数重新生成

NASM not found - make sure it's installed and available on %PATH%

安装nasm或者配置取消nasm

It looks like you don't have either nmake.exe or dmake.exe on your PATH, so you will not be able to execute the commands from a Makefile. You can install dmake.exe with the Perl Package Manager by running:

需要安装下载安装dmake

ppm install dmake

运行时错误:OPENSSL_Uplink(0FB024F8,08): no OPENSSL_Applink

复制applink.c文件到头文件路径#include <openssl/applink.c>

要观看全部内容请点击c++实战区块链核心密码学-基于openssl
https://ke.qq.com/course/2737429?tuin=10eec75

 

posted @ 2020-06-30 18:27  老夏课堂-夏曹俊  阅读(269)  评论(0编辑  收藏  举报