這是一個非常小的演示,它顯示了OpenSSL 3.0提供商模塊中密碼的最低要求。
該提供商實現了眾所周知的Vigenère密碼的擴展版本,涵蓋了整個字節值範圍,而不僅僅是字母字符。有關此密碼及其歷史的描述,請參見https://en.wikipedia.org/wiki/vigenère_cipher
毋庸置疑,在當今時代,該密碼不應在真實情況下使用,但是該實現可以用作其他密碼提供商開始的模板。如果您想真實地使用它,請回到16世紀
詳細的用戶文檔可以在Vigenere.md中找到。
為了完成源存儲庫,所有GIT子模型也必須是最新的。第一次,它們也需要初始化,如下所示:
git submodule update --init
下次,可以--init
。
構建此提供商需要CMAKE和它支持的建築工具鏈。
簡單配置,用於系統安裝OpenSSL 3:
cmake -S . -B _build
如果已安裝了其他位置,請執行以下操作,以{path}
替換為OpenSSL 3安裝目錄:
cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build
要構建,請執行此操作:
cmake --build _build
結果是_build/vigenere.so
或_build/Debug/vigenere.dll
。
OpenSSL提供了多種方法來指定可以在何處找到模塊的方法:
相關openssl
子命令的命令行選項。具體而言,應組合 - -provider-path
和-provider
選項,以添加另一個尋找提供商模塊的路徑,以及要加載的提供商的名稱。
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider-path _build -provider vigenere
-e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
參考:Openssl(1)
環境變量OPENSSL_MODULES
,可用於鏈接OpenSSL libcrypto的任何程序。
$ export OPENSSL_MODULES=_build
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider vigenere -e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
參考:Openssl-env(7)
以編程方式,如果您想在程序中執行以下操作-provider-path
在openssl
子命令中所做的事情。
參考:ossl_provider(3)