SSL_CTX_SET_MODE(3SSL)

الاسم
SSL_CTX_set_mode، SSL_CTX_clear_mode، SSL_set_mode، SSL_clear_mode، SSL_CTX_get_mode، SSL_get_mode - معالجة وضع محرك SSL

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

 long SSL_CTX_set_mode(SSL_CTX *ctx, long mode);
 long SSL_CTX_clear_mode(SSL_CTX *ctx, long mode);
 long SSL_set_mode(SSL *ssl, long mode);
 long SSL_clear_mode(SSL *ssl, long mode);

 long SSL_CTX_get_mode(SSL_CTX *ctx);
 long SSL_get_mode(SSL *ssl);

الوصف
SSL_CTX_set_mode() يُضيف الوضع المُعيَّن عبر قناع بت في mode إلى ctx. الخيارات المُعيَّنة سابقًا لا تُمسح. SSL_CTX_clear_mode() يُزيل الوضع المُعيَّن عبر قناع بت في mode من ctx.

SSL_set_mode() يُضيف الوضع المُعيَّن عبر قناع بت في mode إلى ssl. الخيارات المُعيَّنة سابقًا لا تُمسح. SSL_clear_mode() يُزيل الوضع المُعيَّن عبر قناع بت في mode من ssl.

SSL_CTX_get_mode() يُرجع الوضع المُعيَّن لـ ctx.

SSL_get_mode() يُرجع الوضع المُعيَّن لـ ssl.

ملاحظات
تغييرات الوضع التالية متوفرة:

SSL_MODE_ENABLE_PARTIAL_WRITE
    يسمح لـ SSL_write_ex(..., n, &r) بالإرجاع مع 0 < r < n (أي الإبلاغ عن النجاح عند كتابة سجل واحد فقط). يعمل هذا بطريقة مشابهة لـ SSL_write(). عندما لا يُعيَّن (المبدئي)، SSL_write_ex() أو SSL_write() سيُبلغان عن النجاح فقط بعد كتابة الكتلة الكاملة. بمجرد أن يُرجع SSL_write_ex() أو SSL_write() بنجاح، كُتبت r بايت، ويجب على الاستدعاء التالي لـ SSL_write_ex() أو SSL_write() إرسال n-r بايت المتبقية فقط، مقلدًا سلوك write().

    لا يمكن تفعيل هذا الوضع أثناء وجود عملية كتابة غير مكتملة.

SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER
    يجعل من الممكن إعادة محاولة SSL_write_ex() أو SSL_write() مع موقع مخزن مؤقت مُغيَّر (يجب أن تبقى محتويات المخزن المؤقت كما هي). هذا ليس المبدئي لتجنب المفهوم الخاطئ بأن SSL_write() غير المحظور يتصرف مثل write() غير المحظور.

SSL_MODE_AUTO_RETRY
    أثناء العمليات العادية، قد تحتاج سجلات بيانات غير تطبيقية إلى الإرسال أو الاستقبال لا يعلم بها التطبيق. إذا عُولج سجل بيانات غير تطبيقي، يمكن لـ SSL_read_ex(3) و SSL_read(3) الإرجاع بفشل والإشارة إلى الحاجة لإعادة المحاولة مع SSL_ERROR_WANT_READ. إذا عُولج مثل هذا السجل، يتسبب العلم SSL_MODE_AUTO_RETRY في محاولة معالجة السجل التالي بدلاً من الإرجاع.

    في بيئة غير محظورة، يجب أن تكون التطبيقات مستعدة للتعامل مع عمليات قراءة/كتابة غير مكتملة. تعيين SSL_MODE_AUTO_RETRY لـ BIO غير محظور سيعالج سجلات البيانات غير التطبيقية حتى لا تتوفر بيانات إضافية أو يُعالج سجل بيانات تطبيقي.

    في بيئة محظورة، ليست التطبيقات دائمًا مستعدة للتعامل مع الدوال التي تُرجع تقارير وسيطة مثل طلبات إعادة المحاولة، وسيتسبب تعيين العلم SSL_MODE_AUTO_RETRY في إرجاع الدوال فقط بعد معالجة ناجحة لسجل بيانات تطبيقي أو فشل.

    قد يكون إيقاف تشغيل SSL_MODE_AUTO_RETRY مفيدًا مع BIOs المحظورة في حال استخدامها مع شيء مثل select() أو poll(). وإلا، قد يتعطل الاستدعاء لـ SSL_read() أو SSL_read_ex() عند إرسال سجل غير تطبيقي دون إرسال بيانات تطبيقية.

SSL_MODE_RELEASE_BUFFERS
    عندما لا نحتاج بعد الآن إلى مخزن قراءة أو مخزن كتابة لـ SSL معين، فحرر الذاكرة التي كنا نستخدمها لحفظه. استخدام هذه العلامة يمكن أن يوفر حوالي 34 كيلوبايت لكل اتصال SSL خامل. لا تأثير لهذه العلامة على اتصالات SSL v2 أو اتصالات DTLS.

SSL_MODE_SEND_FALLBACK_SCSV
    أرسل TLS_FALLBACK_SCSV في ClientHello. يجب تعيينها فقط بواسطة التطبيقات التي تعيد الاتصال بإصدار بروتوكول مخفض؛ انظر draft-ietf-tls-downgrade-scsv-00 للتفاصيل.

    لا تفعّل هذا إذا كان تطبيقك يحاول مصافحة عادية. استخدم هذا فقط في محاولات التخفيض الصريحة، وفقًا للتوجيهات في draft-ietf-tls-downgrade-scsv-00.

SSL_MODE_ASYNC
    فعّل المعالجة غير المتزامنة. قد تشير عمليات الإدخال/الإخراج TLS إلى إعادة محاولة مع SSL_ERROR_WANT_ASYNC عند تعيين هذا الوضع إذا استُخدم محرك قادر على المعالجة غير المتزامنة لأداء العمليات التعمية. انظر SSL_get_error(3).

SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG
    الإصدارات الأقدم من OpenSSL كان بها خطأ في حساب طول التسمية المستخدم لحساب السر المشترك لزوج النقاط الطرفية. كان الخطأ هو تضمين الصفر الختامي في طول التسمية. تعيين هذا الخيار يُفعّل هذا السلوك للسماح بالتوافق مع هذه التطبيقات المعطوبة. يُرجى ملاحظة أن تعيين هذا الخيار يكسر التوافق مع التطبيقات الصحيحة. هذا الخيار ينطبق فقط على DTLS عبر SCTP.

جميع الأوضاع معطلة مبدئيًا باستثناء SSL_MODE_AUTO_RETRY والذي هو مفعّل مبدئيًا منذ 1.1.1.

القيم المُرجعة
SSL_CTX_set_mode() و SSL_set_mode() يُرجعان قناع البت الجديد للوضع بعد إضافة mode.

SSL_CTX_get_mode() و SSL_get_mode() يُرجعان قناع البت الحالي.

انظر أيضًا
ssl(7), SSL_read_ex(3), SSL_read(3), SSL_write_ex(3) أو SSL_write(3), SSL_get_error(3)

التاريخ
أُضيف SSL_MODE_ASYNC في OpenSSL 1.1.0.

حقوق النسخ
حقوق النشر 2001-2023 لمؤلفي مشروع 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.