.\" -*- 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_DECRYPT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CMS_DECRYPT 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_decrypt, CMS_decrypt_set1_pkey_and_peer, CMS_decrypt_set1_pkey, CMS_decrypt_set1_password \&\- فك تعمية المحتوى من بنية CMS envelopedData .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, \& BIO *dcont, BIO *out, unsigned int flags); \& int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, \& EVP_PKEY *pk, X509 *cert, X509 *peer); \& int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); \& int CMS_decrypt_set1_password(CMS_ContentInfo *cms, \& unsigned char *pass, ossl_ssize_t passlen); .Ve .SH الوصف .IX Header الوصف \&\fBCMS_decrypt()\fP تستخرج المحتوى المفكوك التعمية من بنية CMS EnvelopedData أو AuthEnvelopedData. تستخدم \fBCMS_decrypt_set1_pkey()\fP لفك تعمية المحتوى بالمفتاح الخاص للمستلم \fIpkey\fP إذا كان \fIpkey\fP ليس NULL. في هذه الحالة، يُوصى بتوفير الشهادة المرتبطة في \fIcert\fP \- انظر الملاحظات أدناه. \&\fIout\fP هو BIO لكتابة المحتوى إليه و\&\fIflags\fP مجموعة اختيارية من الأعلام. إذا كان \fIpkey\fP هو NULL، تفترض الدالة أن فك التعمية قد أُنجز بالفعل (مثلاً باستخدام \fBCMS_decrypt_set1_pkey()\fP أو \fBCMS_decrypt_set1_password()\fP) وتوفر المحتوى فقط ما لم يكن \fIcert\fP و\fIdcont\fP و\fIout\fP NULL أيضًا. يُستخدم معامل \fIdcont\fP في الحالة النادرة حيث يكون المحتوى المعمى منفصلاً. سيُضبط عادةً على NULL. .PP \&\fBCMS_decrypt_set1_pkey_and_peer()\fP تفك تعمية بنية CMS_ContentInfo \fIcms\fP باستخدام المفتاح الخاص \fIpkey\fP، والشهادة المقابلة \fIcert\fP، التي يُوصى بها ولكن قد تكون NULL، وشهادة المنشئ (الاختيارية) \fIpeer\fP. عند النجاح، تسجل أيضًا في \fIcms\fP مفتاح فك التعمية \fIpkey\fP، ثم يجب أن يتبعها \f(CW\*(C`CMS_decrypt(cms, NULL, NULL, dcont, out, flags)\*(C'\fP. هذا الاستدعاء يحرر أي مفتاح فك تعمية مخزن في \fIcms\fP. .PP \&\fBCMS_decrypt_set1_pkey()\fP هي نفس \&\fBCMS_decrypt_set1_pkey_and_peer()\fP مع كون \fIpeer\fP NULL. .PP \&\fBCMS_decrypt_set1_password()\fP تفك تعمية بنية CMS_ContentInfo \fIcms\fP باستخدام السر \fIpass\fP بطول \fIpasslen\fP. عند النجاح، تسجل أيضًا في \fIcms\fP مفتاح فك التعمية المستخدم، ثم يجب أن يتبعها \f(CW\*(C`CMS_decrypt(cms, NULL, NULL, dcont, out, flags)\*(C'\fP. هذا الاستدعاء يحرر أي مفتاح فك تعمية مخزن في \fIcms\fP. .SH ملاحظات .IX Header ملاحظات على الرغم من أن شهادة المستلم ليست مطلوبة لفك تعمية البيانات، إلا أنها مطلوبة لتحديد موقع المستلم المناسب (من بين عدة مستلمين محتملين) في بنية CMS. .PP إذا ضُبط \fIcert\fP على NULL، تُجرَب جميع المستلمين المحتملين. هذه الحالة مع ذلك إشكالية. لإحباط هجوم MMA (هجوم Bleichenbacher على حشوة PKCS #1 v1.5 RSA)، تُجرَب جميع المستلمين سواء نجحوا أم لا. إذا لم ينجح أي مستلم، يُستخدم مفتاح تناظري عشوائي لفك تعمية المحتوى: سيُخرج هذا عادةً بيانات غير صالحة وقد (ولكن ليس مضمونًا) يُرجع في النهاية خطأ حشوة فقط. إذا أعادت \fBCMS_decrypt()\fP خطأً فقط عندما فشلت جميع مفاتيح المستلمين المعماة في فك التعمية، يمكن للمهاجم استخدام هذا في هجوم توقيت. إذا ضُبط العلم الخاص \fBCMS_DEBUG_DECRYPT\fP، يُعدل السلوك أعلاه ويُعاد خطأ إذا لم يمكن فك تعمية أي مفتاح معمى للمستلم \fBدون\fP توليد مفتاح تعمية محتوى عشوائي. يجب على التطبيقات استخدام هذا العلم \&\fBبحذر شديد\fP خاصة في البوابات الآلية لأنه قد يتركها عرضة للهجوم. .PP من الممكن تحديد مفتاح المستلم الصحيح بوسائل أخرى (مثلاً البحث عنه في قاعدة بيانات) وضبطه في بنية CMS مسبقًا باستخدام دوال المساعدة CMS مثل \fBCMS_set1_pkey()\fP، أو استخدام \fBCMS_decrypt_set1_password()\fP إذا كان للمستلم مفتاح تناظري. في هذه الحالات، يجب ضبط كل من \fIcert\fP و\fIpkey\fP على NULL. .PP لمعالجة أنواع KEKRecipientInfo، يجب استدعاء \fBCMS_set1_key()\fP أو \fBCMS_RecipientInfo_set0_key()\fP و\fBCMS_RecipientInfo_decrypt()\fP قبل \fBCMS_decrypt()\fP وضبط \&\fIcert\fP و\fIpkey\fP على NULL. .PP يمكن تمرير الأعلام التالية في معامل \fIflags\fP. .PP إذا جرى ضبط علم \fBCMS_TEXT\fP، تُحذَف رؤوس MIME للنوع \f(CW\*(C`text/plain\*(C'\fP من المحتوى. إذا لم يكن المحتوى من النوع \f(CW\*(C`text/plain\*(C'\fP فسيُرجَع خطأ. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBCMS_decrypt()\fP و\fBCMS_decrypt_set1_pkey_and_peer()\fP و\&\fBCMS_decrypt_set1_pkey()\fP و\fBCMS_decrypt_set1_password()\fP تُرجع إما 1 للنجاح أو 0 للفشل. يمكن الحصول على الخطأ من \fBERR_get_error\fP\|(3). .SH العلل .IX Header العلل الجزء \fBset1_\fP من أسماء هذه الدوال مضلل ويجب أن يُقرأ بشكل أفضل: \fBwith_\fP. .PP نقص المعالجة بمرور واحد والحاجة إلى الاحتفاظ بجميع البيانات في الذاكرة كما ذُكر في \fBCMS_verify()\fP ينطبق أيضًا على \fBCMS_decrypt()\fP. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3), \fBCMS_encrypt\fP\|(3) .SH التاريخ .IX Header التاريخ \&\fBCMS_decrypt_set1_pkey_and_peer()\fP و\fBCMS_decrypt_set1_password()\fP أُضيفتا في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2008\-2020 لمؤلفي مشروع 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 .