openssl簡介
????OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。
開發(fā)環(huán)境
Ubuntu 16.04
arm-hisiv200-linux-gnueabi
開發(fā)環(huán)境不一定是我這配置,只要是linux操作系統(tǒng),和ARM對應(yīng)的交叉工具鏈就可以。
目標(biāo)環(huán)境
華為海思
移植步驟
1.從OpenSSL官網(wǎng)下載最新源碼 openssl-1.0.2l.tar.gz。
2.執(zhí)行下面命名解壓縮:
tar zxvf openssl-1.0.2l.tar.gz
3.進入剛解壓的目錄cd openssl-1.0.2l/,執(zhí)行下面指令,做相應(yīng)的配置:
setarch i386 ./config no-asm shared --prefix=$(pwd)/__install
????no-asm: 是在交叉編譯過程中不使用匯編代碼代碼加速編譯過程,原因是它的匯編代碼是對arm格式不支持的。
????shared :生成動態(tài)連接庫。
????--prefix :指定make install后生成目錄的路徑,不修改此項則默認為OPENSSLDIR目錄(/usr/local/ssl)。
? ? ?setarch i386:聲明生成的是32位CPU,如果是64位CPU則去除該部分。
4.修改Makefile:
CC= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc (此處交叉工具鏈用絕對路徑,當(dāng)然也可以將路勁添加到環(huán)境變量就只需寫工具鏈即可:CC= arm-linux-gnueabi-gcc)
刪除 CFLAG= 中的-m64
AR= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ar $(ARFLAGS) r
RANLIB= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib
NM= /home/public/zx902/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm
SHARED_LDFLAGS=
5.執(zhí)行下面命令,編譯OpenSSL庫:
make
????6.執(zhí)行下面命令,將編譯好的庫文件拷貝到指定目錄:
make install
????當(dāng)前目錄下的__install目錄下生成了頭文件和庫文件。
????7.注意
在項目的Makefile文件里頭加入openssl的頭文件和庫文件的聲明,此時需要注意引用庫的順序為:-lssl -lcrypto,如果為 -lcrypto -lssl就會編譯錯誤。