SMIME_READ_PKCS7(3SSL)

الاسم
SMIME_read_PKCS7_ex, SMIME_read_PKCS7 - تحليل رسالة S/MIME

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

 PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7);
 PKCS7 *SMIME_read_PKCS7(BIO *in, BIO **bcont);

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

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

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

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

SMIME_read_PKCS7_ex() مشابهة لـ SMIME_read_PKCS7() لكن يمكنها اختياريًا توفير كائن PKCS#7 p7 مُنشأ مسبقًا. إذا كان p7 هو NULL، فهي مطابقة لـ SMIME_read_PKCS7(). لإنشاء كائن p7، استخدم PKCS7_new_ex(3).

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

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

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

 BIO *cont = NULL;
 PKCS7 *p7;

 p7 = SMIME_read_PKCS7(in, &cont);

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

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

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

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

انظر أيضًا
ERR_get_error(3), SMIME_read_PKCS7(3), PKCS7_sign(3), PKCS7_verify(3), PKCS7_encrypt(3) PKCS7_decrypt(3)

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

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