欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:openssl3.2 - 編譯

柚子快報(bào)邀請(qǐng)碼778899分享:openssl3.2 - 編譯

http://yzkb.51969.com/

文章目錄

openssl3.2 - 編譯概述OpenSSL源碼下載編譯目標(biāo)如何編譯前置環(huán)境 - perl前置環(huán)境 - VS前置環(huán)境 - NASM快速編譯步驟編譯 - Quick startInstall PerlInstall NASMUse Visual Studio Developer Command Prompt with administrative privilegesFrom the root of the OpenSSL source directory enter補(bǔ)充 - perl Configure 的選項(xiàng)列表補(bǔ)充 - 編譯一個(gè)debug版補(bǔ)充 - 加入zlib特性debian12下的openssl3.2的編譯和設(shè)置裝了一個(gè)debian12.4

安裝開(kāi)發(fā)工具編譯openssl3.2

備注備注備注 - openssl編譯時(shí), 不要指定動(dòng)態(tài)依賴(lài)的dll為絕對(duì)路徑.編譯release版的openssl3.2END

openssl3.2 - 編譯

概述

ECC實(shí)現(xiàn)沒(méi)有輕量級(jí)的工程, 那就只能用openssl了. 先從頭編譯一個(gè)OpenSSL.

OpenSSL源碼下載

當(dāng)前OpenSSL穩(wěn)定版為3.2, 官方源碼包url : https://www.openssl.org/source/openssl-3.2.0.tar.gz 將OpenSSL工程遷出到本地(學(xué)習(xí)和查找資料) : https://github.com/openssl/openssl.git

編譯目標(biāo)

在win10下編譯成x64版本的OpenSSL, 用VS2019來(lái)編譯源碼包.

如何編譯

看源碼包中的README.md

前置環(huán)境 - perl

前置環(huán)境 - VS

我這已經(jīng)有了VS2019企業(yè)版

前置環(huán)境 - NASM

去NASM官方, 看到當(dāng)前穩(wěn)定版為2.16.01, 選win64版本.

快速編譯步驟

不過(guò), 看到文檔中有說(shuō), 如果OpenSSL的編譯選用運(yùn)行時(shí)庫(kù)(忘了那個(gè)文檔這么說(shuō), 反正是官方的), 要和應(yīng)用程序選用的運(yùn)行時(shí)庫(kù)配套, 否則有問(wèn)題. 所以不想采用快速編譯步驟. 想再看看INSTALL.md, 看看編譯參數(shù)怎么寫(xiě). 編譯出供VS2019用的debug版和release版的OpenSSL輸出. 包含4種運(yùn)行時(shí)庫(kù)的版本. 我們平時(shí)主要用的運(yùn)行時(shí)庫(kù)就2種(/MD, /MDd), 因?yàn)槎际褂肈LL版本的運(yùn)行時(shí)庫(kù), 不靜態(tài)包含運(yùn)行時(shí)庫(kù). INSTALL.md寫(xiě)的挺詳細(xì)的, 有編譯選項(xiàng)怎么寫(xiě), 我主要關(guān)注怎么選擇不同的運(yùn)行時(shí)庫(kù). 看了一圈沒(méi)看到如何選擇運(yùn)行時(shí)庫(kù). 算了, 那就按照快速編譯的文檔, 將編譯命令整理一下, 執(zhí)行編譯. 也許編譯完, 安裝后, 就有不同運(yùn)行時(shí)庫(kù)的版本.

編譯 - Quick start

Install Perl

這步有了, 前面已經(jīng)裝了 ActivePerl-5.26.0.2600-MSWin32-x86-64int-403866.rar 且在命令行下可以直接訪(fǎng)問(wèn)到Perl

C:\Users\chenx>perl --version

This is perl 5, version 26, subversion 0 (v5.26.0) built for MSWin32-x86-multi-thread-64int

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Binary build 2600 [403866] provided by ActiveState http://www.ActiveState.com

Built Aug 30 2017 16:46:44

Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on

this system using "man perl" or "perldoc perl". If you have access to the

Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Install NASM

裝了nasm-2.16.01-installer-x64.exe, 安裝位置 c:\nasm 打開(kāi)命令行, nasm.exe并不在PATH環(huán)境變量中. 因?yàn)閚asm僅僅在編譯時(shí)使用, 準(zhǔn)備在命令行中臨時(shí)加環(huán)境變量的方法, 可以減輕環(huán)境變量的污染.

Use Visual Studio Developer Command Prompt with administrative privileges

