X509_VERIFY_PARAM_SET_FLAGS(3ssl)

الاسم
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

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

 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);

الوصف
تُعالج هذه الدوال بنية X509_VERIFY_PARAM المرتبطة بعملية التحقق من الشهادة.

تضبط الدالة X509_VERIFY_PARAM_set_flags() الأعلام في param بإجراء عملية OR مع flags. راجع "أعلام التحقق" للحصول على وصف كامل للقيم التي يمكن أن يأخذها المعامل flags.

تُرجع X509_VERIFY_PARAM_get_flags() الأعلام في param.

تُرجع X509_VERIFY_PARAM_get_inh_flags() أعلام الوراثة في param التي تُحدد كيفية نسخ أعلام التحقق من بنية إلى أخرى. تضبط X509_VERIFY_PARAM_set_inh_flags() أعلام الوراثة. راجع قسم أعلام الوراثة للحصول على وصف لهذه البتات.

تمسح X509_VERIFY_PARAM_clear_flags() الأعلام flags في param.

تضبط X509_VERIFY_PARAM_set_purpose() غرض التحقق في param إلى purpose. يُحدد هذا الغرض المقبول لسلسلة الشهادات، على سبيل المثال X509_PURPOSE_SSL_CLIENT. يُمسح شرط الغرض إذا كان purpose هو X509_PURPOSE_DEFAULT_ANY.

تُرجع X509_VERIFY_PARAM_get_purpose() الغرض في param.

تضبط X509_VERIFY_PARAM_set_trust() إعداد الثقة في param إلى trust.

تضبط X509_VERIFY_PARAM_set_time() وقت التحقق في param إلى t. يُستخدم الوقت الحالي عادةً.

تُضيف X509_VERIFY_PARAM_add0_policy() policy إلى مجموعة السياسات المقبولة. على عكس التوثيق السابق لهذه الدالة، فهي لا تُفعّل فحص السياسات.

تُفعّل X509_VERIFY_PARAM_set1_policies() فحص السياسات (معطل مبدئيًا) وتضبط مجموعة السياسات المقبولة إلى policies. تُمسح أي مجموعة سياسات موجودة. يمكن أن يكون المعامل policies هو NULL لمسح مجموعة سياسات موجودة.

تضبط X509_VERIFY_PARAM_set_depth() أقصى عمق تحقق إلى depth. هذا هو أقصى عدد لشهادات CA الوسيطة التي يمكن أن تظهر في سلسلة. تحتوي سلسلة العمق الأقصى على شهادتين أكثر من الحد، حيث لا تُحتسب شهادة الكيان النهائي ولا مرساة الثقة ضمن هذا الحد. لذا، يسمح حد depth بقيمة 0 فقط بتوقيع شهادة الكيان النهائي مباشرة بواسطة مرساة الثقة، بينما مع حد depth بقيمة 1 يمكن أن توجد شهادة CA وسيطة واحدة بين مرساة الثقة وشهادة الكيان النهائي.

X509_VERIFY_PARAM_set_auth_level() يضبط مستوى أمان الاستيثاق إلى auth_level. يحدد مستوى أمان الاستيثاق قوة التوقيع والمفتاح العمومي المقبولة عند التحقق من سلاسل الشهادات. لكي تُصدّق سلسلة شهادات، يجب أن تفي المفاتيح العمومية لجميع الشهادات بمستوى الأمان المحدد. لا يُفرض مستوى أمان خوارزمية التوقيع لشهادة مرسى الثقة للسلسلة، والتي إما أن تكون موثوقة مباشرة أو مُصدّقة بوسائل غير توقيعها. انظر SSL_CTX_set_security_level(3) لتعريفات المستويات المتاحة. مستوى الأمان المبدئي هو -1، أو "غير معيّن". عند مستوى الأمان 0 أو أقل، تكون جميع الخوارزميات مقبولة. يتطلب مستوى الأمان 1 أمانًا مكافئًا لـ 80 بت على الأقل وهو قابل للتشغيل البيني على نطاق واسع، مع أنه سيرفض، على سبيل المثال، توقيعات MD5 أو مفاتيح RSA أقصر من 1024 بت.

تُعيد الدالة X509_VERIFY_PARAM_get0_host() اسم مضيف DNS المتوقع رقم n الذي تم تعيينه باستخدام X509_VERIFY_PARAM_set1_host() أو X509_VERIFY_PARAM_add1_host(). للحصول على جميع الأسماء، ابدأ بـ n = 0 وزد n طالما لم يُعاد مؤشر فارغ.

