2025年2月9日 星期日

Cross compile openssl to aarch64


主要功能

加密與解密:

OpenSSL提供了多種對稱加密(如AES、DES、3DES、RC4等)和非對稱加密演算法(如RSA、DSA、ECC等),用於資料的加密和解密。

對稱加密使用相同的金鑰進行加密和解密,而非對稱加密使用一對金鑰(公鑰和私鑰)進行加密和解密。

SSL/TLS協定:

OpenSSL實現了SSL(Secure Sockets Layer)和TLS(Transport Layer Security)協議,用於安全的資料傳輸。

這些協定保護網頁瀏覽、電子郵件通訊、文件傳輸等的安全性。

數位憑證:

OpenSSL支援數位憑證的產生、簽署和驗證,包括X.509憑證。

數位憑證用於身份驗證和建立安全通訊連接,包含了公鑰和其他識別訊息,由受信任的憑證授權單位(CA)簽署。

哈希函數:

OpenSSL包含多種雜湊演算法,如MD5、SHA-1(現已不再視為安全)、SHA-256、SHA-3等,用於驗證資料的完整性和產生資料摘要。

隨機數產生:

OpenSSL提供了隨機數產生器來產生高品質的隨機數,這是加密操作的關鍵組成部分。

密碼學工具:

OpenSSL包含加密解密命令列工具、憑證管理工具、SSL/TLS客戶端和伺服器實作等多種密碼學工具。

受信任的根憑證:

OpenSSL包含一組受信任的根證書,用於驗證其他實體的數位證書。


Soource Code 下載

Configure 配置

./Configure no-asm shared no-async --prefix=/usr/local/arm-openssl-3.0 CROSS_COMPILE=/Your_toolchain_bin_folder_path/arm-linux-gnueabihf-

如果是用 sudo apt-get install crossbuild-essential-arm64 安裝交叉編譯環境,

CROSS_COMPILE=arm-linux-gnueabihf- 這樣就可以了,因為路徑都設定在環境變數裡了。

no-asm:這個選項表示在編譯過程中關閉 OpenSSL 的硬體加速功能,也就是不使用 ASM (Assembly, 彙編語言) 指令集來加速加密運算。開啟這些功能能讓 OpenSSL 在特定處理器架構上更高效,但有時候在 cross-compiling 或是不同平台間需要保證一致性時,你會選擇禁用這些加速特性。這樣可以確保在編譯的過程中,不會依賴特定硬體的指令集。

no-async:這個選項是關閉 OpenSSL 的異步加密功能。OpenSSL 會在一些操作上使用異步技術來提升性能,尤其是在大量加密操作中。但在某些平台或架構上,異步功能可能會出現問題或者導致不穩定,特別是在進行 cross-compiling 時。這個選項使得編譯出來的 OpenSSL 沒有異步加密支持。

make 編譯

make後出現錯誤:

aarch64-linux-gnu-gcc: error: unrecognized command-line option '-m64'

make[1]: *** [Makefile:5474: apps/lib/libapps-lib-app_libctx.o] Error 1

make[1]: Leaving directory '/home/dv/prj/mylib/src/openssl-3.4.0'

make: *** [Makefile:3772:build_sw] 錯誤 2

解決方法:
删除Makefile中全部 -m64

make -j$(nproc)

make install


 


沒有留言:

張貼留言