要編譯x64版本, 打開(kāi)vs2019x64本地命令行, 選擇管理員身份運(yùn)行. 設(shè)置臨時(shí)變量, 加入nasm路徑

**********************************************************************

** Visual Studio 2019 Developer Command Prompt v16.11.32

** Copyright (c) 2021 Microsoft Corporation

**********************************************************************

[vcvarsall.bat] Environment initialized for: 'x64'

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise>set path=c:\nasm;%path%

測(cè)試一下, nasm是否可以訪(fǎng)問(wèn)

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise>nasm -v

NASM version 2.16.01 compiled on Dec 21 2022

在vs2019命令行中也能訪(fǎng)問(wèn)到perl, 和普通命令行中一致.

From the root of the OpenSSL source directory enter

進(jìn)入openssl源碼包路徑, 用perl配置openssl, 選擇輸出路徑前綴, 選擇VS x64版本 默認(rèn)的安裝路徑要改一下, 不想用.

cd /d D:\3rd_prj\crypt\openssl-3.2.0

perl Configure VC-WIN64A --prefix=c:\openssl_3d2 --openssldir=c:\openssl_3d2\common

openssl提示, 說(shuō)缺nmake.exe或者dmake.exe. 但是nmake是可以在當(dāng)前命令行運(yùn)行的. 如果在vs2019命令行中, 不能運(yùn)行nmake, 那還了得… 應(yīng)該是openssl搞錯(cuò)了, 不理這個(gè)錯(cuò)誤提示.

nmake

編譯的時(shí)間好長(zhǎng), 等編譯完成.

nmake test

// 測(cè)試的時(shí)間也好長(zhǎng)

All tests successful.

Files=294, Tests=3408, 867 wallclock secs ( 4.92 usr + 0.98 sys = 5.91 CPU)

Result: PASS

測(cè)試通過(guò)了, 從里面能看出有些特性沒(méi)有, 以后如果需要, 可以在配置中加上, 重新編譯, 如果沒(méi)有特殊要求, 就用openSSL默認(rèn)的編譯輸出.

01-test_fipsmodule_cnf.t ................ skipped: Test only supported in a fips build

01-test_symbol_presence.t ............... skipped: This is unsupported on platforms that don't have 'nm'

03-test_fipsinstall.t ................... skipped: Test only supported in a fips build

04-test_bio_tfo.t ....................... skipped: This test requires enable-tfo

05-test_rc5.t ........................... skipped: rc5 is not supported by this OpenSSL build

07-test_bio_comp.t ...................... skipped: No compression algorithms

20-test_cli_fips.t ...................... skipped: Test only supported in a fips build with security checks

30-test_acvp.t .......................... skipped: ACVP is not supported by this test

30-test_afalg.t ......................... skipped: test_afalg not supported for this build

30-test_pairwise_fail.t ................. skipped: These tests are unsupported in a non fips build

40-test_rehash.t ........................ skipped: test_rehash is not available on this platform

60-test_x509_store.t .................... skipped: test_rehash is not available on this platform

70-test_tls13certcomp.t ................. skipped: test_tls13certcomp needs compression and algorithms enabled

80-test_pkcs12.t ........................ skipped: Non-Greek system locale

82-test_tfo_cli.t ....................... skipped: test_tfo_cli needs tfo enabled

90-test_cert_comp.t ..................... skipped: Certificate compression is disabled in this OpenSSL build

90-test_fipsload.t ...................... skipped: Test is disabled with disabled fips

從測(cè)試結(jié)果來(lái)看, 缺的特性: fips, tfo, rc5, compression algorithms, ACVP, afalg, rehash, 安裝

nmake install

安裝后的目錄結(jié)構(gòu)

C:\openssl_3d2>tree

文件夾 PATH 列表

卷序列號(hào)為 BA70-59B2

C:.

├─bin

├─common

│ ├─certs

│ ├─misc

│ └─private

├─html

│ ├─man1

│ ├─man3

│ ├─man5

│ └─man7

│ └─img

├─include

│ └─openssl

└─lib

├─engines-3

└─ossl-modules

安裝后的html/manx目錄中都是.html文件, 方便查資料. 安裝后的目錄里面沒(méi)有demo工程, 需要去看源碼包內(nèi)的demo.

補(bǔ)充 - perl Configure 的選項(xiàng)列表

Configure 是配置文件, 在openssl-3.2.0目錄下. 用vsCode打開(kāi)openssl-3.2.0, 可以看到各種選項(xiàng), 可以根據(jù)自己的需要來(lái)配置 perl Configure的參數(shù)

往下翻翻, 查找 “–”, 還能看到更具體的參數(shù)

