CMS_COMPRESS(3SSL)

الاسم
CMS_compress - إنشاء بنية CMS CompressedData

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

 CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);

الوصف
CMS_compress() تنشئ وتُعيد بنية CMS CompressedData. comp_nid هو خوارزمية الضغط المستخدمة أو NID_undef لاستخدام الخوارزمية المبدئية (ضغط zlib). in هو المحتوى المراد ضغطه. flags هي مجموعة اختيارية من الأعلام.

خوارزمية الضغط الوحيدة المدعومة حالياً هي zlib باستخدام NID NID_zlib_compression.

إذا لم يُجمّع دعم zlib في OpenSSL، فستُعيد CMS_compress() خطأً.

إذا ضُبِطَ علم CMS_TEXT، يُلحَقُ رؤوس MIME للنوع text/plain في بداية البيانات.

عادةً ما يُحول المحتوى المزود إلى تنسيق MIME القياسي (كما تتطلبه مواصفات S/MIME) وإذا جرى ضبط CMS_BINARY فلا يحدث أي تحويل. يجب استخدام هذا الخيار إذا كانت البيانات المزودة بتنسيق ثنائي وإلا فإن التحويل سيفسدها. إذا جرى ضبط CMS_BINARY فسيجري تجاهل CMS_TEXT.

إذا جرى ضبط علم CMS_STREAM، يُرجَع هيكل CMS_ContentInfo جزئي مناسب لتدفق الإدخال/الإخراج: لا تُقرَأ أي بيانات من BIO in.

تُضمّن البيانات المضغوطة في بنية CMS_ContentInfo، ما لم يُضبط CMS_DETACHED فتُحذف. هذا نادر الاستخدام عملياً ولا تدعمه SMIME_write_CMS().

إذا ضُبطت الراية CMS_STREAM، فإن بنية CMS_ContentInfo المعادة ليست كاملة، وإخراج محتوياتها عبر دالة لا تنهي بنية CMS_ContentInfo بشكل صحيح سيعطي نتائج لا يمكن التنبؤ بها.

تقوم عدة دوال بما في ذلك SMIME_write_CMS() و i2d_CMS_bio_stream() و PEM_write_bio_CMS_stream() بإنهاء البنية. بدلاً من ذلك، يمكن إجراء الإنهاء بالحصول على تدفق ASN1 BIO مباشرة باستخدام BIO_new_CMS().

لا يمكن حالياً ضبط معاملات ضغط إضافية مثل مستوى ضغط zlib.

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

انظر أيضًا
ERR_get_error(3), CMS_uncompress(3)

التاريخ
أُضيف العلم CMS_STREAM في OpenSSL 1.0.0.

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