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 命令行編譯工具,選擇相應的版本(x86和x64)
(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