Ini adalah demonstrasi yang sangat kecil yang menunjukkan hal -hal minimum yang diperlukan untuk sandi dalam modul penyedia OpenSSL 3.0.
Penyedia ini mengimplementasikan versi diperpanjang dari Cipher Vigenère yang terkenal, yang mencakup seluruh jajaran nilai byte, bukan hanya karakter alfabet. Untuk deskripsi sandi ini, serta sejarahnya, lihat https://en.wikipedia.org/wiki/vigenère_cipher
Tak perlu dikatakan bahwa pada zaman sekarang ini, sandi ini tidak boleh digunakan dalam situasi nyata, tetapi implementasinya dapat digunakan sebagai templat untuk dimulainya penyedia cipher lainnya. Jika Anda ingin menggunakan ini secara nyata, kembalilah ke abad ke -16
Dokumentasi pengguna terperinci dapat ditemukan di Vigenere.md.
Untuk menyelesaikan repositori sumber, semua submodul GIT juga harus up to date. Pertama kali, mereka perlu diinisialisasi juga, sebagai berikut:
git submodule update --init
Lain kali, --init
dapat dilewati.
Membangun penyedia ini membutuhkan cmake dan alat pembangun yang didukungnya.
Konfigurasi sederhana, untuk pemasangan sistem OpenSSL 3:
cmake -S . -B _build
Jika Anda memiliki OpenSSL 3 yang diinstal di tempat lain, lakukan yang berikut ini, dengan {path}
diganti dengan direktori instalasi OpenSSL 3:
cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build
Untuk membangun, lakukan ini:
cmake --build _build
Hasilnya adalah _build/vigenere.so
atau _build/Debug/vigenere.dll
.
OpenSSL menyediakan sejumlah cara untuk menentukan di mana suatu modul dapat ditemukan:
Opsi baris perintah untuk sub -perintah openssl
yang relevan. Secara khusus, opsi -provider-path
dan -provider
harus digabungkan untuk menambahkan jalur lain untuk mencari modul penyedia, dan nama penyedia yang akan dimuat.
$ 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
Ref: OpenSSL (1)
Variabel Lingkungan OPENSSL_MODULES
, yang berfungsi untuk program apa pun yang menghubungkan libcrypto OpenSSL.
$ 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
Ref: OpenSSL-ENV (7)
Secara terprogram, jika Anda ingin melakukan dalam program Anda apa yang -provider-path
lakukan di sub -perintah openssl
.
Ref: Ossl_provider (3)