تضبط الدالة X509_VERIFY_PARAM_set1_host() اسم مضيف DNS المتوقع على name مع مسح أي اسم مضيف محدد سابقًا. إذا كان name فارغًا أو NULL، فتُمسح قائمة أسماء المضيفين، ولا تُجرى فحوصات الاسم على شهادة النظير. إذا كان name منتهيًا بـ NUL، فقد يكون namelen صفرًا، وإلا فيجب ضبط namelen على طول name.

عند تحديد اسم مضيف، يستدعي التحقق من الشهادة آليًا الدالة X509_check_host(3) مع أعلام مساوية لوسيط flags المُعطى للدالة X509_VERIFY_PARAM_set_hostflags() (المبدئي صفر). يُنصح التطبيقات بشدة باستخدام هذه الواجهة بدلاً من استدعاء X509_check_host(3) صراحةً، فقد تكون فحوصات اسم المضيف خارج النطاق مع استخدام شهادة DANE-EE(3)، وسيُكبت الفحص الداخلي حسب الاقتضاء عند تمكين التحقق من DANE.

عندما لا يُتجاهل الاسم الشائع للموضوع، سواء نتيجة لعلم المضيف X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT، أو لعدم وجود أسماء بديلة للموضوع من نوع DNS في الشهادة، فإن أي قيود على أسماء DNS في شهادات المُصدِر تُطبق على الاسم الشائع للموضوع بالإضافة إلى امتداد الاسم البديل للموضوع.

عندما يُتجاهل الاسم الشائع للموضوع، سواء نتيجة لعلم المضيف X509_CHECK_FLAG_NEVER_CHECK_SUBJECT، أو لوجود بعض أسماء DNS البديلة للموضوع في الشهادة، فإن قيود أسماء DNS في شهادات المُصدِر لا تُطبق على DN الموضوع. كما هو موصوف في X509_check_host(3)، فإن علم X509_CHECK_FLAG_NEVER_CHECK_SUBJECT يسبق علم X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT.

تُعيد X509_VERIFY_PARAM_get_hostflags() أي أعلام مضيف وُضعت سابقًا عبر استدعاء لـ X509_VERIFY_PARAM_set_hostflags().

تُضيف X509_VERIFY_PARAM_add1_host() name كمُعرّف مرجعي إضافي يمكن أن يطابق شهادة النظير. تُحتفظ بأي أسماء سابقة وُضعت عبر X509_VERIFY_PARAM_set1_host() أو X509_VERIFY_PARAM_add1_host()، ولا يُجرى أي تغيير إذا كان name فارغًا أو NULL. عند تكوين أسماء متعددة، يُعتبر النظير موثوقًا عندما يطابق أي اسم.

تُعيد X509_VERIFY_PARAM_get0_peername() اسم مضيف DNS أو الاسم الشائع للموضوع من شهادة النظير الذي طابق أحد المُعرّفات المرجعية. عندما لا يُعطّل المطابقة بالبدل، أو عندما يُحدد مُعرّف مرجعي نطاقًا أبويًا (يبدأ بـ ".") بدلاً من اسم مضيف، فقد يكون اسم النظير اسمًا بدلًا أو نطاقًا فرعيًا للمُعرّف المرجعي على التوالي. سلسلة المحارف المُعادة تُخصص بواسطة المكتبة وتصبح غير صالحة بمجرد تحرير معامل param المرتبط. يجب ألا تُحرر التطبيقات القيمة المُعادة.

تُعيد X509_VERIFY_PARAM_get0_email() عنوان البريد الإلكتروني RFC822 المتوقع.

تضبط X509_VERIFY_PARAM_set1_email() عنوان البريد الإلكتروني RFC822 المتوقع إلى email. إذا كان email منتهيًا بـ NUL، فقد يكون emaillen صفرًا، وإلا يجب ضبط emaillen على طول email. عندما يُحدد عنوان بريد إلكتروني، يستدعي التحقق من الشهادة آليًا X509_check_email(3).

تُعيد X509_VERIFY_PARAM_get1_ip_asc() عنوان IP المتوقع كسلسلة محارف. المتصل مسؤول عن تحريره.

