.\" -*- 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_VERIFY_PARAM_SET_FLAGS 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH X509_VERIFY_PARAM_SET_FLAGS 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_VERIFY_PARAM_set_flags, X509_VERIFY_PARAM_clear_flags, X509_VERIFY_PARAM_get_flags, X509_VERIFY_PARAM_set_purpose, X509_VERIFY_PARAM_get_purpose, X509_VERIFY_PARAM_get_inh_flags, X509_VERIFY_PARAM_set_inh_flags, X509_VERIFY_PARAM_set_trust, X509_VERIFY_PARAM_set_depth, X509_VERIFY_PARAM_get_depth, X509_VERIFY_PARAM_set_auth_level, X509_VERIFY_PARAM_get_auth_level, X509_VERIFY_PARAM_set_time, X509_VERIFY_PARAM_get_time, X509_VERIFY_PARAM_add0_policy, X509_VERIFY_PARAM_set1_policies, X509_VERIFY_PARAM_get0_host, X509_VERIFY_PARAM_set1_host, X509_VERIFY_PARAM_add1_host, X509_VERIFY_PARAM_set_hostflags, X509_VERIFY_PARAM_get_hostflags, X509_VERIFY_PARAM_get0_peername, X509_VERIFY_PARAM_get0_email, X509_VERIFY_PARAM_set1_email, X509_VERIFY_PARAM_set1_ip, X509_VERIFY_PARAM_get1_ip_asc, X509_VERIFY_PARAM_set1_ip_asc \&\- معاملات التحقق من X509 .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, \& unsigned long flags); \& int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, \& unsigned long flags); \& unsigned long X509_VERIFY_PARAM_get_flags(const X509_VERIFY_PARAM *param); \& \& int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, \& uint32_t flags); \& uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); \& \& int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); \& int X509_VERIFY_PARAM_get_purpose(X509_VERIFY_PARAM *param); \& int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); \& \& void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); \& time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); \& \& int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, \& ASN1_OBJECT *policy); \& int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, \& STACK_OF(ASN1_OBJECT) *policies); \& \& void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); \& int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); \& \& void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, \& int auth_level); \& int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); \& \& char *X509_VERIFY_PARAM_get0_host(X509_VERIFY_PARAM *param, int n); \& int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, \& const char *name, size_t namelen); \& int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, \& const char *name, size_t namelen); \& void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, \& unsigned int flags); \& unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); \& char *X509_VERIFY_PARAM_get0_peername(const X509_VERIFY_PARAM *param); \& char *X509_VERIFY_PARAM_get0_email(X509_VERIFY_PARAM *param); \& int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, \& const char *email, size_t emaillen); \& char *X509_VERIFY_PARAM_get1_ip_asc(X509_VERIFY_PARAM *param); \& int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, \& const unsigned char *ip, size_t iplen); \& int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc); .Ve .SH الوصف .IX Header الوصف تُعالج هذه الدوال بنية \fBX509_VERIFY_PARAM\fP المرتبطة بعملية التحقق من الشهادة. .PP تضبط الدالة \fBX509_VERIFY_PARAM_set_flags()\fP الأعلام في \fBparam\fP بإجراء عملية OR مع \fBflags\fP. راجع "أعلام التحقق" للحصول على وصف كامل للقيم التي يمكن أن يأخذها المعامل \fBflags\fP. .PP \&تُرجع \fBX509_VERIFY_PARAM_get_flags()\fP الأعلام في \fBparam\fP. .PP \&تُرجع \fBX509_VERIFY_PARAM_get_inh_flags()\fP أعلام الوراثة في \fBparam\fP التي تُحدد كيفية نسخ أعلام التحقق من بنية إلى أخرى. تضبط \fBX509_VERIFY_PARAM_set_inh_flags()\fP أعلام الوراثة. راجع قسم \fBأعلام الوراثة\fP للحصول على وصف لهذه البتات. .PP \&تمسح \fBX509_VERIFY_PARAM_clear_flags()\fP الأعلام \fBflags\fP في \fBparam\fP. .PP \&تضبط \fBX509_VERIFY_PARAM_set_purpose()\fP غرض التحقق في \fBparam\fP إلى \fBpurpose\fP. يُحدد هذا الغرض المقبول لسلسلة الشهادات، على سبيل المثال \fBX509_PURPOSE_SSL_CLIENT\fP. يُمسح شرط الغرض إذا كان \fBpurpose\fP هو X509_PURPOSE_DEFAULT_ANY. .PP \&تُرجع \fBX509_VERIFY_PARAM_get_purpose()\fP الغرض في \fBparam\fP. .PP \&تضبط \fBX509_VERIFY_PARAM_set_trust()\fP إعداد الثقة في \fBparam\fP إلى \&\fBtrust\fP. .PP \&تضبط \fBX509_VERIFY_PARAM_set_time()\fP وقت التحقق في \fBparam\fP إلى \&\fBt\fP. يُستخدم الوقت الحالي عادةً. .PP \&تُضيف \fBX509_VERIFY_PARAM_add0_policy()\fP \fBpolicy\fP إلى مجموعة السياسات المقبولة. على عكس التوثيق السابق لهذه الدالة، فهي لا تُفعّل فحص السياسات. .PP \&تُفعّل \fBX509_VERIFY_PARAM_set1_policies()\fP فحص السياسات (معطل مبدئيًا) وتضبط مجموعة السياسات المقبولة إلى \fBpolicies\fP. تُمسح أي مجموعة سياسات موجودة. يمكن أن يكون المعامل \fBpolicies\fP هو \fBNULL\fP لمسح مجموعة سياسات موجودة. .PP \&تضبط \fBX509_VERIFY_PARAM_set_depth()\fP أقصى عمق تحقق إلى \fBdepth\fP. هذا هو أقصى عدد لشهادات CA الوسيطة التي يمكن أن تظهر في سلسلة. تحتوي سلسلة العمق الأقصى على شهادتين أكثر من الحد، حيث لا تُحتسب شهادة الكيان النهائي ولا مرساة الثقة ضمن هذا الحد. لذا، يسمح حد \fBdepth\fP بقيمة 0 فقط بتوقيع شهادة الكيان النهائي مباشرة بواسطة مرساة الثقة، بينما مع حد \fBdepth\fP بقيمة 1 يمكن أن توجد شهادة CA وسيطة واحدة بين مرساة الثقة وشهادة الكيان النهائي. .PP \&\fBX509_VERIFY_PARAM_set_auth_level()\fP يضبط مستوى أمان الاستيثاق إلى \&\fBauth_level\fP. يحدد مستوى أمان الاستيثاق قوة التوقيع والمفتاح العمومي المقبولة عند التحقق من سلاسل الشهادات. لكي تُصدّق سلسلة شهادات، يجب أن تفي المفاتيح العمومية لجميع الشهادات بمستوى الأمان المحدد. لا يُفرض مستوى أمان خوارزمية التوقيع لشهادة \fIمرسى الثقة\fP للسلسلة، والتي إما أن تكون موثوقة مباشرة أو مُصدّقة بوسائل غير توقيعها. انظر \fBSSL_CTX_set_security_level\fP\|(3) لتعريفات المستويات المتاحة. مستوى الأمان المبدئي هو \-1، أو "غير معيّن". عند مستوى الأمان 0 أو أقل، تكون جميع الخوارزميات مقبولة. يتطلب مستوى الأمان 1 أمانًا مكافئًا لـ 80 بت على الأقل وهو قابل للتشغيل البيني على نطاق واسع، مع أنه سيرفض، على سبيل المثال، توقيعات MD5 أو مفاتيح RSA أقصر من 1024 بت. .PP تُعيد الدالة \&\fBX509_VERIFY_PARAM_get0_host()\fP اسم مضيف DNS المتوقع رقم \fBn\fP الذي تم تعيينه باستخدام \fBX509_VERIFY_PARAM_set1_host()\fP أو \fBX509_VERIFY_PARAM_add1_host()\fP. للحصول على جميع الأسماء، ابدأ بـ \fBn\fP = 0 وزد \fBn\fP طالما لم يُعاد مؤشر فارغ. .PP تضبط الدالة \&\fBX509_VERIFY_PARAM_set1_host()\fP اسم مضيف DNS المتوقع على \&\fBname\fP مع مسح أي اسم مضيف محدد سابقًا. إذا كان \&\fBname\fP فارغًا أو NULL، فتُمسح قائمة أسماء المضيفين، ولا تُجرى فحوصات الاسم على شهادة النظير. إذا كان \fBname\fP منتهيًا بـ NUL، فقد يكون \fBnamelen\fP صفرًا، وإلا فيجب ضبط \fBnamelen\fP على طول \fBname\fP. .PP عند تحديد اسم مضيف، يستدعي التحقق من الشهادة آليًا الدالة \fBX509_check_host\fP\|(3) مع أعلام مساوية لوسيط \fBflags\fP المُعطى للدالة \&\fBX509_VERIFY_PARAM_set_hostflags()\fP (المبدئي صفر). يُنصح التطبيقات بشدة باستخدام هذه الواجهة بدلاً من استدعاء \fBX509_check_host\fP\|(3) صراحةً، فقد تكون فحوصات اسم المضيف خارج النطاق مع استخدام شهادة \fBDANE\-EE\fP\|(3)، وسيُكبت الفحص الداخلي حسب الاقتضاء عند تمكين التحقق من DANE. .PP عندما لا يُتجاهل الاسم الشائع للموضوع، سواء نتيجة لعلم المضيف \&\fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fP، أو لعدم وجود أسماء بديلة للموضوع من نوع DNS في الشهادة، فإن أي قيود على أسماء DNS في شهادات المُصدِر تُطبق على الاسم الشائع للموضوع بالإضافة إلى امتداد الاسم البديل للموضوع. .PP عندما يُتجاهل الاسم الشائع للموضوع، سواء نتيجة لعلم المضيف \&\fBX509_CHECK_FLAG_NEVER_CHECK_SUBJECT\fP، أو لوجود بعض أسماء DNS البديلة للموضوع في الشهادة، فإن قيود أسماء DNS في شهادات المُصدِر لا تُطبق على DN الموضوع. كما هو موصوف في \fBX509_check_host\fP\|(3)، فإن علم \fBX509_CHECK_FLAG_NEVER_CHECK_SUBJECT\fP يسبق علم \fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fP. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_hostflags()\fP أي أعلام مضيف وُضعت سابقًا عبر استدعاء لـ \fBX509_VERIFY_PARAM_set_hostflags()\fP. .PP تُضيف \&\fBX509_VERIFY_PARAM_add1_host()\fP \fBname\fP كمُعرّف مرجعي إضافي يمكن أن يطابق شهادة النظير. تُحتفظ بأي أسماء سابقة وُضعت عبر \fBX509_VERIFY_PARAM_set1_host()\fP أو \fBX509_VERIFY_PARAM_add1_host()\fP، ولا يُجرى أي تغيير إذا كان \fBname\fP فارغًا أو NULL. عند تكوين أسماء متعددة، يُعتبر النظير موثوقًا عندما يطابق أي اسم. .PP تُعيد \&\fBX509_VERIFY_PARAM_get0_peername()\fP اسم مضيف DNS أو الاسم الشائع للموضوع من شهادة النظير الذي طابق أحد المُعرّفات المرجعية. عندما لا يُعطّل المطابقة بالبدل، أو عندما يُحدد مُعرّف مرجعي نطاقًا أبويًا (يبدأ بـ ".") بدلاً من اسم مضيف، فقد يكون اسم النظير اسمًا بدلًا أو نطاقًا فرعيًا للمُعرّف المرجعي على التوالي. سلسلة المحارف المُعادة تُخصص بواسطة المكتبة وتصبح غير صالحة بمجرد تحرير معامل \fBparam\fP المرتبط. يجب ألا تُحرر التطبيقات القيمة المُعادة. .PP تُعيد \&\fBX509_VERIFY_PARAM_get0_email()\fP عنوان البريد الإلكتروني RFC822 المتوقع. .PP تضبط \&\fBX509_VERIFY_PARAM_set1_email()\fP عنوان البريد الإلكتروني RFC822 المتوقع إلى \&\fBemail\fP. إذا كان \fBemail\fP منتهيًا بـ NUL، فقد يكون \fBemaillen\fP صفرًا، وإلا يجب ضبط \&\fBemaillen\fP على طول \fBemail\fP. عندما يُحدد عنوان بريد إلكتروني، يستدعي التحقق من الشهادة آليًا \&\fBX509_check_email\fP\|(3). .PP تُعيد \&\fBX509_VERIFY_PARAM_get1_ip_asc()\fP عنوان IP المتوقع كسلسلة محارف. المتصل مسؤول عن تحريره. .PP تضبط \&\fBX509_VERIFY_PARAM_set1_ip()\fP عنوان IP المتوقع إلى \fBip\fP. معامل \fBip\fP يكون بتنسيق ثنائي، بترتيب بايت الشبكة، ويجب ضبط \&\fBiplen\fP على 4 لـ IPv4 و16 لـ IPv6. عندما يُحدد عنوان IP، يستدعي التحقق من الشهادة آليًا \&\fBX509_check_ip\fP\|(3). .PP تضبط \&\fBX509_VERIFY_PARAM_set1_ip_asc()\fP عنوان IP المتوقع إلى \&\fBipasc\fP. معامل \fBipasc\fP هو سلسلة محارف ASCII منتهية بـ NUL: رباعي عشري منقط لـ IPv4 وسداسي عشري مفصول بنقطتين لـ IPv6. يُدعم الترميز المكثف "::" لعناوين IPv6. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" تُعيد \&\fBX509_VERIFY_PARAM_set_flags()\fP, \fBX509_VERIFY_PARAM_clear_flags()\fP, \&\fBX509_VERIFY_PARAM_set_inh_flags()\fP, \&\fBX509_VERIFY_PARAM_set_purpose()\fP, \fBX509_VERIFY_PARAM_set_trust()\fP, \&\fBX509_VERIFY_PARAM_add0_policy()\fP \fBX509_VERIFY_PARAM_set1_policies()\fP, \&\fBX509_VERIFY_PARAM_set1_host()\fP, \fBX509_VERIFY_PARAM_add1_host()\fP, \&\fBX509_VERIFY_PARAM_set1_email()\fP, \fBX509_VERIFY_PARAM_set1_ip()\fP و \&\fBX509_VERIFY_PARAM_set1_ip_asc()\fP القيمة 1 للنجاح و0 للفشل. .PP تُعيد \&\fBX509_VERIFY_PARAM_get0_host()\fP, \fBX509_VERIFY_PARAM_get0_email()\fP, و \&\fBX509_VERIFY_PARAM_get1_ip_asc()\fP مؤشرات سلسلة المحارف المحددة أعلاه أو NULL إذا لم تُضبط القيمة المعنية أو عند حدوث خطأ. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_flags()\fP أعلام التحقق الحالية. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_hostflags()\fP أي أعلام مضيف حالية. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_inh_flags()\fP أعلام الوراثة الحالية. .PP لا تُعيد \&\fBX509_VERIFY_PARAM_set_time()\fP و \fBX509_VERIFY_PARAM_set_depth()\fP أي قيم. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_depth()\fP عمق التحقق الحالي. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_auth_level()\fP مستوى أمان الاستيثاق الحالي. .PP تُعيد \&\fBX509_VERIFY_PARAM_get_purpose()\fP الغرض الحالي، والذي قد يكون \fBX509_PURPOSE_DEFAULT_ANY\fP إذا لم يُضبط. .SH "أعلام التحقق" .IX Header "أعلام التحقق" تتكون أعلام التحقق من صفر أو أكثر من الأعلام التالية المجمعة بعملية OR. .PP \&\fBX509_V_FLAG_CRL_CHECK\fP يُفعّل التحقق من قائمة إلغاء الشهادات (CRL) لشهادة الورقة في سلسلة الشهادات. يحدث خطأ إذا تعذر العثور على CRL مناسب. .PP \&\fBX509_V_FLAG_CRL_CHECK_ALL\fP يُوسّع التحقق من CRL ليشمل سلسلة الشهادات بأكملها إذا كان \fBX509_V_FLAG_CRL_CHECK\fP مُفعّلاً أيضًا، وإلا يُتجاهل. .PP \&\fBX509_V_FLAG_OCSP_RESP_CHECK\fP يُفعّل التحقق من بروتوكول حالة الشهادة عبر الإنترنت (OCSP) لشهادة الورقة في سلسلة الشهادات. يحدث خطأ إذا تعذر العثور على استجابة OCSP مناسبة. .PP \&\fBX509_V_FLAG_OCSP_RESP_CHECK_ALL\fP يُوسّع التحقق من OCSP ليشمل سلسلة الشهادات بأكملها إذا كان \fBX509_V_FLAG_OCSP_RESP_CHECK\fP مُفعّلاً أيضًا، وإلا يُتجاهل. .PP \&\fBX509_V_FLAG_IGNORE_CRITICAL\fP يُعطّل التحقق من الامتدادات الحرجة. مبدئيًا، أي امتدادات حرجة غير مُعالجة في الشهادات أو (إذا تم التحقق) CRLs تؤدي إلى خطأ فادح. إذا تم تعيين هذا العلم، تُتجاهل الامتدادات الحرجة غير المُعالجة. \fBتحذير\fP تعيين هذا الخيار لأي غرض غير تصحيح الأخطاء قد يشكل خطرًا أمنيًا. يمكن التحكم الدقيق في الامتدادات المدعومة في دالة رد الاتصال للتحقق. .PP العلم \fBX509_V_FLAG_X509_STRICT\fP يُعطّل الحلول البديلة لبعض الشهادات المعطلة ويجعل التحقق يطبق قواعد \fBX509\fP بصرامة. .PP \&\fBX509_V_FLAG_ALLOW_PROXY_CERTS\fP يُفعّل التحقق من شهادات الوكيل. .PP \&\fBX509_V_FLAG_POLICY_CHECK\fP يُفعّل التحقق من سياسة الشهادة، مبدئيًا لا يتم إجراء أي تحقق من السياسة. تُرسل معلومات إضافية إلى دالة رد الاتصال للتحقق تتعلق بالتحقق من السياسة. .PP \&\fBX509_V_FLAG_EXPLICIT_POLICY\fP و \fBX509_V_FLAG_INHIBIT_ANY\fP و \&\fBX509_V_FLAG_INHIBIT_MAP\fP تُعيّن أعلام \fBتتطلب سياسة صريحة\fP و \fBتمنع أي سياسة\fP و \fBتمنع تعيين السياسة\fP على التوالي كما هو مُعرّف في \&\fBRFC3280\fP. يُفعّل التحقق من السياسة آليًا إذا تم تعيين أي من هذه الأعلام. .PP إذا تم تعيين \fBX509_V_FLAG_NOTIFY_POLICY\fP وكان التحقق من السياسة ناجحًا، يُعيّن رمز حالة خاص لدالة رد الاتصال للتحقق. يسمح هذا بفحص شجرة السياسة الصالحة وإجراء فحوصات إضافية أو تسجيلها ببساطة لأغراض تصحيح الأخطاء. .PP مبدئيًا، بعض الميزات الإضافية مثل CRLs غير المباشرة و CRLs الموقعة بمفاتيح مختلفة معطلة. إذا تم تعيين \fBX509_V_FLAG_EXTENDED_CRL_SUPPORT\fP، تُفعّل. .PP إذا تم تعيين \fBX509_V_FLAG_USE_DELTAS\fP، تُستخدم CRLs التفاضلية (إن وجدت) لتحديد حالة الشهادة. إذا لم تُعيّن، تُتجاهل التفاضلية. .PP \&\fBX509_V_FLAG_CHECK_SS_SIGNATURE\fP يطلب التحقق من توقيع آخر شهادة في سلسلة إذا كانت الشهادة مفترضًا أنها موقعة ذاتيًا. هذا محظور وسيؤدي إلى خطأ إذا كانت شهادة CA غير مطابقة مع قيود استخدام المفتاح التي لا تتضمن البت \fIkeyCertSign\fP. مبدئيًا، هذا التحقق معطل لأنه لا يضيف أي أمان إضافي، لكن في بعض الحالات قد ترغب التطبيقات في التحقق من التوقيع على أي حال. أحد الآثار الجانبية لعدم التحقق من التوقيع الذاتي لمثل هذه الشهادة هو أن ملخصات الرسائل المعطلة أو غير المدعومة المستخدمة للتوقيع لا تُعالج كأخطاء فادحة. .PP عند تعيين \fBX509_V_FLAG_TRUSTED_FIRST\fP، وهو الحال دائمًا منذ OpenSSL 1.1.0، يبحث بناء سلسلة الشهادات في \fBX509_verify_cert\fP\|(3) في مخزن الثقة عن شهادات المُصدر قبل البحث في الشهادات غير الموثوقة المُقدمة. غالبًا ما تكون شهادات المُصدر المحلية أكثر احتمالية لتلبية متطلبات الأمان المحلية وتؤدي إلى جذر موثوق محليًا. هذا مهم بشكل خاص عندما تحتوي بعض الشهادات في مخزن الثقة على إعدادات ثقة صريحة (انظر "إعدادات الثقة" في \fBopenssl\-x509\fP\|(1)). .PP كان من الممكن استخدام العلم \fBX509_V_FLAG_NO_ALT_CHAINS\fP قبل OpenSSL 1.1.0 لكبت التحقق من السلاسل البديلة. مبدئيًا، ما لم يُعيّن \fBX509_V_FLAG_TRUSTED_FIRST\fP، عند بناء سلسلة شهادات، إذا لم تكن سلسلة الشهادات الأولى الموجودة موثوقة، سيحاول OpenSSL استبدال الشهادات غير الموثوقة المقدمة من النظير بشهادات من مخزن الثقة لمعرفة ما إذا كان يمكن العثور على سلسلة بديلة موثوقة. اعتبارًا من OpenSSL 1.1.0، مع تعيين \fBX509_V_FLAG_TRUSTED_FIRST\fP دائمًا، ليس لهذا الخيار أي تأثير. .PP العلم \fBX509_V_FLAG_PARTIAL_CHAIN\fP يتسبب في معاملة الشهادات غير الموقعة ذاتيًا في مخزن الثقة كمراسي ثقة، بنفس طريقة شهادات CA الجذرية الموقعة ذاتيًا. هذا يجعل من الممكن الثقة في الشهادات الصادرة ذاتيًا وكذلك الشهادات الصادرة عن CA وسيطة دون الحاجة إلى الثقة في CA الجذرية السابقة. مع OpenSSL 1.1.0 والإصدارات الأحدث وتعيين \fBX509_V_FLAG_PARTIAL_CHAIN\fP، يتوقف بناء السلسلة بمجرد إضافة أول شهادة موجودة في مخزن الثقة إلى السلسلة، سواء كانت تلك الشهادة شهادة "جذر" موقعة ذاتيًا أو شهادة "وسيطة" غير موقعة ذاتيًا أو صادرة ذاتيًا. وبالتالي، عند العثور على شهادة وسيطة في مخزن الثقة، قد تكون السلسلة المُتحقق منها المُمررة إلى دوال رد الاتصال أقصر مما كانت عليه بدون العلم \fBX509_V_FLAG_PARTIAL_CHAIN\fP. .PP العلم \fBX509_V_FLAG_NO_CHECK_TIME\fP يكبت التحقق من فترة صلاحية الشهادات و CRLs مقابل الوقت الحالي. إذا تم استخدام \fBX509_VERIFY_PARAM_set_time()\fP لتحديد وقت التحقق، لا يُكبت التحقق. .SH "أعلام الوراثة" .IX Header "أعلام الوراثة" تحدد هذه الأعلام كيف "تُورث" المعاملات من بنية إلى أخرى. .PP إذا وُضعت \fBX509_VP_FLAG_ONCE\fP، فسيُصفّر الإعداد الحالي بعد الاستدعاء التالي. .PP إذا وُضعت \fBX509_VP_FLAG_LOCKED\fP، فلا تُنسخ أي قيم. وهذا يتجاوز جميع الأعلام التالية. .PP إذا وُضعت \fBX509_VP_FLAG_DEFAULT\fP، فتُنسخ أي قيمة مُعيّنة في المصدر إلى الوجهة. فعليًا، تصبح القيم في "إلى" قيمًا مبدئية تُستخدم فقط إذا لم يُعيّن شيء جديد في "من". هذا هو المبدئي. .PP إذا وُضعت \fBX509_VP_FLAG_OVERWRITE\fP، فتُنسخ جميع القيم عبرًا سواء كانت مُعيّنة أم لا. ومع ذلك، تظل الأعلام مُجمّعة بعملية OR. .PP إذا وُضعت \fBX509_VP_FLAG_RESET_FLAGS\fP، فتُنسخ قيمة الأعلام بدلاً من جمعها بعملية OR. .SH ملاحظات .IX Header ملاحظات يجب استخدام الدوال أعلاه لمعالجة معاملات التحقق بدلاً من الدوال التي تعمل في بنى محددة مثل \&\fBX509_STORE_CTX_set_flags()\fP التي يُرجح إهمالها في إصدار مستقبلي. .SH العلل .IX Header العلل فحص CRL التفاضلي بدائي حاليًا. يمكن استخدام تفاضل واحد فقط، ولا تُحتفظ بقوائم CRL المُنشأة (جزئيًا بسبب قيود \fBX509_STORE\fP). .PP إذا كان فحص CRLs مُفعّلاً، فتُتوقع توفر CRLs في بنية \fBX509_STORE\fP المقابلة. لا يُبذل أي جهد لتنزيل CRLs من امتداد نقاط توزيع CRL. .SH أمثلة .IX Header أمثلة فعّل فحص CRL عند إجراء التحقق من الشهادة أثناء اتصالات SSL المرتبطة ببنية \fBSSL_CTX\fP \fBctx\fP: .PP .Vb 1 \& X509_VERIFY_PARAM *param; \& \& param = X509_VERIFY_PARAM_new(); \& X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK); \& SSL_CTX_set1_param(ctx, param); \& X509_VERIFY_PARAM_free(param); .Ve .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBX509_verify_cert\fP\|(3), \&\fBX509_check_host\fP\|(3), \&\fBX509_check_email\fP\|(3), \&\fBX509_check_ip\fP\|(3), \&\fBopenssl\-x509\fP\|(1) .SH التاريخ .IX Header التاريخ أُضيف العلم \fBX509_V_FLAG_NO_ALT_CHAINS\fP في OpenSSL 1.1.0. أُهمل العلم \fBX509_V_FLAG_CB_ISSUER_CHECK\fP في OpenSSL 1.1.0 وليس له أي تأثير. .PP أُضيفت الدالة \fBX509_VERIFY_PARAM_get_hostflags()\fP في OpenSSL 1.1.0i. .PP أُضيفت الدوال \fBX509_VERIFY_PARAM_get0_host()\fP و \fBX509_VERIFY_PARAM_get0_email()\fP و \fBX509_VERIFY_PARAM_get1_ip_asc()\fP في OpenSSL 3.0. .PP وُثّقت الدالة \fBX509_VERIFY_PARAM_add0_policy()\fP تاريخيًا على أنها تُفعّل فحص السياسة، لكن التنفيذ لم يفعل ذلك أبدًا. غُيّرت الوثائق لتتوافق مع التنفيذ. .PP أُضيفت الدالة \fBX509_VERIFY_PARAM_get_purpose()\fP في OpenSSL 3.5. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2009\-2025 لمؤلفي مشروع 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 .