CMS_ADD1_RECIPIENT_CERT(3SSL)

الاسم
CMS_add1_recipient, CMS_add1_recipient_cert, CMS_add0_recipient_key - إضافة مستلمين إلى بنية بيانات CMS المُغلّفة

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

 CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip,
                                       EVP_PKEY *originatorPrivKey,
                                       X509 *originator, unsigned int flags);

 CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
                                            X509 *recip, unsigned int flags);

 CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
                                           unsigned char *key, size_t keylen,
                                           unsigned char *id, size_t idlen,
                                           ASN1_GENERALIZEDTIME *date,
                                           ASN1_OBJECT *otherTypeId,
                                           ASN1_TYPE *otherType);

الوصف
CMS_add1_recipient() يُضيف المستلم recip ويُوفّر المفتاح الخاص للمُنشئ originatorPrivKey وشهادة المُنشئ originator إلى CMS_ContentInfo. الحقول المتعلقة بالمُنشئ ذات صلة فقط في حالة استخدام طريقة keyAgreement لتوفير المفتاح المُشترك.

CMS_add1_recipient_cert() يُضيف المستلم recip إلى بنية بيانات CMS_ContentInfo المُغلّفة cms كهيكل KeyTransRecipientInfo أو KEMRecipientInfo، أو كهيكل KeyAgreeRecipientInfo بمفتاح مؤقت.

CMS_add0_recipient_key() يُضيف المفتاح المتناظر key بطول keylen باستخدام خوارزمية التغليف nid، والمعرّف id بطول idlen والقيم الاختيارية date وotherTypeId وotherType إلى بنية بيانات CMS_ContentInfo المُغلّفة cms كهيكل KEKRecipientInfo.

يجب الحصول على بنية CMS_ContentInfo من استدعاء أولي لـ CMS_encrypt() مع تعيين العلامة CMS_PARTIAL.

ملاحظات
الغرض الرئيس من هذه الدالة هو توفير تحكم أدق في بنية بيانات CMS المُغلّفة حيث لا تكون المبدئيات الأبسط للدالة CMS_encrypt() مناسبة. على سبيل المثال، إذا كان من الضروري إضافة هيكل KEKRecipientInfo واحد أو أكثر. يمكن أيضًا إضافة سمات جديدة باستخدام بنية CMS_RecipientInfo المُعادة ودوال الأداة المساعدة لسمات CMS.

سيقوم OpenSSL مبدئيًا بتحديد شهادات المستلمين باستخدام اسم المصدر والرقم التسلسلي. إذا جرى ضبط CMS_USE_KEYID فسيستخدم قيمة معرف مفتاح الموضوع بدلاً من ذلك. سيحدث خطأ إذا كانت جميع شهادات المستلمين لا تحتوي على امتداد معرف مفتاح الموضوع.

حاليًا، فقط خوارزميات تغليف المفاتيح المستندة إلى AES مدعومة لـ nid، وتحديدًا: NID_id_aes128_wrap وNID_id_aes192_wrap وNID_id_aes256_wrap. إذا عُيّن nid إلى NID_undef، فسيُستخدم خوارزمية تغليف AES متوافقة مع keylen.

القيم المُرجعة
CMS_add1_recipient_cert() وCMS_add0_recipient_key() يُعيدان مؤشرًا داخليًا إلى بنية CMS_RecipientInfo المُضافة حديثًا أو NULL إذا حدث خطأ.

انظر أيضًا
ERR_get_error(3)، CMS_decrypt(3)، CMS_final(3)،

التاريخ
CMS_add1_recipient_cert وCMS_add0_recipient_key أُضيفا في OpenSSL 3.0.

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