.\" -*- 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 "CMS_VERIFY 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CMS_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 الاسم CMS_verify, CMS_SignedData_verify, CMS_get0_signers \- تحقق من بنية CMS SignedData .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, X509_STORE *store, \& BIO *detached_data, BIO *out, unsigned int flags); \& BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data, \& STACK_OF(X509) *scerts, X509_STORE *store, \& STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls, \& unsigned int flags, \& OSSL_LIB_CTX *libctx, const char *propq); \& \& STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); .Ve .SH الوصف .IX Header الوصف \&\fBCMS_verify()\fP مشابهة جدًا لـ \fBPKCS7_verify\fP\|(3). تتحقق من بنية \&\fBCMS SignedData\fP الموجودة داخل بنية من نوع \fBCMS_ContentInfo\fP. يشير \&\fIcms\fP إلى بنية \fBCMS_ContentInfo\fP المراد التحقق منها. تشير المعامل الاختياري \fIcerts\fP إلى مجموعة من الشهادات التي يُبحث فيها عن شهادات التوقيع. يُستخدم أيضًا كمصدر لشهادات CA الوسيطة غير الموثوقة لبناء السلسلة. قد يحتوي \&\fIcms\fP على شهادات CA إضافية غير موثوقة يمكن استخدامها لبناء السلسلة بالإضافة إلى قوائم CRL التي يمكن استخدامها للتحقق من صحة الشهادة. قد يكون \&\fIstore\fP NULL أو يشير إلى مخزن الشهادات الموثوقة المستخدم للتحقق من السلسلة. يشير \&\fIdetached_data\fP إلى البيانات الموقعة إذا كان المحتوى منفصلاً عن \fIcms\fP. وإلا يجب أن يكون \&\fIdetached_data\fP NULL ويجب أن تكون البيانات الموقعة في \fIcms\fP. يُكتب المحتوى إلى BIO \fIout\fP ما لم يكن NULL. \&\fIflags\fP هي مجموعة اختيارية من الأعلام يمكن استخدامها لتعديل العملية. .PP \&\fBCMS_SignedData_verify()\fP تشبه \fBCMS_verify()\fP باستثناء أنها تعمل على إدخال \fBCMS SignedData\fP في الوسيطة \fIsd\fP، ولها بعض المعاملات الإضافية الموصوفة لاحقًا، وعند النجاح تُرجع المحتوى المُتحقق منه كـ BIO ذاكرة. يمكن استخدام المعامل الاختياري \fIextra\fP لتوفير شهادات CA غير موثوقة قد تكون مفيدة لبناء السلسلة في التحقق من صحة الشهادة. يجب ألا تحتوي قائمة الشهادات هذه على مكررات. يمكن استخدام المعامل الاختياري \fIcrls\fP لتوفير قوائم CRL إضافية. أيضًا يجب ألا تحتوي قائمة CRL على مكررات. تُستخدم المعاملات الاختيارية سياق المكتبة \fIlibctx\fP واستعلام الخاصية \fIpropq\fP عند استرداد الخوارزميات من المزودين. .PP \&\fBCMS_get0_signers()\fP تسترجع شهادة (شهادات) التوقيع من \fIcms\fP؛ لا يمكن استدعاؤها إلا بعد عملية ناجحة لـ \fBCMS_verify()\fP أو \fBCMS_SignedData_verify()\fP. .SH "عملية التحقق" .IX Header "عملية التحقق" عادةً ما تسير عملية التحقق كما يلي. .PP مبدئيًا تُجرى بعض فحوصات الصلاحية على \fIcms\fP. يجب أن يكون نوع \fIcms\fP هو SignedData. يجب أن يكون هناك توقيع واحد على الأقل على البيانات، وإذا كان المحتوى منفصلاً فلا يمكن أن يكون \fIdetached_data\fP NULL. .PP تُبذل محاولة لتحديد موقع جميع شهادات التوقيع، بالبحث أولاً في المعامل \fIcerts\fP (إذا لم يكن NULL) ثم البحث في أي شهادات موجودة في بنية \fIcms\fP ما لم يُضبط \fBCMS_NOINTERN\fP. إذا تعذر تحديد موقع أي شهادة توقيع، تفشل العملية. .PP تُتحقق كل شهادة توقيع من السلسلة باستخدام الغرض \fIsmimesign\fP وباستخدام مخزن الشهادات الموثوقة \fIstore\fP إذا تم توفيره. تُستخدم أي شهادات داخلية في الرسالة، والتي قد أُضيفت باستخدام \&\fBCMS_add1_cert\fP\|(3)، كشهادات CA غير موثوقة. إذا كان فحص CRL مفعلاً في \fIstore\fP ولم يُضبط \fBCMS_NOCRL\fP، تُستخدم أي قوائم CRL داخلية، والتي قد أُضيفت باستخدام \fBCMS_add1_crl\fP\|(3)، بالإضافة إلى محاولة البحث عنها في \fIstore\fP. إذا لم يكن \fIstore\fP NULL وفشل أي تحقق من السلسلة، يُعاد رمز خطأ. .PP أخيرًا يُقرَأ المحتوى الموقع (ويُكتب في \fIout\fP ما لم يكن NULL) ويُتَحَقَّق من التوقيع. .PP إذا تُحُقِّقَ من جميع التوقيعات بشكل صحيح، تكون الدالة ناجحة. .PP يمكن تمرير أي من الأعلام التالية (مجمعة بـ OR) في المعامل \fIflags\fP لتغيير سلوك التحقق المبدئي. .PP إذا ضُبط \fBCMS_NOINTERN\fP، لا تُبحث الشهادات في الرسالة نفسها عند تحديد موقع شهادات التوقيع. هذا يعني أن جميع شهادات التوقيع يجب أن تكون في المعامل \fIcerts\fP. .PP إذا ضُبط \fBCMS_NOCRL\fP وكان فحص CRL مفعلاً في \fIstore\fP، تُتجاهل أي قوائم CRL في الرسالة نفسها والمقدمة عبر المعامل \fIcrls\fP. .PP إذا جرى ضبط علم \fBCMS_TEXT\fP، تُحذَف رؤوس MIME للنوع \f(CW\*(C`text/plain\*(C'\fP من المحتوى. إذا لم يكن المحتوى من النوع \f(CW\*(C`text/plain\*(C'\fP فسيُرجَع خطأ. .PP إذا ضُبط \fBCMS_NO_SIGNER_CERT_VERIFY\fP، لا تُتحقق شهادات التوقيع من السلسلة، ما لم يُضبط أيضًا علم \fBCMS_CADES\fP. .PP إذا ضُبط \fBCMS_NO_ATTR_VERIFY\fP، لا يُتحقق توقيع السمات الموقعة، ما لم يُضبط أيضًا علم CMS_CADES. .PP إذا ضُبط \fBCMS_CADES\fP، تُفحص كل شهادة موقع مقابل امتداد ESS signingCertificate أو ESS signingCertificateV2 المطلوب في السمات الموقعة للتوقيع. .PP إذا ضُبط \fBCMS_NO_CONTENT_VERIFY\fP، لا يُفحص ملخص المحتوى. .SH ملاحظات .IX Header ملاحظات أحد تطبيقات \fBCMS_NOINTERN\fP هو قبول الرسائل الموقعة بعدد صغير من الشهادات فقط. تُمرر الشهادات المقبولة في المعامل \fIcerts\fP. في هذه الحالة، إذا لم تكن شهادة الموقع واحدة من الشهادات المقدمة في \fIcerts\fP، سيفشل التحقق لأنه لا يمكن العثور على الموقع. .PP في بعض الحالات، التقنيات القياسية للبحث عن الشهادات والتحقق منها ليست مناسبة: على سبيل المثال، قد يرغب تطبيق في البحث عن شهادات في قاعدة بيانات أو إجراء تحقق مخصص. يمكن تحقيق ذلك بوضع والتحقق من شهادات الموقع يدويًا باستخدام دوال أداة البيانات الموقعة. .PP يجب أخذ الحذر عند تعديل سلوك التحقق المبدئي، على سبيل المثال وضع \fBCMS_NO_CONTENT_VERIFY\fP سيعطل كليًا كل تحقق المحتوى وأي محتوى معدل سيُعتبر صالحًا. هذه التركيبة مفيدة مع ذلك إذا أراد المرء فقط كتابة المحتوى إلى \fIout\fP ولا تُعتبر صلاحيته مهمة. .PP يُفترض إجراء التحقق من السلسلة باستخدام وقت التوقيع بدلاً من الوقت الحالي. ومع ذلك، وبما أن وقت التوقيع يقدمه الموقع، فلا يمكن الوثوق به دون أدلة إضافية (مثل طابع زمني موثوق). .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBCMS_verify()\fP يُرجع 1 للتحقق الناجح و0 إذا حدث خطأ. .PP \&\fBCMS_SignedData_verify()\fP يُرجع BIO ذاكرة يحتوي على المحتوى المُتحقق منه، أو NULL عند الخطأ. .PP \&\fBCMS_get0_signers()\fP يُرجع كل الموقعين أو NULL إذا حدث خطأ. .PP يمكن الحصول على الخطأ من \fBERR_get_error\fP\|(3). .SH العلل .IX Header العلل مخزن الشهادة الموثوقة لا يُبحث عنه لشهادة التوقيع. هذا يرجع أساسًا إلى عدم كفاية وظيفة \fBX509_STORE\fP الحالية. .PP غياب المعالجة بمرور واحد يعني وجوب الاحتفاظ بجميع المحتوى الموقع في الذاكرة إذا لم يكن منفصلاً. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBPKCS7_verify\fP\|(3), \fBCMS_add1_cert\fP\|(3), \fBCMS_add1_crl\fP\|(3), \&\fBOSSL_ESS_check_signing_certs\fP\|(3), \&\fBERR_get_error\fP\|(3), \fBCMS_sign\fP\|(3) .SH التاريخ .IX Header التاريخ \&\fBCMS_SignedData_verify()\fP أُضيف في OpenSSL 3.2. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2008\-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 .