.\" -*- 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 "PKCS7_VERIFY 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PKCS7_VERIFY 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 الاسم PKCS7_verify, PKCS7_get0_signers \- التحقق من بنية PKCS#7 signedData .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, \& BIO *indata, BIO *out, int flags); \& \& STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); .Ve .SH الوصف .IX Header الوصف \&\fBPKCS7_verify()\fP مشابهة جدًا لـ \fBCMS_verify\fP\|(3). تتحقق من بنية PKCS#7 signedData المعطاة في \fIp7\fP. يشير المعامل الاختياري \fIcerts\fP إلى مجموعة من الشهادات التي يُبحث فيها عن شهادات الموقعين. يُستخدم أيضًا كمصدر لشهادات CA الوسيطة غير الموثوقة لبناء السلسلة. قد تحتوي \fIp7\fP على شهادات CA إضافية غير موثوقة يمكن استخدامها لبناء السلسلة بالإضافة إلى CRLs التي يمكن استخدامها للتحقق من صحة الشهادة. قد تكون \fIstore\fP NULL أو تشير إلى مخزن الشهادات الموثوق لاستخدامه في التحقق من السلسلة. يشير \fIindata\fP إلى البيانات الموقعة إذا كان المحتوى منفصلاً عن \fIp7\fP. وإلا يجب أن يكون \fIindata\fP NULL، وعندها يجب أن تكون البيانات الموقعة في \fIp7\fP. يُكتب المحتوى إلى BIO \fIout\fP ما لم يكن NULL. \fIflags\fP هي مجموعة اختيارية من الأعلام، يمكن استخدامها لتعديل العملية. .PP \&\fBPKCS7_get0_signers()\fP تسترجع شهادات الموقعين من \fIp7\fP، لكنها \&\fBلا\fP تتحقق من صحتها أو من صحة أي توقيعات. المعاملان \fIcerts\fP و \fIflags\fP لهما نفس المعاني كما في \fBPKCS7_verify()\fP. .SH "عملية التحقق" .IX Header "عملية التحقق" عادةً ما تسير عملية التحقق كما يلي. .PP في البداية تُجرى بعض الفحوصات المنطقية على \fIp7\fP. يجب أن يكون نوع \fIp7\fP هو SignedData. يجب أن يكون هناك توقيع واحد على الأقل على البيانات، وإذا كان المحتوى منفصلاً فلا يمكن أن يكون \fIindata\fP NULL. إذا لم يكن المحتوى منفصلاً وكان \fIindata\fP ليس NULL، فإن البنية تحتوي على محتوى مضمن وخارجي معًا. لمعالجة هذا كخطأ، استخدم العلامة \&\fBPKCS7_NO_DUAL_CONTENT\fP. السلوك المبدئي يسمح بذلك، للتوافق مع الإصدارات الأقدم من OpenSSL. .PP تُبذل محاولة لتحديد موقع جميع شهادات الموقعين، بالبحث أولاً في المعامل \fIcerts\fP (إذا لم يكن NULL). ثم يُبحث عنها في أي شهادات موجودة في بنية \fIp7\fP ما لم يتم تعيين \fBPKCS7_NOINTERN\fP. إذا تعذر تحديد موقع أي من شهادات الموقعين، تفشل العملية. .PP تُتحقق سلسلة كل شهادة موقع باستخدام غرض \fBsmimesign\fP وباستخدام مخزن الشهادات الموثوق \fIstore\fP إذا تم توفيره. تُستخدم أي شهادات داخلية في الرسالة، والتي قد أُضيفت باستخدام \&\fBPKCS7_add_certificate\fP\|(3)، كشهادات CA غير موثوقة ما لم يتم تعيين \fBPKCS7_NOCHAIN\fP. إذا كان فحص CRL مفعلاً في \fIstore\fP ولم يتم تعيين \fBPKCS7_NOCRL\fP، تُستخدم أي CRLs داخلية، والتي قد أُضيفت باستخدام \fBPKCS7_add_crl\fP\|(3)، بالإضافة إلى محاولة البحث عنها في \fIstore\fP. إذا لم يكن \fIstore\fP NULL وفشل أي فحص للسلسلة، يُعاد رمز خطأ. .PP أخيرًا يُقرَأ المحتوى الموقع (ويُكتب في \fIout\fP ما لم يكن NULL) ويُتَحَقَّق من التوقيع. .PP إذا تُحُقِّقَ من جميع التوقيعات بشكل صحيح، تكون الدالة ناجحة. .PP يمكن تمرير أي من الأعلام التالية (مجمعة بـ OR) في المعامل \fIflags\fP لتغيير سلوك التحقق المبدئي. فقط العلامة \fBPKCS7_NOINTERN\fP ذات معنى لـ \fBPKCS7_get0_signers()\fP. .PP إذا تم تعيين \fBPKCS7_NOINTERN\fP، لا تُبحث الشهادات في الرسالة نفسها عند تحديد موقع شهادات الموقعين. هذا يعني أن جميع شهادات الموقعين يجب أن تكون في المعامل \fIcerts\fP. .PP إذا تم تعيين \fBPKCS7_NOCRL\fP وكان فحص CRL مفعلاً في \fIstore\fP، تُتجاهل أي CRLs في الرسالة نفسها. .PP إذا تم تعيين العلامة \fBPKCS7_TEXT\fP، تُحذف رؤوس MIME من النوع \f(CW\*(C`text/plain\*(C'\fP من المحتوى. إذا لم يكن المحتوى من النوع \f(CW\*(C`text/plain\*(C'\fP، يُعاد خطأ. .PP إذا تم تعيين \fBPKCS7_NOVERIFY\fP، لا تُتحقق سلسلة شهادات الموقعين. .PP إذا تم تعيين \fBPKCS7_NOCHAIN\fP، لا تُستخدم الشهادات الموجودة في الرسالة كشهادات CA غير موثوقة. هذا يعني أن سلسلة التحقق بأكملها (باستثناء شهادات الموقعين) يجب أن تكون موجودة في المخزن الموثوق. .PP إذا تم تعيين \fBPKCS7_NOSIGS\fP، لا تُفحص التوقيعات على البيانات. .SH ملاحظات .IX Header ملاحظات أحد تطبيقات \fBPKCS7_NOINTERN\fP هو قبول الرسائل الموقعة فقط بعدد صغير من الشهادات. تُمرر الشهادات المقبولة في المعامل \fIcerts\fP. في هذه الحالة، إذا لم تكن شهادة الموقع إحدى الشهادات المقدمة في \fIcerts\fP، سيفشل التحقق لأنه لا يمكن العثور على الموقع. .PP يجب توخي الحذر عند تعديل سلوك التحقق المبدئي، على سبيل المثال تعيين \f(CW\*(C`PKCS7_NOVERIFY|PKCS7_NOSIGS\*(C'\fP سيعطل تمامًا جميع عمليات التحقق وسيُعتبر أي رسالة موقعة صالحة. هذه التركيبة مفيدة مع ذلك إذا كان المرء يرغب فقط في كتابة المحتوى إلى \fIout\fP ولا تُعتبر صحته مهمة. .PP يُفترض إجراء التحقق من السلسلة باستخدام وقت التوقيع بدلاً من الوقت الحالي. ومع ذلك، وبما أن وقت التوقيع يقدمه الموقع، فلا يمكن الوثوق به دون أدلة إضافية (مثل طابع زمني موثوق). .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBPKCS7_verify()\fP تُرجع 1 للتحقق الناجح و0 إذا حدث خطأ. .PP \&\fBPKCS7_get0_signers()\fP تُرجع جميع الموقعين أو NULL إذا حدث خطأ. .PP يمكن الحصول على الخطأ من \fBERR_get_error\fP\|(3). .SH العلل .IX Header العلل لا يُبحث مخزن الشهادات الموثوقة عن شهادات الموقّع. يرجع هذا أساسًا إلى قصور وظائف \fBX509_STORE\fP الحالية. .PP غياب المعالجة بمرور واحد يعني وجوب الاحتفاظ بجميع المحتوى الموقع في الذاكرة إذا لم يكن منفصلاً. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBCMS_verify\fP\|(3), \fBPKCS7_add_certificate\fP\|(3), \fBPKCS7_add_crl\fP\|(3), \&\fBERR_get_error\fP\|(3), \fBPKCS7_sign\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2002\-2024 لمؤلفي مشروع 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 .