تضبط X509_VERIFY_PARAM_set1_ip() عنوان IP المتوقع إلى ip. معامل ip يكون بتنسيق ثنائي، بترتيب بايت الشبكة، ويجب ضبط iplen على 4 لـ IPv4 و16 لـ IPv6. عندما يُحدد عنوان IP، يستدعي التحقق من الشهادة آليًا X509_check_ip(3).

تضبط X509_VERIFY_PARAM_set1_ip_asc() عنوان IP المتوقع إلى ipasc. معامل ipasc هو سلسلة محارف ASCII منتهية بـ NUL: رباعي عشري منقط لـ IPv4 وسداسي عشري مفصول بنقطتين لـ IPv6. يُدعم الترميز المكثف "::" لعناوين IPv6.

القيم المُرجعة
تُعيد X509_VERIFY_PARAM_set_flags(), X509_VERIFY_PARAM_clear_flags(), X509_VERIFY_PARAM_set_inh_flags(), X509_VERIFY_PARAM_set_purpose(), X509_VERIFY_PARAM_set_trust(), X509_VERIFY_PARAM_add0_policy() X509_VERIFY_PARAM_set1_policies(), X509_VERIFY_PARAM_set1_host(), X509_VERIFY_PARAM_add1_host(), X509_VERIFY_PARAM_set1_email(), X509_VERIFY_PARAM_set1_ip() و X509_VERIFY_PARAM_set1_ip_asc() القيمة 1 للنجاح و0 للفشل.

تُعيد X509_VERIFY_PARAM_get0_host(), X509_VERIFY_PARAM_get0_email(), و X509_VERIFY_PARAM_get1_ip_asc() مؤشرات سلسلة المحارف المحددة أعلاه أو NULL إذا لم تُضبط القيمة المعنية أو عند حدوث خطأ.

تُعيد X509_VERIFY_PARAM_get_flags() أعلام التحقق الحالية.

تُعيد X509_VERIFY_PARAM_get_hostflags() أي أعلام مضيف حالية.

تُعيد X509_VERIFY_PARAM_get_inh_flags() أعلام الوراثة الحالية.

لا تُعيد X509_VERIFY_PARAM_set_time() و X509_VERIFY_PARAM_set_depth() أي قيم.

تُعيد X509_VERIFY_PARAM_get_depth() عمق التحقق الحالي.

تُعيد X509_VERIFY_PARAM_get_auth_level() مستوى أمان الاستيثاق الحالي.

تُعيد X509_VERIFY_PARAM_get_purpose() الغرض الحالي، والذي قد يكون X509_PURPOSE_DEFAULT_ANY إذا لم يُضبط.

أعلام التحقق
تتكون أعلام التحقق من صفر أو أكثر من الأعلام التالية المجمعة بعملية OR.

X509_V_FLAG_CRL_CHECK يُفعّل التحقق من قائمة إلغاء الشهادات (CRL) لشهادة الورقة في سلسلة الشهادات. يحدث خطأ إذا تعذر العثور على CRL مناسب.

X509_V_FLAG_CRL_CHECK_ALL يُوسّع التحقق من CRL ليشمل سلسلة الشهادات بأكملها إذا كان X509_V_FLAG_CRL_CHECK مُفعّلاً أيضًا، وإلا يُتجاهل.

X509_V_FLAG_OCSP_RESP_CHECK يُفعّل التحقق من بروتوكول حالة الشهادة عبر الإنترنت (OCSP) لشهادة الورقة في سلسلة الشهادات. يحدث خطأ إذا تعذر العثور على استجابة OCSP مناسبة.

X509_V_FLAG_OCSP_RESP_CHECK_ALL يُوسّع التحقق من OCSP ليشمل سلسلة الشهادات بأكملها إذا كان X509_V_FLAG_OCSP_RESP_CHECK مُفعّلاً أيضًا، وإلا يُتجاهل.

X509_V_FLAG_IGNORE_CRITICAL يُعطّل التحقق من الامتدادات الحرجة. مبدئيًا، أي امتدادات حرجة غير مُعالجة في الشهادات أو (إذا تم التحقق) CRLs تؤدي إلى خطأ فادح. إذا تم تعيين هذا العلم، تُتجاهل الامتدادات الحرجة غير المُعالجة. تحذير تعيين هذا الخيار لأي غرض غير تصحيح الأخطاء قد يشكل خطرًا أمنيًا. يمكن التحكم الدقيق في الامتدادات المدعومة في دالة رد الاتصال للتحقق.

