هذا عرض صغير جدًا يوضح الحد الأدنى للأشياء المطلوبة للتشفير في وحدة مزود OpenSSL 3.0.
ينفذ هذا الموفر نسخة ممتدة من تشفير Vigenère المعروف ، والتي تغطي مجموعة كاملة من قيم البايت ، وليس فقط الأحرف الأبجدية. للحصول على وصف لهذا التشفير ، وكذلك تاريخه ، انظر https://en.wikipedia.org/wiki/Vigenère_cipher
وغني عن القول أنه في هذا اليوم وهذا العصر ، لا ينبغي استخدام هذا الشفرات في موقف حقيقي ، ولكن يمكن استخدام التنفيذ كقالب لمقدمي المشفرات الآخرين للبدء. إذا كنت ترغب في استخدام هذا بشكل حقيقي ، عد إلى القرن السادس عشر
يمكن العثور على وثائق المستخدم التفصيلية في Vigenere.md.
لإكمال مستودع المصدر ، يجب أن تكون جميع النسيحات الفرعية GIT محدثة أيضًا. في المرة الأولى ، يجب تهيئتها أيضًا ، على النحو التالي:
git submodule update --init
في المرة القادمة ، يمكن تخطي --init
.
يتطلب بناء هذا المزود cmake و charchain البناء التي يدعمها.
تكوين بسيط ، لتثبيت نظام OpenSSL 3:
cmake -S . -B _build
إذا كنت قد تم تثبيت OpenSSL 3 في مكان آخر ، فقم بما يلي بدلاً من ذلك ، مع استبدال {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
، الذي يعمل مع أي برنامج يرتبط 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)