.\" -*- 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_STORE_CTX_NEW 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH X509_STORE_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 الاسم X509_STORE_CTX_new_ex, X509_STORE_CTX_new, X509_STORE_CTX_cleanup, X509_STORE_CTX_free, X509_STORE_CTX_init, X509_STORE_CTX_init_rpk, X509_STORE_CTX_set0_trusted_stack, X509_STORE_CTX_set_cert, X509_STORE_CTX_set0_crls, X509_STORE_CTX_set0_rpk, X509_STORE_CTX_get0_param, X509_STORE_CTX_set0_param, X509_STORE_CTX_get0_untrusted, X509_STORE_CTX_set0_untrusted, X509_STORE_CTX_get_num_untrusted, X509_STORE_CTX_get0_chain, X509_STORE_CTX_set0_verified_chain, X509_STORE_CTX_get0_rpk, X509_STORE_CTX_set_default, X509_STORE_CTX_set_verify, X509_STORE_CTX_verify_fn, X509_STORE_CTX_set_ocsp_resp, X509_STORE_CTX_set_purpose, X509_STORE_CTX_set_trust, X509_STORE_CTX_purpose_inherit \&\- تهيئة X509_STORE_CTX .SH موجز .IX Header موجز .Vb 1 \& #include \& \& X509_STORE_CTX *X509_STORE_CTX_new_ex(OSSL_LIB_CTX *libctx, const char *propq); \& X509_STORE_CTX *X509_STORE_CTX_new(void); \& void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); \& void X509_STORE_CTX_free(X509_STORE_CTX *ctx); \& \& int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *trust_store, \& X509 *target, STACK_OF(X509) *untrusted); \& int X509_STORE_CTX_init_rpk(X509_STORE_CTX *ctx, X509_STORE *trust_store, \& EVP_PKEY *rpk); \& \& void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); \& \& void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx, X509 *target); \& void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); \& void X509_STORE_CTX_set0_rpk(X509_STORE_CTX *ctx, EVP_PKEY *target); \& \& X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(const X509_STORE_CTX *ctx); \& void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); \& \& STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX *ctx); \& void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); \& \& int X509_STORE_CTX_get_num_untrusted(const X509_STORE_CTX *ctx); \& STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx); \& void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *ctx, STACK_OF(X509) *chain); \& EVP_PKEY *X509_STORE_CTX_get0_rpk(const X509_STORE_CTX *ctx); \& \& int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); \& typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); \& void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, X509_STORE_CTX_verify_fn verify); \& \& void X509_STORE_CTX_set_ocsp_resp(X509_STORE_CTX *ctx, STACK_OF(OCSP_RESPONSE) *sk); \& int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); \& int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); \& int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, \& int purpose, int trust); .Ve .SH الوصف .IX Header الوصف تُهيئ هذه الدوال بنية \fBX509_STORE_CTX\fP للاستخدام اللاحق بواسطة \fBX509_verify_cert\fP\|(3) أو \fBX509_STORE_CTX_verify\fP\|(3). .PP \&تُرجع \fBX509_STORE_CTX_new_ex()\fP بنية \fBX509_STORE_CTX\fP مُهيأة حديثًا مرتبطة بسياق المكتبة المحدد \fIlibctx\fP وسلسلة استعلام الخاصية \fIpropq\fP. أي خوارزميات تعمية تُجلب أثناء المعالجة باستخدام X509_STORE_CTX ستستخدم سياق المكتبة وسلسلة استعلام الخاصية تلك. .PP \&\fBX509_STORE_CTX_new()\fP مماثلة لـ \fBX509_STORE_CTX_new_ex()\fP باستثناء استخدام سياق المكتبة المبدئي وسلسلة استعلام خاصية NULL. .PP \&تنظف \fBX509_STORE_CTX_cleanup()\fP داخليًا بنية \fBX509_STORE_CTX\fP. تُستخدم بواسطة \fBX509_STORE_CTX_init()\fP و \fBX509_STORE_CTX_free()\fP. .PP \&تحرر \fBX509_STORE_CTX_free()\fP \fIctx\fP بالكامل. بعد هذه الاستدعاء، لم يعد \fIctx\fP صالحًا. إذا كان \fIctx\fP هو NULL، لا يُفعل شيء. .PP \&تُعد \fBX509_STORE_CTX_init()\fP \fIctx\fP لعملية تحقق لاحقة. .PP \&تهيئ \fBX509_STORE_CTX_init()\fP الحالة الداخلية والموارد لـ \fIctx\fP المُعطى. من بين أمور أخرى، تضبط معاملات التحقق المرتبطة باسم الطريقة \f(CW\*(C`default\*(C'\fP، والتي تتضمن الغرض \f(CW\*(C`any\*(C'\fP، وتستحوذ على مؤشرات دالة الاستدعاء من \fItrust_store\fP (إلا إذا كان NULL). يجب استدعاؤها قبل كل استدعاء لـ \fBX509_verify_cert\fP\|(3) أو \&\fBX509_STORE_CTX_verify\fP\|(3)، أي أن السياق صالح فقط لعملية تحقق واحدة. إذا أردت التحقق من شهادة أو سلسلة إضافية باستخدام نفس \fIctx\fP، فيجب استدعاء \fBX509_STORE_CTX_init()\fP مرة أخرى. يُضبط مخزن الشهادات الموثوقة إلى \fItrust_store\fP من النوع \fBX509_STORE\fP. قد يكون هذا NULL إما لعدم وجود شهادات موثوقة أو لأنها مُقدمة ببساطة كقائمة باستخدام \fBX509_STORE_CTX_set0_trusted_stack()\fP. تُضبط الشهادة المراد التحقق منها إلى \fItarget\fP، ويمكن توفير قائمة بشهادات إضافية في \fIuntrusted\fP، والتي ستكون غير موثوقة ولكن قد تُستخدم لبناء السلسلة. لا تُنسخ شهادة \fItarget\fP (لا يُحدث عدد مراجعها)، ويجب على المستدعي عدم تحريرها قبل اكتمال التحقق. يمكن أن يكون كل من معاملات \fItrust_store\fP و \fItarget\fP و \fIuntrusted\fP NULL. لكن لاحظ أن \fBX509_verify_cert\fP\|(3) و \fBX509_STORE_CTX_verify\fP\|(3) ستحتاج إلى هدف تحقق. يمكن أيضًا ضبط هذا باستخدام \fBX509_STORE_CTX_set_cert()\fP. بالنسبة لـ \fBX509_STORE_CTX_verify\fP\|(3)، التي تأخذ مبدئيًا العنصر الأول من قائمة الشهادات غير الموثوقة كهدف تحقق لها، يمكن ضبط هذا أيضًا بشكل غير مباشر باستخدام \fBX509_STORE_CTX_set0_untrusted()\fP. .PP \&\fBX509_STORE_CTX_init_rpk()\fP يُهيئ \fIctx\fP لعملية تحقق لاحقة للمفتاح العام الخام \fItarget\fP. يتصرف بشكل مشابه لـ \fBX509_STORE_CTX_init()\fP. يمكن أيضًا توفير المفتاح العام الخام \fItarget\fP بشكل منفصل، عبر \&\fBX509_STORE_CTX_set0_rpk()\fP. لا يُنسخ المفتاح العام \fItarget\fP (لا يُحدث عدد مرجعه)، ويجب على المستدعي ألا يحرره قبل اكتمال التحقق. .PP \&\fBX509_STORE_CTX_set0_trusted_stack()\fP يضبط مجموعة الشهادات الموثوقة لـ \&\fIctx\fP إلى \fIsk\fP. هذه طريقة بديلة لتحديد الشهادات الموثوقة بدلاً من استخدام \fBX509_STORE\fP حيث لا تكون تعقيداته مطلوبة أو للتأكد من أن المجموعة المعطاة \fIsk\fP من الشهادات فقط هي الموثوقة. .PP \&\fBX509_STORE_CTX_set_cert()\fP يضبط الشهادة الهدف المراد التحقق منها في \fIctx\fP إلى \fItarget\fP. لا تُنسخ الشهادة الهدف (لا يُحدث عدد مرجعها)، ويجب على المستدعي ألا يحررها قبل اكتمال التحقق. .PP \&\fBX509_STORE_CTX_set0_rpk()\fP يضبط المفتاح العام الخام الهدف المراد التحقق منه في \fIctx\fP إلى \fItarget\fP، المفتاح العام الخام غير NULL يسبق أي شهادة هدف، والتي تُتجاهل بعد ذلك. لا يُنسخ المفتاح العام \fItarget\fP (لا يُحدث عدد مرجعه)، ويجب على المستدعي ألا يحرره قبل اكتمال التحقق. .PP \&\fBX509_STORE_CTX_set0_verified_chain()\fP يضبط السلسلة المُتحقق منها إلى \fIchain\fP. تُنقل ملكية السلسلة إلى \fIctx\fP، ولذا لا ينبغي تحريرها من قبل المستدعي. .PP \&\fBX509_STORE_CTX_get0_chain()\fP يُرجع المؤشر الداخلي المستخدم من قبل \&\fIctx\fP الذي يحتوي على السلسلة المُنشأة (الناتجة). .PP \&\fBX509_STORE_CTX_get0_rpk()\fP يُرجع المؤشر الداخلي المستخدم من قبل \&\fIctx\fP الذي يحتوي على المفتاح العام الخام. .PP \&\fBX509_STORE_CTX_set0_crls()\fP يضبط مجموعة من قوائم إلغاء الشهادات (CRLs) لاستخدامها للمساعدة في التحقق من الشهادة إلى \fIsk\fP. ستُستخدم قوائم إلغاء الشهادات هذه فقط إذا كان التحقق من قائمة إلغاء الشهادات مفعلاً في بنية \fBX509_VERIFY_PARAM\fP المرتبطة. قد يُستخدم هذا حيث يتم توفير قوائم إلغاء شهادات إضافية "مفيدة" كجزء من بروتوكول، على سبيل المثال في بنية PKCS#7. .PP \&\fBX509_STORE_CTX_get0_param()\fP يسترجع مؤشرًا داخليًا إلى معاملات التحقق المرتبطة بـ \fIctx\fP. .PP \&\fBX509_STORE_CTX_set0_param()\fP يُعيِّن مؤشر معامل التحقق الداخلي إلى \fIparam\fP. بعد هذه الاستدعاء، لا ينبغي استخدام \fBparam\fP. .PP \&\fBX509_STORE_CTX_get0_untrusted()\fP يسترجع مؤشرًا داخليًا إلى رصة الشهادات غير الموثوقة المرتبطة بـ \fIctx\fP. .PP \&\fBX509_STORE_CTX_set0_untrusted()\fP يُعيِّن المؤشر الداخلي إلى رصة الشهادات غير الموثوقة المرتبطة بـ \fIctx\fP إلى \fIsk\fP. \&\fBX509_STORE_CTX_verify()\fP سيأخذ العنصر الأول، إن وُجد، كهدف مبدئي له إذا لم يُعيَّن الشهادة الهدف بشكل صريح. .PP \&\fBX509_STORE_CTX_get_num_untrusted()\fP يُرجع عدد الشهادات غير الموثوقة التي استُخدمت في بناء السلسلة. يمكن استخدام هذا بعد استدعاء \fBX509_verify_cert\fP\|(3) والدوال المماثلة. مع \fBX509_STORE_CTX_verify\fP\|(3)، لا يُحتسب هذا العنصر الأول من السلسلة. .PP \&\fBX509_STORE_CTX_get0_chain()\fP يُرجع المؤشر الداخلي المستخدم بواسطة \&\fIctx\fP الذي يحتوي على السلسلة المُتحقق منها. .PP تفاصيل عملية بناء السلسلة والتحقق منها موصوفة في "بناء مسار الشهادة" في \fBopenssl\-verification\-options\fP\|(1) و"التحقق من صحة مسار الشهادة" في \fBopenssl\-verification\-options\fP\|(1). .PP \&\fBX509_STORE_CTX_set0_verified_chain()\fP يُعيِّن السلسلة المُتحقق منها المستخدمة بواسطة \fIctx\fP لتكون \fIchain\fP. ملكية السلسلة تُنقل إلى \fIctx\fP، وبالتالي لا ينبغي تحريرها بواسطة المُستدعي. .PP \&\fBX509_STORE_CTX_set_default()\fP يبحث ويُعيِّن طريقة التحقق المبدئية. يستخدم هذا الدالة \fBX509_VERIFY_PARAM_lookup()\fP لإيجاد مجموعة المعاملات المرتبطة بطريقة التحقق المُعطاة \fIname\fP. من بين أمور أخرى، تُحدد المعاملات نموذج الثقة والغرض من التحقق. مزيد من التفاصيل، بما في ذلك قائمة الطرق المُحددة مسبقًا حاليًا، موصوفة لخيار سطر الأوامر \fB\-verify_name\fP في "خيارات التحقق" في \fBopenssl\-verification\-options\fP\|(1). .PP \&\fBX509_STORE_CTX_set_verify()\fP يُوفر القدرة على تجاوز دالة التحقق المبدئية. هذه الدالة مسؤولة عن التحقق من توقيعات السلسلة وأوقات انتهاء الصلاحية. .PP دالة التحقق مُعرَّفة كنوع X509_STORE_CTX_verify الذي له التوقيع التالي: .PP .Vb 1 \& int (*verify)(X509_STORE_CTX *); .Ve .PP يجب أن تستقبل هذه الدالة X509_STORE_CTX الحالي كمعامل وتُرجع 1 عند النجاح أو 0 عند الفشل. .PP قد تحتوي شهادات X509 على معلومات حول الأغراض التي يمكن استخدام المفاتيح الموجودة فيها من أجلها. على سبيل المثال "الاستيثاق لخادم ويب TLS" أو "حماية البريد الإلكتروني". معلومات "استخدام المفتاح" هذه محفوظة داخليًا في الشهادة نفسها. بالإضافة إلى ذلك، يمكن لمخزن الثقة الذي يحتوي على شهادات موثوقة أن يُعلن عن الأغراض التي نثق بها في شهادات مختلفة. معلومات "الثقة" هذه ليست محفوظة داخل الشهادة نفسها بل هي معلومات "فوقية" محفوظة بجانبها. ترتبط هذه المعلومات "الفوقية" بالشهادة بعد إصدارها ويمكن أن يُحددها مسؤول النظام. على سبيل المثال، قد تُعلن شهادة أنها مناسبة للاستخدام لكل من "الاستيثاق لخادم ويب TLS" و"الاستيثاق لعميل TLS"، لكن مسؤول النظام قد يثق بها فقط للأول. يوجد امتداد لشهادة X.509 يمكنه تسجيل معلومات استخدام المفتاح الموسعة لتكملة معلومات الغرض الموصوفة أعلاه. هذه الآلية الموسعة قابلة للتوسع بشكل تعسفي وغير مناسبة لواجهة برمجة تطبيقات مكتبة عامة؛ التطبيقات التي تحتاج إلى التحقق من معلومات استخدام المفتاح الموسعة في الشهادات ستحتاج إلى تعريف "غرض" مخصص (انظر أدناه) أو توفير رد اتصال تحقق غير مبدئي (\fBX509_STORE_set_verify_cb_func\fP\|(3)). .PP \&\fBX509_STORE_CTX_set_ocsp_resp()\fP يُعيِّن استجابة (استجابات) OCSP للتحقق من سلسلة شهادات أو لتضمينها في مصافحة TLS، عندما يطلب العميل تدبيس OCSP. رصة استجابات OCSP \fIsk\fP لا تُنسخ بل تُخزَّن فقط في السياق. \&\fIctx\fP يحمل مؤشرًا إلى الرصة، لذا يجب أن تعمر الرصة أكثر من \fIctx\fP. .PP \&\fBX509_STORE_CTX_set_purpose()\fP يُعيِّن الغرض للشهادة الهدف التي يتم التحقق منها في \fIctx\fP. القيم المدمجة المتاحة لوسيط \fIpurpose\fP هي \fBX509_PURPOSE_SSL_CLIENT\fP، \fBX509_PURPOSE_SSL_SERVER\fP، \&\fBX509_PURPOSE_NS_SSL_SERVER\fP، \fBX509_PURPOSE_SMIME_SIGN\fP، \&\fBX509_PURPOSE_SMIME_ENCRYPT\fP، \fBX509_PURPOSE_CRL_SIGN\fP، \fBX509_PURPOSE_ANY\fP، \&\fBX509_PURPOSE_OCSP_HELPER\fP، \fBX509_PURPOSE_TIMESTAMP_SIGN\fP و \&\fBX509_PURPOSE_CODE_SIGN\fP. من الممكن أيضًا إنشاء قيمة غرض مخصصة. يُطلب تعيين غرض التحقق من أن امتدادات استخدام المفتاح واستخدام المفتاح الموسع (EKU) المُعلنة اختياريًا داخل الشهادة وسلسلتها متسقة مع ذلك الغرض. لأغراض عميل SSL وخادم SSL وS/MIME، يُفحص EKU أيضًا لشهادات CA على طول السلسلة، بما في ذلك أي شهادة مرساة ثقة مُعطاة. قد تُجرى أيضًا فحوصات إضافية (اعتمادًا على الغرض المُعطى). كل غرض له أيضًا قيمة ثقة مبدئية مرتبطة، والتي ستُعيَّن أيضًا في نفس الوقت. أثناء التحقق، سيُتحقق من إعداد الثقة هذا لمعرفة ما إذا كان متسقًا مع الثقة التي حددها مسؤول النظام للشهادات في السلسلة. .PP \&\fBX509_STORE_CTX_set_trust()\fP يُعيِّن قيمة الثقة للشهادة الهدف التي يتم التحقق منها في \fIctx\fP. القيم المدمجة المتاحة لوسيط \fItrust\fP هي \fBX509_TRUST_COMPAT\fP، \fBX509_TRUST_SSL_CLIENT\fP، \&\fBX509_TRUST_SSL_SERVER\fP، \fBX509_TRUST_EMAIL\fP، \fBX509_TRUST_OBJECT_SIGN\fP، \&\fBX509_TRUST_OCSP_SIGN\fP، \fBX509_TRUST_OCSP_REQUEST\fP و \fBX509_TRUST_TSA\fP. من الممكن أيضًا إنشاء قيمة ثقة مخصصة. نظرًا لأن \fBX509_STORE_CTX_set_purpose()\fP يُعيِّن أيضًا قيمة الثقة، فعادةً ما يكون كافيًا استدعاء تلك الدالة فقط. إذا استُدعيت كلتاهما، فيجب استدعاء \fBX509_STORE_CTX_set_trust()\fP بعد \&\fBX509_STORE_CTX_set_purpose()\fP لأن إعداد الثقة من آخر استدعاء سيُستخدم. .PP لا ينبغي عادةً أن يكون من الضروري لتطبيقات المستخدم النهائي استدعاء \&\fBX509_STORE_CTX_purpose_inherit()\fP مباشرة. عادةً، يجب على التطبيقات استدعاء \&\fBX509_STORE_CTX_set_purpose()\fP أو \fBX509_STORE_CTX_set_trust()\fP بدلاً من ذلك. باستخدام هذه الدالة، يمكن ضبط قيم الغرض والثقة لـ \fIctx\fP في نفس الوقت. يجب ألا يكون كل من \fIctx\fP ومؤشر معامل التحقق الداخلي الخاص به NULL. يمكن أن تحتوي وسيطات \fIdef_purpose\fP و \fIpurpose\fP على نفس قيم الغرض كما هو موصوف لـ \fBX509_STORE_CTX_set_purpose()\fP أعلاه. يمكن أن تحتوي وسيطة \fItrust\fP على نفس قيم الثقة كما هو موصوف في \&\fBX509_STORE_CTX_set_trust()\fP أعلاه. قد تحتوي أي من قيم \fIdef_purpose\fP أو \fIpurpose\fP أو \&\fItrust\fP أيضًا على القيمة 0 للإشارة إلى أنه يجب تجاهل المعامل المُقدم. بعد استدعاء هذه الدالة، يُضبط الغرض المراد استخدامه للتحقق من وسيطة \fIpurpose\fP ما لم يكن الغرض قد ضُبط بالفعل في \fIctx\fP من قبل، وتُضبط الثقة من وسيطة \fItrust\fP ما لم تكن الثقة قد ضُبطت بالفعل في \fIctx\fP من قبل. إذا كانت \fItrust\fP تساوي 0، فستُضبط قيمة الثقة من قيمة الثقة المبدئية لـ \fIpurpose\fP. إذا كانت قيمة الثقة المبدئية للغرض هي \fIX509_TRUST_DEFAULT\fP و \fItrust\fP تساوي 0، فتُستخدم قيمة الثقة المبدئية المرتبطة بقيمة \fIdef_purpose\fP لإعداد الثقة بدلاً من ذلك. .SH ملاحظات .IX Header ملاحظات تُستخدم الشهادات وقوائم إلغاء الشهادات في المخزن داخليًا ويجب \fBعدم\fP تحريرها حتى بعد تحرير \fBX509_STORE_CTX\fP المرتبط. .SH العلل .IX Header العلل تُستخدم الشهادات وقوائم إلغاء الشهادات في السياق داخليًا ويجب \fBعدم\fP تحريرها حتى بعد تحرير \fBX509_STORE_CTX\fP المرتبط. يجب عمل نسخ أو زيادة أعداد المراجع بدلاً من ذلك. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBX509_STORE_CTX_new()\fP يُرجع سياقًا مُخصصًا حديثًا أو NULL إذا حدث خطأ. .PP \&\fBX509_STORE_CTX_init()\fP و \fBX509_STORE_CTX_init_rpk()\fP تُعيد 1 عند النجاح أو 0 إذا حدث خطأ. .PP \&\fBX509_STORE_CTX_get0_param()\fP تُعيد مؤشرًا إلى بنية \fBX509_VERIFY_PARAM\fP أو NULL إذا حدث خطأ. .PP \&\fBX509_STORE_CTX_get0_rpk()\fP تُعيد مؤشرًا إلى بنية \fBEVP_PKEY\fP إذا كانت موجودة، أو NULL إذا كانت غائبة. .PP \&\fBX509_STORE_CTX_cleanup()\fP، \fBX509_STORE_CTX_free()\fP، \&\fBX509_STORE_CTX_set0_trusted_stack()\fP، \&\fBX509_STORE_CTX_set_cert()\fP، \&\fBX509_STORE_CTX_set0_crls()\fP و \fBX509_STORE_CTX_set0_param()\fP لا تُعيد قيمًا. .PP \&\fBX509_STORE_CTX_set_default()\fP تُعيد 1 عند النجاح أو 0 إذا حدث خطأ. .PP \&\fBX509_STORE_CTX_get_num_untrusted()\fP تُعيد عدد الشهادات غير الموثوقة المُستخدمة. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBX509_verify_cert\fP\|(3)، \fBX509_STORE_CTX_verify\fP\|(3)، \&\fBX509_VERIFY_PARAM_set_flags\fP\|(3) .SH التاريخ .IX Header التاريخ أُضيفت الدالة \fBX509_STORE_CTX_set0_crls()\fP في OpenSSL 1.0.0. أُضيفت الدالة \fBX509_STORE_CTX_get_num_untrusted()\fP في OpenSSL 1.1.0. أُضيفت الدالة \fBX509_STORE_CTX_new_ex()\fP في OpenSSL 3.0. أُضيفت الدوال \fBX509_STORE_CTX_init_rpk()\fP و \fBX509_STORE_CTX_get0_rpk()\fP و \&\fBX509_STORE_CTX_set0_rpk()\fP في OpenSSL 3.2. أُضيفت الدالة \&\fBX509_STORE_CTX_set_ocsp_resp()\fP في OpenSSL 3.6. .PP لا حاجة لاستدعاء \fBX509_STORE_CTX_cleanup()\fP صراحةً منذ OpenSSL 3.0. .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 .