.\" -*- 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_NEW 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SSL_CTX_NEW 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 الاسم TLSv1_2_method, TLSv1_2_server_method, TLSv1_2_client_method, SSL_CTX_new, SSL_CTX_new_ex, SSL_CTX_up_ref, SSLv3_method, SSLv3_server_method, SSLv3_client_method, TLSv1_method, TLSv1_server_method, TLSv1_client_method, TLSv1_1_method, TLSv1_1_server_method, TLSv1_1_client_method, TLS_method, TLS_server_method, TLS_client_method, SSLv23_method, SSLv23_server_method, SSLv23_client_method, DTLS_method, DTLS_server_method, DTLS_client_method, DTLSv1_method, DTLSv1_server_method, DTLSv1_client_method, DTLSv1_2_method, DTLSv1_2_server_method, DTLSv1_2_client_method \&\- إنشاء كائن SSL_CTX جديد كإطار للدوال المُمكّنة لـ TLS/SSL أو DTLS .SH موجز .IX Header موجز .Vb 1 \& #include \& \& SSL_CTX *SSL_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq, \& const SSL_METHOD *method); \& SSL_CTX *SSL_CTX_new(const SSL_METHOD *method); \& int SSL_CTX_up_ref(SSL_CTX *ctx); \& \& const SSL_METHOD *TLS_method(void); \& const SSL_METHOD *TLS_server_method(void); \& const SSL_METHOD *TLS_client_method(void); \& \& const SSL_METHOD *SSLv23_method(void); \& const SSL_METHOD *SSLv23_server_method(void); \& const SSL_METHOD *SSLv23_client_method(void); \& \& #ifndef OPENSSL_NO_SSL3_METHOD \& const SSL_METHOD *SSLv3_method(void); \& const SSL_METHOD *SSLv3_server_method(void); \& const SSL_METHOD *SSLv3_client_method(void); \& #endif \& \& #ifndef OPENSSL_NO_TLS1_METHOD \& const SSL_METHOD *TLSv1_method(void); \& const SSL_METHOD *TLSv1_server_method(void); \& const SSL_METHOD *TLSv1_client_method(void); \& #endif \& \& #ifndef OPENSSL_NO_TLS1_1_METHOD \& const SSL_METHOD *TLSv1_1_method(void); \& const SSL_METHOD *TLSv1_1_server_method(void); \& const SSL_METHOD *TLSv1_1_client_method(void); \& #endif \& \& #ifndef OPENSSL_NO_TLS1_2_METHOD \& const SSL_METHOD *TLSv1_2_method(void); \& const SSL_METHOD *TLSv1_2_server_method(void); \& const SSL_METHOD *TLSv1_2_client_method(void); \& #endif \& \& const SSL_METHOD *DTLS_method(void); \& const SSL_METHOD *DTLS_server_method(void); \& const SSL_METHOD *DTLS_client_method(void); \& \& #ifndef OPENSSL_NO_DTLS1_METHOD \& const SSL_METHOD *DTLSv1_method(void); \& const SSL_METHOD *DTLSv1_server_method(void); \& const SSL_METHOD *DTLSv1_client_method(void); \& #endif \& \& #ifndef OPENSSL_NO_DTLS1_2_METHOD \& const SSL_METHOD *DTLSv1_2_method(void); \& const SSL_METHOD *DTLSv1_2_server_method(void); \& const SSL_METHOD *DTLSv1_2_client_method(void); \& #endif .Ve .SH الوصف .IX Header الوصف \&\fBSSL_CTX_new_ex()\fP تُنشئ كائن \fBSSL_CTX\fP جديدًا، يحمل إعدادات وبيانات متنوعة ذات صلة بإنشاء جلسة SSL/TLS أو DTLS. تُورث هذه لاحقًا بواسطة كائن \fBSSL\fP الذي يمثل جلسة نشطة. يُحدد المعامل \fImethod\fP ما إذا كان السياق سيُستخدم للجانب العميل أو الخادم أو كليهما \- للتفاصيل انظر "ملاحظات" أدناه. يُستخدم سياق المكتبة \fIlibctx\fP (انظر \fBOSSL_LIB_CTX\fP\|(3)) لتوفير الخوارزميات التعمية اللازمة للجلسة. تُجلب أي خوارزميات تعمية تُستخدم بواسطة أي كائنات \fBSSL\fP مُنشأة من هذا \fBSSL_CTX\fP من \fIlibctx\fP باستخدام سلسلة استعلام الخاصية \fIpropq\fP (انظر "جلب الخوارزميات" في \fBcrypto\fP\|(7)). قد يكون أي من المعاملين \fIlibctx\fP أو \fIpropq\fP أو كليهما NULL. .PP \&\fBSSL_CTX_new()\fP تفعل نفس ما يفعله \fBSSL_CTX_new_ex()\fP باستثناء استخدام سياق المكتبة المبدئي وعدم تحديد سلسلة استعلام خاصية. .PP كائن \fBSSL_CTX\fP ذو تعداد مرجعي. إنشاء كائن \fBSSL_CTX\fP لأول مرة يزيد العداد المرجعي. تحرير \fBSSL_CTX\fP (باستخدام SSL_CTX_free) يُنقصه. عندما ينخفض العداد المرجعي إلى الصفر، تُحرر أي ذاكرة أو موارد مخصصة لكائن \fBSSL_CTX\fP. \fBSSL_CTX_up_ref()\fP تزيد العداد المرجعي لبنية \fBSSL_CTX\fP موجودة. .PP لا ينبغي تغيير كائن \fBSSL_CTX\fP بعد استخدامه لإنشاء أي كائنات \fBSSL\fP أو من خيوط متعددة بشكل متزامن، لأن التطبيق لا يوفر تسلسل الوصول لهذه الحالات. .SH ملاحظات .IX Header ملاحظات عند إنشاء الجلسة، مبدئيًا، لا يُجرى التحقق من بيانات اعتماد النظير. يجب طلب ذلك صراحةً، عادةً باستخدام \fBSSL_CTX_set_verify\fP\|(3). للتحقق من شهادات النظير، يمكن تعيين العديد من الخيارات باستخدام دوال متنوعة مثل \fBSSL_CTX_load_verify_locations\fP\|(3) و \fBSSL_CTX_set1_param\fP\|(3). .PP يستخدم تطبيق SSL/(D)TLS الدالة \fBX509_STORE_CTX_set_default\fP\|(3) لتحضير الفحوصات لـ \fBX509_PURPOSE_SSL_SERVER\fP على جانب العميل و \fBX509_PURPOSE_SSL_CLIENT\fP على جانب الخادم. يمكن استخدام الدالة \fBX509_VERIFY_PARAM_set_purpose\fP\|(3)، أيضًا بالتزامن مع \fBSSL_CTX_get0_param\fP\|(3)، لتجاوز الغرض المبدئي للجلسة. .PP يستخدم كائن SSL_CTX \fImethod\fP كطريقة اتصال. تتوفر ثلاثة متغيرات للطريقة: طريقة عامة (لاستخدام العميل أو الخادم)، طريقة للخادم فقط، وطريقة للعميل فقط. .PP يمكن أن يكون المعامل \fImethod\fP لـ \fBSSL_CTX_new_ex()\fP و \fBSSL_CTX_new()\fP واحدًا مما يلي: .IP "\fBTLS_method()\fP, \fBTLS_server_method()\fP, \fBTLS_client_method()\fP" 4 .IX Item "TLS_method(), TLS_server_method(), TLS_client_method()" هذه هي طرق SSL/TLS العامة \fIالمرنة في الإصدار\fP. يُتفاوض على إصدار البروتوكول الفعلي المستخدم ليكون أعلى إصدار مدعوم بشكل متبادل من قبل العميل والخادم. البروتوكولات المدعومة هي SSLv3 و TLSv1 و TLSv1.1 و TLSv1.2 و TLSv1.3. يجب على التطبيقات استخدام هذه الطرق، وتجنب الطرق الخاصة بالإصدار الموضحة أدناه، والتي هي مهملة. .IP "\fBSSLv23_method()\fP, \fBSSLv23_server_method()\fP, \fBSSLv23_client_method()\fP" 4 .IX Item "SSLv23_method(), SSLv23_server_method(), SSLv23_client_method()" لم تعد هذه الدوال موجودة، فقد أُعيدت تسميتها إلى \&\fBTLS_method()\fP و \fBTLS_server_method()\fP و \fBTLS_client_method()\fP على التوالي. حاليًا، تُعاد تسمية استدعاءات الدوال القديمة إلى الجديدة المقابلة بواسطة وحدات ماكرو للمعالج المسبق، لضمان أن الكود الموجود الذي يستخدم أسماء الدوال القديمة لا يزال يُترجم. ومع ذلك، فإن استخدام أسماء الدوال القديمة مهمل ويجب على الكود الجديد استدعاء الدوال الجديدة بدلاً من ذلك. .IP "\fBTLSv1_2_method()\fP, \fBTLSv1_2_server_method()\fP, \fBTLSv1_2_client_method()\fP" 4 .IX Item "TLSv1_2_method(), TLSv1_2_server_method(), TLSv1_2_client_method()" اتصال TLS/SSL يُنشأ بهذه الطرق سيفهم فقط بروتوكول TLSv1.2. هذه الطرق مُهملة. .IP "\fBTLSv1_1_method()\fP، \fBTLSv1_1_server_method()\fP، \fBTLSv1_1_client_method()\fP" 4 .IX Item "TLSv1_1_method()، TLSv1_1_server_method()، TLSv1_1_client_method()" اتصال TLS/SSL يُنشأ بهذه الطرق سيفهم فقط بروتوكول TLSv1.1. هذه الطرق مُهملة. .IP "\fBTLSv1_method()\fP، \fBTLSv1_server_method()\fP، \fBTLSv1_client_method()\fP" 4 .IX Item "TLSv1_method()، TLSv1_server_method()، TLSv1_client_method()" اتصال TLS/SSL يُنشأ بهذه الطرق سيفهم فقط بروتوكول TLSv1. هذه الطرق مُهملة. .IP "\fBSSLv3_method()\fP، \fBSSLv3_server_method()\fP، \fBSSLv3_client_method()\fP" 4 .IX Item "SSLv3_method()، SSLv3_server_method()، SSLv3_client_method()" اتصال TLS/SSL يُنشأ بهذه الطرق سيفهم فقط بروتوكول SSLv3. بروتوكول SSLv3 مُهمل ويجب ألا يُستخدم. .IP "\fBDTLS_method()\fP، \fBDTLS_server_method()\fP، \fBDTLS_client_method()\fP" 4 .IX Item "DTLS_method()، DTLS_server_method()، DTLS_client_method()" هذه هي طرق DTLS المرنة في الإصدار. البروتوكولات المدعومة حالياً هي DTLS 1.0 و DTLS 1.2. .IP "\fBDTLSv1_2_method()\fP، \fBDTLSv1_2_server_method()\fP، \fBDTLSv1_2_client_method()\fP" 4 .IX Item "DTLSv1_2_method()، DTLSv1_2_server_method()، DTLSv1_2_client_method()" هذه هي الطرق الخاصة بالإصدار DTLSv1.2. هذه الطرق مُهملة. .IP "\fBDTLSv1_method()\fP، \fBDTLSv1_server_method()\fP، \fBDTLSv1_client_method()\fP" 4 .IX Item "DTLSv1_method()، DTLSv1_server_method()، DTLSv1_client_method()" هذه هي الطرق الخاصة بالإصدار DTLSv1. هذه الطرق مُهملة. .PP \&\fBSSL_CTX_new()\fP يُهيئ قائمة المُعمِّيات، إعداد خبيئة الجلسة، دوال الاستدعاء، المفاتيح والشهادات والخيارات إلى قيمها المبدئية. .PP \&\fBTLS_method()\fP و \fBTLS_server_method()\fP و \fBTLS_client_method()\fP و \fBDTLS_method()\fP و \&\fBDTLS_server_method()\fP و \fBDTLS_client_method()\fP هي دوال \fIمرنة الإصدار\fP. جميع الدوال الأخرى تدعم إصدار بروتوكول واحد محدد فقط. استخدم دوال \fIمرنة الإصدار\fP بدلاً من دوال الإصدار المحدد. .PP إذا أردت تقييد البروتوكولات المدعومة لدوال مرنة الإصدار، يمكنك استخدام دوال \fBSSL_CTX_set_min_proto_version\fP\|(3) و \&\fBSSL_set_min_proto_version\fP\|(3) و \fBSSL_CTX_set_max_proto_version\fP\|(3) و \&\fBSSL_set_max_proto_version\fP\|(3). باستخدام هذه الدوال، يمكن اختيار مثلاً \fBTLS_server_method()\fP والقدرة على التفاوض مع جميع العملاء المحتملين، ولكن السماح فقط بالبروتوكولات الأحدث مثل TLS 1.0 و TLS 1.1 و TLS 1.2 أو TLS 1.3. .PP يمكن أيضاً تقييد قائمة البروتوكولات المتاحة باستخدام خيارات \&\fBSSL_OP_NO_SSLv3\fP و \fBSSL_OP_NO_TLSv1\fP و \fBSSL_OP_NO_TLSv1_1\fP و \&\fBSSL_OP_NO_TLSv1_3\fP و \fBSSL_OP_NO_TLSv1_2\fP و \fBSSL_OP_NO_TLSv1_3\fP من دوال \&\fBSSL_CTX_set_options\fP\|(3) أو \fBSSL_set_options\fP\|(3)، لكن هذا الأسلوب غير موصى به. يجب على العملاء تجنب إنشاء "ثغرات" في مجموعة البروتوكولات التي يدعمونها. عند تعطيل بروتوكول، تأكد من تعطيل جميع إصدارات البروتوكول السابقة أو اللاحقة أيضاً. في العملاء، عند تعطيل إصدار بروتوكول دون تعطيل \fIجميع\fP إصدارات البروتوكول السابقة، يكون التأثير هو تعطيل جميع إصدارات البروتوكول اللاحقة أيضاً. .PP بروتوكول SSLv3 مهمل ويجب عموماً عدم استخدامه. يجب على التطبيقات عادة استخدام \fBSSL_CTX_set_min_proto_version\fP\|(3) لتعيين الحد الأدنى للبروتوكول إلى \fBTLS1_VERSION\fP على الأقل. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" يمكن أن تحدث قيم الإعادة التالية: .IP NULL 4 .IX Item NULL فشل إنشاء كائن SSL_CTX جديد. افحص مكدس الأخطاء لمعرفة السبب. .IP "مؤشر إلى كائن SSL_CTX" 4 .IX Item "مؤشر إلى كائن SSL_CTX" قيمة الإرجاع تشير إلى كائن SSL_CTX مخصص. .Sp \&\fBSSL_CTX_up_ref()\fP تُرجع 1 للنجاح و 0 للفشل. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBSSL_CTX_set_options\fP\|(3) و \fBSSL_CTX_free\fP\|(3) و \fBX509_STORE_CTX_set_default\fP\|(3) و \&\fBSSL_CTX_set_verify\fP\|(3) و \fBSSL_CTX_set1_param\fP\|(3) و \fBSSL_CTX_get0_param\fP\|(3) و \&\fBSSL_connect\fP\|(3) و \fBSSL_accept\fP\|(3) و \&\fBSSL_CTX_set_min_proto_version\fP\|(3) و \fBssl\fP\|(7) و \fBSSL_set_connect_state\fP\|(3) .SH التاريخ .IX Header التاريخ دعم SSLv2 والدوال المقابلة \fBSSLv2_method()\fP و \&\fBSSLv2_server_method()\fP و \fBSSLv2_client_method()\fP أُزيل في OpenSSL 1.1.0. .PP \&\fBSSLv23_method()\fP و \fBSSLv23_server_method()\fP و \fBSSLv23_client_method()\fP أُهملت وأُضيفت الدوال المفضلة \fBTLS_method()\fP و \fBTLS_server_method()\fP و \fBTLS_client_method()\fP في OpenSSL 1.1.0. .PP جميع دوال الإصدار المحدد أُهملت في OpenSSL 1.1.0. .PP \&\fBSSL_CTX_new_ex()\fP أُضيفت في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2023 لمؤلفي مشروع 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 .