補(bǔ)充 - 編譯一個(gè)debug版

默認(rèn)編譯出來(lái)的openssl版本, 在應(yīng)用程序單步調(diào)試時(shí), 也能進(jìn)入到openssl源碼中, 但是發(fā)現(xiàn), 有一些底層函數(shù)源碼無(wú)法步入. 嘗試編譯一個(gè)debug版試試, 是否能解決想進(jìn)入所有openssl底層函數(shù)的需求. 在Configure中多加一個(gè) --debug選項(xiàng), 其他一樣

打開(kāi)vs2019x64本地命令行, 選擇管理員身份運(yùn)行

set path=c:\nasm;%path%

cd /d D:\3rd_prj\crypt\openssl-3.2.0

perl Configure VC-WIN64A --debug --prefix=c:\openssl_3d2 --openssldir=c:\openssl_3d2\common

nmake

nmake test

nmake install

試過(guò)了, 加了–debug選項(xiàng)的庫(kù), 可以單步到最底下的函數(shù)實(shí)現(xiàn). 如果這個(gè)debug版本不能步入一個(gè)函數(shù), 有可能這個(gè)函數(shù)的實(shí)現(xiàn)是一個(gè)空宏.

補(bǔ)充 - 加入zlib特性

在過(guò)官方的demos, 到了CMS工程時(shí), 需要zlib庫(kù)來(lái)進(jìn)行壓縮操作. 默認(rèn)的openssl3.2官方編譯步驟, 是沒(méi)有zlib特性的.

先自己編譯一個(gè)zlib庫(kù)(zlib - 編譯)

要加的參數(shù)如下: zlib-dynamic --with-zlib-include=our_zlib_header_dir --with-zlib-lib=our_zlib_dll_path_name

為啥要加這些參數(shù)? 可以參考 Configure中的內(nèi)容, 加上自己猜測(cè)和實(shí)驗(yàn)就知道了.

可用的編譯腳本如下:

打開(kāi)vs2019x64本地命令行, 選擇管理員身份運(yùn)行

set path=c:\nasm;%path%

cd /d D:\3rd_prj\crypt\openssl-3.2.0

perl Configure VC-WIN64A --debug zlib-dynamic --with-zlib-include=c:\zlib_1d3 --with-zlib-lib=c:\zlib_1d3\my_zlib_1d3.dll --prefix=c:\openssl_3d2 --openssldir=c:\openssl_3d2\common

nmake

nmake test

nmake install

一定要執(zhí)行 ‘nmake test’, 必須測(cè)試能完全通過(guò). e.g. --with-zlib-lib=our_zlib_dll_path_name 如果指定錯(cuò)了, nmake test 就會(huì)報(bào)錯(cuò).

debian12下的openssl3.2的編譯和設(shè)置

想驗(yàn)證一下openssl證書(shū)操作的腳本在debian12下的效果, 確認(rèn)一下官方test\certs目錄下是否為最新可用的腳本.

裝了一個(gè)debian12.4

巨長(zhǎng)時(shí)間

安裝好的debian12.4需要做的工作如下:

add現(xiàn)有用戶(hù)到sudo組更換國(guó)內(nèi)源配置ssh客戶(hù)端訪(fǎng)問(wèn)

已經(jīng)做了筆記debian12.4配置

后續(xù)的操作都通過(guò)ssh客戶(hù)端連接上debian12.4, 用普通用戶(hù)來(lái)操作

安裝開(kāi)發(fā)工具

如果要編譯openssl3.2, 需要先安裝編譯工具包.

sudo apt-get install build-essential gcc g++ libtool automake

編譯openssl3.2

配置好vmware16中的共享目錄. 將源碼.tar.gz放里面

在自己的home目錄中新建一個(gè)openssl目錄, 將共享目錄中的源碼包拷貝過(guò)來(lái).

mkdir ./openssl

sudo cp /mnt/hgfs/crypt/openssl-3.2.0.tar.gz ./openssl/

解壓 進(jìn)入oepnssl3.2的源碼包目錄.

tar -xzvf ./openssl-3.2.0.tar.gz

cd ./openssl-3.2.0/

# 去root用戶(hù)下編譯,測(cè)試,安裝opennssl工程

su - root

cd /home/lostspeed/openssl/openssl-3.2.0/

# 先編譯一個(gè)默認(rèn)選項(xiàng)的openssl出來(lái), 做測(cè)試用. 如果以后需要啥特性, 再加入選項(xiàng)重新編譯

./Configure --debug --prefix=/usr/local/openssl_3d2 --openssldir=/usr/local/openssl_3d2/common

make

make test

make install

但是我這次安裝完, openssl 就是直接能用的

root@debian12d4x64:/home/lostspeed/openssl# pwd

/home/lostspeed/openssl

root@debian12d4x64:/home/lostspeed/openssl# openssl --help

help:

Standard commands

asn1parse ca ciphers cmp

...

看一下openssl的版本, 是不是我現(xiàn)在編譯安裝的.

root@debian12d4x64:/home/lostspeed/openssl# openssl --version -a

Invalid command '--version'; type "help" for a list.

root@debian12d4x64:/home/lostspeed/openssl# openssl version -a

OpenSSL 3.0.11 19 Sep 2023 (Library: OpenSSL 3.0.11 19 Sep 2023)

built on: Mon Oct 23 17:52:22 2023 UTC

platform: debian-amd64

options: bn(64,64)

compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.11=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2

OPENSSLDIR: "/usr/lib/ssl"

ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-3"

MODULESDIR: "/usr/lib/x86_64-linux-gnu/ossl-modules"

Seeding source: os-specific

CPUINFO: OPENSSL_ia32cap=0xfffa32034f8bffff:0x18405f5ef1bf27eb

++, 不是我安裝的, debian原來(lái)就帶了舊版的openssl. 再確認(rèn)一下

root@debian12d4x64:/home/lostspeed/openssl# apt list openssl -a

Listing... Done

openssl/stable,now 3.0.11-1~deb12u2 amd64 [installed,automatic]

先卸掉debian12.4自帶的openssl

sudo apt-get --purge remove openssl

重新安裝一下自己編譯的openssl3.2

cd /home/lostspeed/openssl/openssl-3.2.0

make install

現(xiàn)在在普通目錄中, 運(yùn)行openssl, 會(huì)找不到. 因?yàn)闆](méi)有安裝到/usr/bin

root@debian12d4x64:/home/lostspeed/openssl# openssl version -a

-bash: /usr/bin/openssl: No such file or directory

root@debian12d4x64:/home/lostspeed/openssl# ls -l /usr/bin/openssl

ls: cannot access '/usr/bin/openssl': No such file or directory

切到普通用戶(hù), 再試試

lostspeed@debian12d4x64:~/openssl$ openssl version -a

-bash: openssl: 未找到命令

還是因?yàn)椴辉?usr/bin中引起的問(wèn)題. 做一個(gè)軟鏈接到/usr/bin中.

sudo rm /usr/bin/openssl

sudo ln -s /usr/local/openssl_3d2/bin/openssl /usr/bin/openssl

確認(rèn)軟鏈接指向正確

lostspeed@debian12d4x64:~$ ls -l /usr/bin/openssl

lrwxrwxrwx 1 root root 34 1月20日 14:51 /usr/bin/openssl -> /usr/local/openssl_3d2/bin/openssl

此時(shí), 去普通目錄去 openssl --help, 會(huì)報(bào)錯(cuò)的, 說(shuō).so沒(méi)找到之類(lèi)的.

lostspeed@debian12d4x64:~$ pwd

/home/lostspeed

lostspeed@debian12d4x64:~$ openssl version -a

openssl: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSSL_3.2.0' not found (required by openssl)

openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.2.0' not found (required by openssl)

lostspeed@debian12d4x64:~$ ls -l /lib/x86_64-linux-gnu/libssl.so.3

-rw-r--r-- 1 root root 696352 10月24日 01:52 /lib/x86_64-linux-gnu/libssl.so.3

/lib/x86_64-linux-gnu/libssl.so.3 是舊版的openss遺留下來(lái)的so. 雖然舊版openssl已經(jīng)卸載了, 還有垃圾so留在系統(tǒng)中.

因?yàn)榇藭r(shí), 需要在debian下安裝共享庫(kù)so, 因?yàn)閐ebian不知道去哪找我們安裝好的.so, 需要登記.

cd /etc/ld.so.conf.d/

sudo touch ./openssl.conf

sudo vi ./openssl.conf

#進(jìn)入編輯模式, 添加庫(kù)的路徑

# openssl so positon

/usr/local/openssl_3d2/lib64

# 保存退出

看一下編輯好的openssl庫(kù)配置文件

lostspeed@debian12d4x64:/etc/ld.so.conf.d$ cat ./openssl.conf

#進(jìn)入編輯模式, 添加庫(kù)的路徑

# openssl so positon

/usr/local/openssl_3d2/lib64

重新載入庫(kù)配置

sudo ldconfig

現(xiàn)在, 用普通用戶(hù), 在普通目錄, 再看看openssl是否能操作成功.