العلم X509_V_FLAG_X509_STRICT يُعطّل الحلول البديلة لبعض الشهادات المعطلة ويجعل التحقق يطبق قواعد X509 بصرامة.

X509_V_FLAG_ALLOW_PROXY_CERTS يُفعّل التحقق من شهادات الوكيل.

X509_V_FLAG_POLICY_CHECK يُفعّل التحقق من سياسة الشهادة، مبدئيًا لا يتم إجراء أي تحقق من السياسة. تُرسل معلومات إضافية إلى دالة رد الاتصال للتحقق تتعلق بالتحقق من السياسة.

X509_V_FLAG_EXPLICIT_POLICY و X509_V_FLAG_INHIBIT_ANY و X509_V_FLAG_INHIBIT_MAP تُعيّن أعلام تتطلب سياسة صريحة و تمنع أي سياسة و تمنع تعيين السياسة على التوالي كما هو مُعرّف في RFC3280. يُفعّل التحقق من السياسة آليًا إذا تم تعيين أي من هذه الأعلام.

إذا تم تعيين X509_V_FLAG_NOTIFY_POLICY وكان التحقق من السياسة ناجحًا، يُعيّن رمز حالة خاص لدالة رد الاتصال للتحقق. يسمح هذا بفحص شجرة السياسة الصالحة وإجراء فحوصات إضافية أو تسجيلها ببساطة لأغراض تصحيح الأخطاء.

مبدئيًا، بعض الميزات الإضافية مثل CRLs غير المباشرة و CRLs الموقعة بمفاتيح مختلفة معطلة. إذا تم تعيين X509_V_FLAG_EXTENDED_CRL_SUPPORT، تُفعّل.

إذا تم تعيين X509_V_FLAG_USE_DELTAS، تُستخدم CRLs التفاضلية (إن وجدت) لتحديد حالة الشهادة. إذا لم تُعيّن، تُتجاهل التفاضلية.

X509_V_FLAG_CHECK_SS_SIGNATURE يطلب التحقق من توقيع آخر شهادة في سلسلة إذا كانت الشهادة مفترضًا أنها موقعة ذاتيًا. هذا محظور وسيؤدي إلى خطأ إذا كانت شهادة CA غير مطابقة مع قيود استخدام المفتاح التي لا تتضمن البت keyCertSign. مبدئيًا، هذا التحقق معطل لأنه لا يضيف أي أمان إضافي، لكن في بعض الحالات قد ترغب التطبيقات في التحقق من التوقيع على أي حال. أحد الآثار الجانبية لعدم التحقق من التوقيع الذاتي لمثل هذه الشهادة هو أن ملخصات الرسائل المعطلة أو غير المدعومة المستخدمة للتوقيع لا تُعالج كأخطاء فادحة.

عند تعيين X509_V_FLAG_TRUSTED_FIRST، وهو الحال دائمًا منذ OpenSSL 1.1.0، يبحث بناء سلسلة الشهادات في X509_verify_cert(3) في مخزن الثقة عن شهادات المُصدر قبل البحث في الشهادات غير الموثوقة المُقدمة. غالبًا ما تكون شهادات المُصدر المحلية أكثر احتمالية لتلبية متطلبات الأمان المحلية وتؤدي إلى جذر موثوق محليًا. هذا مهم بشكل خاص عندما تحتوي بعض الشهادات في مخزن الثقة على إعدادات ثقة صريحة (انظر "إعدادات الثقة" في openssl-x509(1)).

كان من الممكن استخدام العلم X509_V_FLAG_NO_ALT_CHAINS قبل OpenSSL 1.1.0 لكبت التحقق من السلاسل البديلة. مبدئيًا، ما لم يُعيّن X509_V_FLAG_TRUSTED_FIRST، عند بناء سلسلة شهادات، إذا لم تكن سلسلة الشهادات الأولى الموجودة موثوقة، سيحاول OpenSSL استبدال الشهادات غير الموثوقة المقدمة من النظير بشهادات من مخزن الثقة لمعرفة ما إذا كان يمكن العثور على سلسلة بديلة موثوقة. اعتبارًا من OpenSSL 1.1.0، مع تعيين X509_V_FLAG_TRUSTED_FIRST دائمًا، ليس لهذا الخيار أي تأثير.

العلم X509_V_FLAG_PARTIAL_CHAIN يتسبب في معاملة الشهادات غير الموقعة ذاتيًا في مخزن الثقة كمراسي ثقة، بنفس طريقة شهادات CA الجذرية الموقعة ذاتيًا. هذا يجعل من الممكن الثقة في الشهادات الصادرة ذاتيًا وكذلك الشهادات الصادرة عن CA وسيطة دون الحاجة إلى الثقة في CA الجذرية السابقة. مع OpenSSL 1.1.0 والإصدارات الأحدث وتعيين X509_V_FLAG_PARTIAL_CHAIN، يتوقف بناء السلسلة بمجرد إضافة أول شهادة موجودة في مخزن الثقة إلى السلسلة، سواء كانت تلك الشهادة شهادة "جذر" موقعة ذاتيًا أو شهادة "وسيطة" غير موقعة ذاتيًا أو صادرة ذاتيًا. وبالتالي، عند العثور على شهادة وسيطة في مخزن الثقة، قد تكون السلسلة المُتحقق منها المُمررة إلى دوال رد الاتصال أقصر مما كانت عليه بدون العلم X509_V_FLAG_PARTIAL_CHAIN.

العلم X509_V_FLAG_NO_CHECK_TIME يكبت التحقق من فترة صلاحية الشهادات و CRLs مقابل الوقت الحالي. إذا تم استخدام X509_VERIFY_PARAM_set_time() لتحديد وقت التحقق، لا يُكبت التحقق.

أعلام الوراثة
تحدد هذه الأعلام كيف "تُورث" المعاملات من بنية إلى أخرى.

إذا وُضعت X509_VP_FLAG_ONCE، فسيُصفّر الإعداد الحالي بعد الاستدعاء التالي.

إذا وُضعت X509_VP_FLAG_LOCKED، فلا تُنسخ أي قيم. وهذا يتجاوز جميع الأعلام التالية.

إذا وُضعت X509_VP_FLAG_DEFAULT، فتُنسخ أي قيمة مُعيّنة في المصدر إلى الوجهة. فعليًا، تصبح القيم في "إلى" قيمًا مبدئية تُستخدم فقط إذا لم يُعيّن شيء جديد في "من". هذا هو المبدئي.

إذا وُضعت X509_VP_FLAG_OVERWRITE، فتُنسخ جميع القيم عبرًا سواء كانت مُعيّنة أم لا. ومع ذلك، تظل الأعلام مُجمّعة بعملية OR.

إذا وُضعت X509_VP_FLAG_RESET_FLAGS، فتُنسخ قيمة الأعلام بدلاً من جمعها بعملية OR.

ملاحظات
يجب استخدام الدوال أعلاه لمعالجة معاملات التحقق بدلاً من الدوال التي تعمل في بنى محددة مثل X509_STORE_CTX_set_flags() التي يُرجح إهمالها في إصدار مستقبلي.

العلل
فحص CRL التفاضلي بدائي حاليًا. يمكن استخدام تفاضل واحد فقط، ولا تُحتفظ بقوائم CRL المُنشأة (جزئيًا بسبب قيود X509_STORE).

إذا كان فحص CRLs مُفعّلاً، فتُتوقع توفر CRLs في بنية X509_STORE المقابلة. لا يُبذل أي جهد لتنزيل CRLs من امتداد نقاط توزيع CRL.

أمثلة
فعّل فحص CRL عند إجراء التحقق من الشهادة أثناء اتصالات SSL المرتبطة ببنية SSL_CTX ctx:

 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);

انظر أيضًا
X509_verify_cert(3), X509_check_host(3), X509_check_email(3), X509_check_ip(3), openssl-x509(1)

التاريخ
أُضيف العلم X509_V_FLAG_NO_ALT_CHAINS في OpenSSL 1.1.0. أُهمل العلم X509_V_FLAG_CB_ISSUER_CHECK في OpenSSL 1.1.0 وليس له أي تأثير.

أُضيفت الدالة X509_VERIFY_PARAM_get_hostflags() في OpenSSL 1.1.0i.

أُضيفت الدوال X509_VERIFY_PARAM_get0_host() و X509_VERIFY_PARAM_get0_email() و X509_VERIFY_PARAM_get1_ip_asc() في OpenSSL 3.0.

وُثّقت الدالة X509_VERIFY_PARAM_add0_policy() تاريخيًا على أنها تُفعّل فحص السياسة، لكن التنفيذ لم يفعل ذلك أبدًا. غُيّرت الوثائق لتتوافق مع التنفيذ.

أُضيفت الدالة X509_VERIFY_PARAM_get_purpose() في OpenSSL 3.5.

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