SSL_CTX_SET_CIPHER_LIST(3ssl)

الاسم
SSL_CTX_set_cipher_list, SSL_set_cipher_list, SSL_CTX_set_ciphersuites, SSL_set_ciphersuites, OSSL_default_cipher_list, OSSL_default_ciphersuites - اختيار قائمة SSL_CIPHERs المتاحة

موجز
 #include <openssl/ssl.h>

 int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str);
 int SSL_set_cipher_list(SSL *ssl, const char *str);

 int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str);
 int SSL_set_ciphersuites(SSL *s, const char *str);

 const char *OSSL_default_cipher_list(void);
 const char *OSSL_default_ciphersuites(void);

الوصف
SSL_CTX_set_cipher_list() تُعيِّن قائمة المُعمِّيات المتاحة (TLSv1.2 وما دونه) لـ ctx باستخدام سلسلة التحكم str. يُوصف تنسيق السلسلة في openssl-ciphers(1). تُورث قائمة المُعمِّيات بواسطة جميع كائنات ssl المنشأة من ctx. لا تؤثر هذه الدالة على مجموعات المُعمِّيات TLSv1.3. استخدم SSL_CTX_set_ciphersuites() لتكوينها. ctx يجب ألا يكون NULL.

SSL_set_cipher_list() تُعيِّن قائمة المُعمِّيات (TLSv1.2 وما دونه) فقط لـ ssl.

SSL_CTX_set_ciphersuites() تُستخدم لتكوين مجموعات المُعمِّيات TLSv1.3 المتاحة لـ ctx. هذه قائمة بسيطة مفصولة بنقطتين (":") لأسماء مجموعات المُعمِّيات TLSv1.3 حسب ترتيب الأفضلية. أسماء مجموعات المُعمِّيات TLSv1.3 الصالحة هي:

TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_CCM_SHA256
TLS_AES_128_CCM_8_SHA256
TLS_SHA384_SHA384 - سلامة فقط
TLS_SHA256_SHA256 - سلامة فقط

القائمة الفارغة مسموحة. القيمة المبدئية لهذا الإعداد هي:

"TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256"

SSL_set_ciphersuites() مماثلة لـ SSL_CTX_set_ciphersuites() باستثناء أنها تُكوِّن مجموعات المُعمِّيات لـ ssl.

OSSL_default_cipher_list() تُرجع سلسلة المُعمِّي المبدئية لمُعمِّيات TLSv1.2 (وما قبله). OSSL_default_ciphersuites() تُرجع سلسلة المُعمِّي المبدئية لمجموعات المُعمِّيات TLSv1.3.

ملاحظات
سلسلة التحكم str لـ SSL_CTX_set_cipher_list() و SSL_set_cipher_list() و SSL_CTX_set_ciphersuites() و SSL_set_ciphersuites() يجب أن تكون قابلة للاستخدام عالميًا وألا تعتمد على تفاصيل تكوين المكتبة (المُعمِّيات المترجمة). لذلك لا يُجرى أي فحص نحوي. العناصر غير المعروفة، لأن المُعمِّيات المقابلة غير مترجمة أو لأنها كُتبت بشكل خاطئ، تُتجاهل ببساطة. يُشار إلى الفشل فقط إذا لم يُجمع أي مُعمِّي على الإطلاق.

يُشار إلى أن تضمين مُعمِّي لاستخدامه في القائمة هو شرط ضروري. في جانب العميل، التضمين في القائمة كافٍ أيضًا ما لم يستبعده مستوى الأمان. في جانب الخادم، تُطبق قيود إضافية. جميع المُعمِّيات لها متطلبات إضافية. مُعمِّيات ADH لا تحتاج إلى شهادة، لكن معاملات DH يجب أن تكون قد وُضعت. جميع المُعمِّيات الأخرى تحتاج إلى شهادة ومفتاح مقابلين.

لا يمكن اختيار مُعمّي RSA إلا عند توفر شهادة RSA. تحتاج مُعمّيات RSA التي تستخدم DHE إلى شهادة ومفتاح ومعاملات DH إضافية (انظر SSL_CTX_set_tmp_dh_callback(3)).

لا يمكن اختيار مُعمّي DSA إلا عند توفر شهادة DSA. تستخدم مُعمّيات DSA دائمًا تبادل مفاتيح DH، وبالتالي تحتاج إلى معاملات DH (انظر SSL_CTX_set_tmp_dh_callback(3)).

عندما لا تُستوفى هذه الشروط لأي مُعمّي في القائمة (مثلًا، يدعم العميل فقط مُعمّيات RSA للتصدير بطول مفتاح غير متماثل يبلغ 512 بت، ولم يُهيأ الخادم لاستخدام مفاتيح RSA مؤقتة)، يُنشأ خطأ "لا يوجد مُعمّي مشترك" (SSL_R_NO_SHARED_CIPHER) وسيفشل المصافحة.

OSSL_default_cipher_list() و OSSL_default_ciphersuites() تستبدلان SSL_DEFAULT_CIPHER_LIST و TLS_DEFAULT_CIPHERSUITES على التوالي. تعريفات قائمة المُعمّيات مُهملة اعتبارًا من الإصدار 3.0.

القيم المُرجعة
SSL_CTX_set_cipher_list() و SSL_set_cipher_list() تُرجعان 1 إذا أمكن اختيار أي مُعمّي، و0 عند الفشل التام.

SSL_CTX_set_ciphersuites() و SSL_set_ciphersuites() تُرجعان 1 إذا تم تكوين قائمة حُزم المُعمّيات المطلوبة، و0 بخلاف ذلك.

انظر أيضًا
ssl(7), SSL_get_ciphers(3), SSL_CTX_use_certificate(3), SSL_CTX_set_tmp_dh_callback(3), openssl-ciphers(1)

التاريخ
OSSL_default_cipher_list() و OSSL_default_ciphersites() جديدتان في الإصدار 3.0.

حقوق النسخ
حقوق النشر 2000-2024 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.