lostspeed@debian12d4x64:~$ pwd

/home/lostspeed

lostspeed@debian12d4x64:~$ openssl version -a

OpenSSL 3.2.0 23 Nov 2023 (Library: OpenSSL 3.2.0 23 Nov 2023)

built on: Sat Jan 20 06:02:40 2024 UTC

platform: linux-x86_64

options: bn(64,64)

compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O0 -g -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL

OPENSSLDIR: "/usr/local/openssl_3d2/common"

ENGINESDIR: "/usr/local/openssl_3d2/lib64/engines-3"

MODULESDIR: "/usr/local/openssl_3d2/lib64/ossl-modules"

Seeding source: os-specific

CPUINFO: OPENSSL_ia32cap=0xfffa32034f8bffff:0x18405f5ef1bf27eb

可以看到, 此時(shí)用普通用戶(hù)權(quán)限, 就可以操作openssl了

備注

此致, 在linux下編譯配置openssl環(huán)境, 已經(jīng)完成. 如果要在debian1.24下做openssl的實(shí)驗(yàn), 就可以開(kāi)始弄了.

備注

發(fā)現(xiàn)一個(gè)嚴(yán)重問(wèn)題, 因?yàn)閷⑾到y(tǒng)自帶的ssl卸載了, 替換成了openssl3.2的庫(kù), 重新啟動(dòng)后, 無(wú)法正常啟動(dòng)ssh服務(wù). 只能在虛擬機(jī)中測(cè)試openssl, 無(wú)法用ssh客戶(hù)端連接到debian12.4x64做實(shí)驗(yàn). 先這樣吧, 以后再研究, 如何替換debian12.4系統(tǒng)自帶的ssl環(huán)境. 應(yīng)該就是安裝的位置不是ssl服務(wù)默認(rèn)的路徑, 還有就是openssl-server的openssl接口不是最新的(如果是那樣的話(huà), openssl-server這一套都要用最新的openssl3.2替換后重新安裝).

備注 - openssl編譯時(shí), 不要指定動(dòng)態(tài)依賴(lài)的dll為絕對(duì)路徑.

因?yàn)榫幾g完的dll如果用到其他計(jì)算機(jī), 如果依賴(lài)的dll路徑變了, 就會(huì)使openssl找不到依賴(lài)的dll. 比較好的方法是openssl配置時(shí)指定依賴(lài)的dll為.\x.dll, 這樣只要openssl組件和依賴(lài)的dll擺在一起, 就可以讓openssl正常運(yùn)行. 已經(jīng)做了筆記 => openssl3.2 - 編譯 - zlib.dll不要使用絕對(duì)路徑 因?yàn)樵谂渲弥袑⒁蕾?lài)dll指定為了.\x.dll, 編譯完后直接測(cè)試是通不過(guò)的, 需要在測(cè)試前手工拷貝依賴(lài)的dll到源碼目錄下的4個(gè)子目錄, 然后才能測(cè)試(nmake test); 同理, 安裝(make install)后, 依賴(lài)的dll也沒(méi)有被安裝, 需要自己手工拷貝到安裝目錄.

編譯release版的openssl3.2

因?yàn)閷h(huán)境變量都清掉了,寫(xiě)一個(gè)bat來(lái)啟動(dòng)編譯環(huán)境

@echo off

:: openssl_build_env.bat

TITLE openssl_build_env.bat

set PATH=C:\Windows\system32;C:\Windows;C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\3rd_prj\ms\vcpkg\;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\my_dev\lib\nuget;C:\Perl\site\bin;C:\Perl\bin;c:\nasm\;

call %comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"

這個(gè)啟動(dòng)腳本中,啟動(dòng)了vs2019本地x64命令行,環(huán)境變量中加了perl,nasm

然后執(zhí)行下列命令,編譯一個(gè)release版的openssl3.2

cd /d D:\3rd_prj\crypt\openssl-3.2.0_release

perl Configure VC-WIN64A --release zlib-dynamic --with-zlib-include=D:\my_dev\lib\zlib_1d3 --with-zlib-lib=.\my_zlib_1d3.dll --prefix=D:\my_dev\lib\openssl_3d2_release --openssldir=D:\my_dev\lib\openssl_3d2_release\common

nmake

nmake test

nmake install

配置,編譯,測(cè)試,安裝均成功。

END

柚子快報(bào)邀請(qǐng)碼778899分享:openssl3.2 - 編譯

http://yzkb.51969.com/

推薦文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18524661.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪(fǎng)問(wèn)

文章目錄