SMIME_READ_CMS(3SSL)

الاسم
SMIME_read_CMS_ex, SMIME_read_CMS - تحليل رسالة S/MIME

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

 CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont,
                                    CMS_ContentInfo **cms);
 CMS_ContentInfo *SMIME_read_CMS(BIO *in, BIO **bcont);

الوصف
SMIME_read_CMS() تُحلل رسالة بتنسيق S/MIME.

in هي BIO لقراءة الرسالة منها.

إذا استُخدم التوقيع بنص واضح، يُحفظ المحتوى في bio ذاكرة يُكتب إلى *bcont، وإلا يُضبط *bcont إلى NULL.

تُعاد بنية CMS_ContentInfo المُحللة أو NULL إذا حدث خطأ.

SMIME_read_CMS_ex() مشابهة لـ SMIME_read_CMS() لكن يمكن توفير كائن cms CMS_ContentInfo مُنشأ سابقًا بالإضافة إلى بعض flags. لإنشاء كائن cms استخدم CMS_ContentInfo_new_ex(3). إذا احتوت وسيطة flags على CMS_BINARY يُفترض أن المُدخلات بتنسيق ثنائي ولا تُترجم إلى الصيغة القانونية. إذا عُيّن أيضًا SMIME_ASCIICRLF يُفترض أن المُدخلات الثنائية تتبعها محارف CR و LF، وإلا فقط محرف LF. إذا كان flags يساوي 0 و cms يساوي NULL فهي مطابقة لـ SMIME_read_CMS().

ملاحظات
إذا لم يكن *bcont NULL فالرسالة موقعة بنص واضح. يمكن تمرير *bcont بعد ذلك إلى CMS_verify() مع تعيين علم CMS_DETACHED.

وإلا يمكن تحديد نوع البنية المُعادة باستخدام CMS_get0_type().

لدعم وظائف مستقبلية، إذا لم يكن bcont NULL يجب تهيئة *bcont إلى NULL. على سبيل المثال:

 BIO *cont = NULL;
 CMS_ContentInfo *cms;

 cms = SMIME_read_CMS(in, &cont);

العلل
محلل MIME المستخدم بواسطة SMIME_read_CMS() بدائي إلى حد ما. بينما يعالج معظم رسائل S/MIME، قد لا تعمل التنسيقات المركبة الأكثر تعقيدًا.

يفترض المحلل أن بنية CMS_ContentInfo مُرمزة دائمًا بـ base64 ولن يعالج الحالة التي تكون فيها بتنسيق ثنائي أو تستخدم تنسيق quoted printable.

استخدام ذاكرة BIO لحفظ المحتوى الموقع يحد من حجم الرسالة التي يمكن معالجتها بسبب قيود الذاكرة: يجب أن يتوفر خيار تمرير واحد متدفق.

القيم المُرجعة
SMIME_read_CMS_ex() و SMIME_read_CMS() تُعيدان بنية CMS_ContentInfo صالحة أو NULL إذا حدث خطأ. يمكن الحصول على الخطأ من ERR_get_error(3).

انظر أيضًا
ERR_get_error(3), CMS_sign(3), CMS_verify(3), CMS_encrypt(3), CMS_decrypt(3)

التاريخ
أُضيفت الدالة SMIME_read_CMS_ex() في OpenSSL 3.0.

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