.\" -*- 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 "X509_CHECK_HOST 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH X509_CHECK_HOST 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 الاسم X509_check_host, X509_check_email, X509_check_ip, X509_check_ip_asc \- مطابقة شهادة X.509 .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int X509_check_host(X509 *, const char *name, size_t namelen, \& unsigned int flags, char **peername); \& int X509_check_email(X509 *, const char *address, size_t addresslen, \& unsigned int flags); \& int X509_check_ip(X509 *, const unsigned char *address, size_t addresslen, \& unsigned int flags); \& int X509_check_ip_asc(X509 *, const char *address, unsigned int flags); .Ve .SH الوصف .IX Header الوصف تُستخدم دوال مطابقة الشهادة للتحقق مما إذا كانت الشهادة تطابق اسم مضيف معين، أو عنوان بريد إلكتروني، أو عنوان IP. يجب التحقق من صلاحية الشهادة ومستوى الثقة بها بوسائل أخرى. .PP \&\fBX509_check_host()\fP يتحقق مما إذا كان اسم بديل للموضوع (SAN) أو الاسم الشائع للموضوع (CN) في الشهادة يطابق اسم المضيف المحدد، والذي يجب ترميزه بصيغة الاسم المفضلة الموصوفة في القسم 3.5 من RFC 1034. مبدئيًا، تُدعم الأحرف البديلة وتطابق فقط التسمية الأقصى يسارًا؛ لكنها قد تطابق جزءًا من تلك التسمية ببادئة أو لاحقة صريحة. على سبيل المثال، مبدئيًا، اسم المضيف \fBname\fP "www.example.com" سيطابق شهادة بقيمة SAN أو CN مثل "*.example.com" أو "w*.example.com" أو "*w.example.com". .PP وفقًا للقسم 6.4.2 من RFC 6125، يجب تقديم قيم \fBname\fP التي تمثل أسماء نطاقات دولية بصيغة A\-label. يجب أن تكون وسيطة \fBnamelen\fP عدد المحارف في سلسلة الاسم أو صفرًا، وفي هذه الحالة يُحسب الطول باستخدام strlen(\fBname\fP). عندما يبدأ \fBname\fP بنقطة (مثل ".example.com")، ستطابقه شهادة صالحة لأي نطاق فرعي من \fBname\fP، (انظر أيضًا \&\fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fP أدناه). .PP عند مطابقة الشهادة، وإذا لم يكن \fBpeername\fP NULL، يُخزن مؤشر لنسخة من SAN أو CN المطابق من شهادة النظير في العنوان المُمرر في \fBpeername\fP. يتحمل التطبيق مسؤولية تحرير peername عبر \fBOPENSSL_free()\fP عندما لا يعود بحاجة إليه. .PP \&\fBX509_check_email()\fP يتحقق مما إذا كانت الشهادة تطابق عنوان البريد الإلكتروني \fBaddress\fP المحدد. صيغة صندوق البريد في RFC 822 مدعومة، ولا يُسمح بالتعليقات، ولا تُبذل أي محاولة لتطبيع المحارف المقتبسة. صيغة صندوق البريد في RFC 6531 مدعومة لعنوان SmtpUTF8Mailbox في subjectAltName وفقًا لـ RFC 8398، مع قيود مشابهة لصيغة RFC 822، ولا تُبذل أي محاولة للتحويل من A\-label إلى U\-label قبل المقارنة. يجب أن تكون وسيطة \fBaddresslen\fP عدد المحارف في سلسلة العنوان أو صفرًا، وفي هذه الحالة يُحسب الطول باستخدام strlen(\fBaddress\fP). .PP \&\fBX509_check_ip()\fP يتحقق مما إذا كانت الشهادة تطابق عنوان IPv4 أو IPv6 محدد. مصفوفة \fBaddress\fP تكون بصيغة ثنائية، بترتيب بايتات الشبكة. الطول إما 4 (IPv4) أو 16 (IPv6). تُؤخذ في الاعتبار فقط العناوين المُعلَّمة صراحةً في الشهادات؛ تُتجاهل عناوين IP المخزنة في أسماء DNS والأسماء الشائعة. لا توجد حاليًا أي \fBflags\fP تؤثر على سلوك هذه الاستدعاء. .PP \&\fBX509_check_ip_asc()\fP مشابه، باستثناء أن سلسلة المحارف \fBaddress\fP المنتهية بـ NUL تُحوَّل أولاً إلى التمثيل الداخلي. .PP وسيطة \fBflags\fP عادةً ما تكون 0. يمكن أن تكون OR أحادي البت للأعلام: .IP \fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fP، 4 .IX Item X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT، .PD 0 .IP \fBX509_CHECK_FLAG_NEVER_CHECK_SUBJECT\fP، 4 .IX Item X509_CHECK_FLAG_NEVER_CHECK_SUBJECT، .IP \fBX509_CHECK_FLAG_NO_WILDCARDS\fP، 4 .IX Item X509_CHECK_FLAG_NO_WILDCARDS، .IP \fBX509_CHECK_FLAG_NO_PARTIAL_WILDCARDS\fP، 4 .IX Item X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS، .IP \fBX509_CHECK_FLAG_MULTI_LABEL_WILDCARDS\fP. 4 .IX Item X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS. .IP \fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fP. 4 .IX Item X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS. .PD .PP العلم \fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fP يجعل الدالة تعتبر DN الموضوع حتى لو احتوت الشهادة على اسم بديل واحد على الأقل من النوع الصحيح (اسم DNS أو عنوان بريد إلكتروني حسب الاقتضاء)؛ المبدئي هو تجاهل DN الموضوع عندما يوجد اسم بديل واحد على الأقل مطابق. .PP العلم \fBX509_CHECK_FLAG_NEVER_CHECK_SUBJECT\fP يجعل الدالة لا تعتبر DN الموضوع أبدًا حتى لو لم تحتوِ الشهادة على أسماء بديلة من النوع الصحيح (اسم DNS أو عنوان بريد إلكتروني حسب الاقتضاء)؛ المبدئي هو استخدام DN الموضوع عندما لا توجد أسماء بديلة مطابقة. إذا حُدد كل من \fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fP و\&\fBX509_CHECK_FLAG_NEVER_CHECK_SUBJECT\fP، فإن الأخير له الأسبقية ولا يُفحص DN الموضوع للأسماء المطابقة. .PP إذا ضُبط، فإن \fBX509_CHECK_FLAG_NO_WILDCARDS\fP يعطل توسيع أحرف البدل؛ هذا ينطبق فقط على \fBX509_check_host\fP. .PP إذا ضُبط، فإن \fBX509_CHECK_FLAG_NO_PARTIAL_WILDCARDS\fP يكبت الدعم لـ "*" كنمط بدل في التسميات التي لها بادئة أو لاحقة، مثل: "www*" أو "*www"؛ هذا ينطبق فقط على \fBX509_check_host\fP. .PP إذا ضُبط، فإن \fBX509_CHECK_FLAG_MULTI_LABEL_WILDCARDS\fP يسمح لـ "*" التي تشكل التسمية الكاملة لاسم DNS (مثل "*.example.com") بمطابقة أكثر من تسمية واحدة في \fBname\fP؛ هذا العلم ينطبق فقط على \fBX509_check_host\fP. .PP إذا ضُبط، فإن \fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fP يقيد قيم \fBname\fP التي تبدأ بـ "."، والتي كانت ستطابق أي نطاق فرعي في شهادة النظير، لمطابقة النطاقات الفرعية التابعة المباشرة فقط. وهكذا، على سبيل المثال، مع ضبط هذا العلم، فإن \fBname\fP بقيمة ".example.com" ستطابق شهادة نظير باسم DNS "www.example.com"، لكنها لن تطابق شهادة نظير باسم DNS "www.sub.example.com"؛ هذا العلم ينطبق فقط على \fBX509_check_host\fP. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" ترجع الدوال 1 للمطابقة الناجحة، 0 للمطابقة الفاشلة و \-1 لخطأ داخلي: عادةً فشل تخصيص ذاكرة أو خطأ فك ترميز ASN.1. .PP يمكن لجميع الدوال أيضًا إرجاع \-2 إذا كان الإدخال مشوهًا. على سبيل المثال، ترجع \&\fBX509_check_host()\fP \-2 إذا كان \fBname\fP المقدم يحتوي على محارف NUL مضمنة. .SH ملاحظات .IX Header ملاحظات يُشجع التطبيقات على استخدام \fBX509_VERIFY_PARAM_set1_host()\fP بدلاً من استدعاء \fBX509_check_host\fP\|(3) صراحةً. قد تكون فحوصات اسم المضيف خارج النطاق مع استخدام شهادة \fBDANE\-EE\fP\|(3)، وسيُكبت الفحوصات الداخلية حسب الاقتضاء عند تمكين دعم DANE. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBSSL_get_verify_result\fP\|(3)، \&\fBX509_VERIFY_PARAM_set1_host\fP\|(3)، \&\fBX509_VERIFY_PARAM_add1_host\fP\|(3)، \&\fBX509_VERIFY_PARAM_set1_email\fP\|(3)، \&\fBX509_VERIFY_PARAM_set1_ip\fP\|(3) .SH التاريخ .IX Header التاريخ أُضيفت هذه الدوال في OpenSSL 1.0.2. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2012\-2022 لمؤلفي مشروع 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 .