SSL_CTX_SET_CERT_CB(3ssl)

الاسم
SSL_CTX_set_cert_cb, SSL_set_cert_cb - معالجة دالة الاستدعاء للشهادة

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

 void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cert_cb)(SSL *ssl, void *arg),
                          void *arg);
 void SSL_set_cert_cb(SSL *s, int (*cert_cb)(SSL *ssl, void *arg), void *arg);

الوصف
تضبط الدالتان SSL_CTX_set_cert_cb() و SSL_set_cert_cb() استدعاء cert_cb، قيمة arg هي مؤشر يُمرر إلى استدعاء التطبيق.

عندما تكون cert_cb فارغة (NULL)، لا تُستخدم أي دالة استدعاء.

cert_cb هو استدعاء مُعرّف من قبل التطبيق. يُستدعى قبل استخدام شهادة من قبل عميل أو خادم. يمكن للاستدعاء بعد ذلك فحص بنية ssl المُمررة وتعيين أو مسح أي شهادات مناسبة. إذا نجح الاستدعاء، يجب أن يُرجع 1 حتى لو لم تُعيّن أي شهادات. يُرجع صفر عند الخطأ مما يُنهي المصافحة بإنذار خطأ داخلي قاتل. قيمة إرجاع سالبة تُعلق المصافحة وتُرجع دالة المصافحة فورًا. ستُرجع SSL_get_error(3) SSL_ERROR_WANT_X509_LOOKUP للإشارة إلى أن المصافحة عُلقت. الاستدعاء التالي لدالة المصافحة سيؤدي مرة أخرى إلى استدعاء cert_cb. من واجب cert_cb تخزين معلومات عن حالة الاستدعاء الأخير، إذا لزم الأمر للمتابعة.

ملاحظات
سيستدعي التطبيق عادةً SSL_use_certificate() و SSL_use_PrivateKey() لتعيين شهادة الكيان النهائي والمفتاح الخاص. يمكنه إضافة شهادات وسيطة وشهادات المرجع المصدق الجذر اختياريًا باستخدام SSL_add1_chain_cert().

قد يستدعي أيضًا SSL_certs_clear() لحذف أي شهادات مرتبطة بكائن SSL.

وظيفة استدعاء الشهادة تحل محل الوظيفة (المعطوبة إلى حد كبير) المقدمة من واجهة استدعاء شهادة العميل القديمة. تُستدعى دائمًا حتى لو كانت الشهادة مُعينة بالفعل حتى يتمكن الاستدعاء من تعديل أو حذف الشهادة الموجودة.

قد يفحص استدعاء أكثر تقدمًا معاملات المصافحة ويعين أي سلسلة مناسبة. على سبيل المثال، قد يتلقى عميل قديم يدعم فقط TLSv1.0 سلسلة شهادات موقعة باستخدام SHA1 بينما عميل TLSv1.2 أو أحدث يُعلن دعمه لـ SHA256 قد يتلقى سلسلة تستخدم SHA256.

تُجرى فحوصات الصحة العادية للخادم على أي شهادات يعينها الاستدعاء. لذا إذا عُينت سلسلة EC لمنحنى لا يدعمه العميل، فلن تُستخدم.

القيم المُرجعة
لا تُرجع الدالتان SSL_CTX_set_cert_cb() و SSL_set_cert_cb() أي قيم.

انظر أيضًا
ssl(7), SSL_use_certificate(3), SSL_add1_chain_cert(3), SSL_get_client_CA_list(3), SSL_clear(3), SSL_free(3)

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