.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "SSL_CTX_SET_CLIENT_CERT_CB 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SSL_CTX_SET_CLIENT_CERT_CB 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم SSL_CTX_set_client_cert_cb, SSL_CTX_get_client_cert_cb \- معالجة دالة الاستدعاء لشهادة العميل .SH موجز .IX Header موجز .Vb 1 \& #include \& \& void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, \& int (*client_cert_cb)(SSL *ssl, X509 **x509, \& EVP_PKEY **pkey)); \& int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, \& EVP_PKEY **pkey); .Ve .SH الوصف .IX Header الوصف \&\fBSSL_CTX_set_client_cert_cb()\fP تُعيِّن دالة الاستدعاء \fIclient_cert_cb\fP، التي تُستدعى عندما يطلب الخادم شهادة عميل ولم تُعيَّن شهادة بعد لكائن SSL. .PP عندما تكون \fIclient_cert_cb\fP NULL، لا تُستخدم أي دالة استدعاء. .PP \&\fBSSL_CTX_get_client_cert_cb()\fP تُرجع مؤشرًا لدالة الاستدعاء المُعيَّنة حاليًا. .PP \&\fIclient_cert_cb\fP هي دالة الاستدعاء المُعرَّفة من التطبيق. إذا أرادت تعيين شهادة، يجب تعيين تركيبة شهادة/مفتاح خاص باستخدام الوسيطين \fIx509\fP و\fIpkey\fP ويجب إرجاع "1". ستُثبَّت الشهادة في \fIssl\fP، انظر قسمي NOTES وBUGS. إذا لم تُعيَّن أي شهادة، يجب إرجاع "0" ولن تُرسل أي شهادة. قيمة إرجاع سالبة ستُعلِّق المصافحة وستُرجع دالة المصافحة فورًا. \fBSSL_get_error\fP\|(3) سترجع SSL_ERROR_WANT_X509_LOOKUP للإشارة إلى أن المصافحة عُلِّقت. الاستدعاء التالي لدالة المصافحة سيؤدي مرة أخرى إلى استدعاء \fIclient_cert_cb\fP. من واجب \fIclient_cert_cb\fP تخزين معلومات عن حالة الاستدعاء الأخير، إذا لزم الأمر للمتابعة. .SH ملاحظات .IX Header ملاحظات أثناء المصافحة (أو إعادة التفاوض) قد يطلب الخادم شهادة من العميل. يجب إرسال شهادة العميل فقط عندما يُرسل الخادم الطلب. .PP عندما تُعيَّن شهادة باستخدام عائلة دوال \&\fBSSL_CTX_use_certificate\fP\|(3)، ستُرسل إلى الخادم. يتطلب معيار TLS إرسال شهادة فقط إذا تطابقت مع قائمة السلطات المصدقة المقبولة التي أرسلها الخادم. هذا القيد يُنتهَك بالسلوك المبدئي لمكتبة OpenSSL. باستخدام دالة الاستدعاء، يمكن تنفيذ روتين اختيار مناسب أو السماح بتفاعل المستخدم لاختيار الشهادة المراد إرسالها. .PP إذا عُرِّفت دالة استدعاء ولم تُعرَّف شهادة بعد لكائن SSL، ستُستدعى دالة الاستدعاء. إذا أرجع دالة الاستدعاء شهادة، ستحاول مكتبة OpenSSL تحميل المفتاح الخاص وبيانات الشهادة في كائن SSL باستخدام الدالتين \fBSSL_use_certificate()\fP و\fBSSL_use_private_key()\fP. وبالتالي ستُثبِّت الشهادة والمفتاح بشكل دائم لكائن SSL هذا. لن يُعاد تعيينها باستدعاء \fBSSL_clear\fP\|(3). إذا لم تُرجع دالة الاستدعاء شهادة، لن تُرسل مكتبة OpenSSL شهادة. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBSSL_CTX_get_client_cert_cb()\fP تُرجع مؤشر دالة \fIclient_cert_cb\fP أو NULL إذا لم تُعيَّن دالة الاستدعاء. .SH العلل .IX Header العلل لا يمكن لـ \fIclient_cert_cb\fP إرجاع سلسلة شهادات كاملة، بل يمكنها إرجاع شهادة عميل واحدة فقط. إذا كان طول السلسلة 2 فقط، يمكن حذف شهادة CA الجذرية وفقًا لمعيار TLS وبالتالي يمكن إرسال إجابة مطابقة للمعيار إلى الخادم. لسلسلة أطول، يجب على العميل إرسال السلسلة الكاملة (مع خيار حذف شهادة CA الجذرية). يمكن تحقيق ذلك فقط إما بإضافة شهادات CA الوسيطة إلى مخزن الشهادات الموثوق لكائن SSL_CTX (مما يؤدي إلى إضافة شهادات CA التي قد لا تكون موثوقة بخلاف ذلك)، أو بإضافة شهادات السلسلة باستخدام دالة \&\fBSSL_CTX_add_extra_chain_cert\fP\|(3)، المتاحة فقط لكائن SSL_CTX ككل وبالتالي ربما تنطبق فقط على شهادة عميل واحدة، مما يجعل مفهوم دالة الاستدعاء (للسماح بالاختيار من عدة شهادات) موضع تساؤل. .PP بمجرد استخدام كائن SSL مع دالة الاستدعاء، ستُعيَّن الشهادة لكائن SSL ولن تُمسح حتى عند استدعاء \fBSSL_clear\fP\|(3). لذلك من الضروري تدمير كائن SSL باستخدام \fBSSL_free\fP\|(3) وإنشاء كائن جديد للعودة إلى الحالة السابقة. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBssl\fP\|(7), \fBSSL_CTX_use_certificate\fP\|(3), \&\fBSSL_CTX_add_extra_chain_cert\fP\|(3), \&\fBSSL_get_client_CA_list\fP\|(3), \&\fBSSL_clear\fP\|(3), \fBSSL_free\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2002\-2020 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .