.\" -*- 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_GET0_RECIPIENTINFOS 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CMS_GET0_RECIPIENTINFOS 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_get0_RecipientInfos, CMS_RecipientInfo_type, CMS_RecipientInfo_ktri_get0_signer_id, CMS_RecipientInfo_ktri_cert_cmp, CMS_RecipientInfo_set0_pkey, CMS_RecipientInfo_kekri_get0_id, CMS_RecipientInfo_kari_set0_pkey_and_peer, CMS_RecipientInfo_kari_set0_pkey, CMS_RecipientInfo_kari_get0_ctx, CMS_RecipientInfo_kekri_id_cmp, CMS_RecipientInfo_set0_key, CMS_RecipientInfo_kemri_cert_cmp, CMS_RecipientInfo_kemri_set0_pkey, CMS_RecipientInfo_kemri_get0_ctx, CMS_RecipientInfo_kemri_get0_kdf_alg, CMS_RecipientInfo_kemri_set_ukm, CMS_RecipientInfo_decrypt, CMS_RecipientInfo_encrypt \\&\- إجراءات CMS envelopedData RecipientInfo .SH موجز .IX Header موجز .Vb 1 \& #include \& \& STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); \& int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); \& \& int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, \& ASN1_OCTET_STRING **keyid, \& X509_NAME **issuer, \& ASN1_INTEGER **sno); \& int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); \& int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); \& int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, \& EVP_PKEY *pk, X509 *peer); \& int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); \& EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); \& int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, X509_ALGOR **palg, \& ASN1_OCTET_STRING **pid, \& ASN1_GENERALIZEDTIME **pdate, \& ASN1_OBJECT **potherid, \& ASN1_TYPE **pothertype); \& int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, \& const unsigned char *id, size_t idlen); \& int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, \& unsigned char *key, size_t keylen); \& int CMS_RecipientInfo_kemri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); \& int CMS_RecipientInfo_kemri_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); \& EVP_CIPHER_CTX *CMS_RecipientInfo_kemri_get0_ctx(CMS_RecipientInfo *ri); \& X509_ALGOR *CMS_RecipientInfo_kemri_get0_kdf_alg(CMS_RecipientInfo *ri); \& int CMS_RecipientInfo_kemri_set_ukm(CMS_RecipientInfo *ri, \& const unsigned char *ukm, \& int ukmLength); \& \& int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); \& int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); .Ve .SH الوصف .IX Header الوصف الدالة \fBCMS_get0_RecipientInfos()\fP تُرجع جميع بنى CMS_RecipientInfo المرتبطة ببنية CMS EnvelopedData. .PP \&\fBCMS_RecipientInfo_type()\fP تُرجع نوع بنية CMS_RecipientInfo \fBri\fP. تُرجع حالياً CMS_RECIPINFO_TRANS، أو CMS_RECIPINFO_AGREE، أو CMS_RECIPINFO_KEK، أو CMS_RECIPINFO_PASS، أو CMS_RECIPINFO_KEM، أو CMS_RECIPINFO_OTHER. .PP \&\fBCMS_RecipientInfo_ktri_get0_signer_id()\fP تسترجع معرّف مستلم الشهادة المرتبط ببنية CMS_RecipientInfo محددة \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_TRANS. إما أن يُضبط معرّف المفتاح في \&\fBkeyid\fP أو \fBكلا\fP اسم المُصدر والرقم التسلسلي في \fBissuer\fP و \fBsno\fP. .PP \&\fBCMS_RecipientInfo_ktri_cert_cmp()\fP تُقارن الشهادة \fBcert\fP مع بنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_TRANS. تُرجع صفراً إذا نجحت المقارنة وقيمة غير صفرية إذا لم تنجح. .PP \&\fBCMS_RecipientInfo_set0_pkey()\fP تُربط المفتاح الخاص \fBpkey\fP ببنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_TRANS. .PP \&\fBCMS_RecipientInfo_kari_set0_pkey_and_peer()\fP تُربط المفتاح الخاص \fBpkey\fP وشهادة النظير \fBpeer\fP ببنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_AGREE. .PP \&\fBCMS_RecipientInfo_kari_set0_pkey()\fP تُربط المفتاح الخاص \fBpkey\fP ببنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_AGREE. .PP \&\fBCMS_RecipientInfo_kari_get0_ctx()\fP تُرجع EVP_CIPHER_CTX لمفتاح تعمية المفتاح، مما يسمح للمستدعي بتحديد شيفرة لف المفتاح. يجب أن تكون بنية CMS_RecipientInfo \fBri\fP من نوع CMS_RECIPINFO_AGREE. .PP \&\fBCMS_RecipientInfo_kekri_get0_id()\fP تسترجع معلومات المفتاح من بنية CMS_RecipientInfo \fBri\fP والتي يجب أن تكون من نوع CMS_RECIPINFO_KEK. يمكن أن تكون أي من المعاملات المتبقية NULL إذا لم يكن التطبيق مهتماً بقيمة حقل. حيثما كان الحقل اختيارياً وغائباً، يُكتب NULL في المعامل المقابل. يُكتب حقل keyEncryptionAlgorithm في \&\fBpalg\fP، ويُكتب حقل \fBkeyIdentifier\fP في \fBpid\fP، ويُكتب حقل \fBdate\fP إذا كان موجوداً في \fBpdate\fP، وإذا كان حقل \fBother\fP موجوداً، تُكتب المكونات \&\fBkeyAttrId\fP و \fBkeyAttr\fP في المعاملين \fBpotherid\fP و \&\fBpothertype\fP. .PP \&\fBCMS_RecipientInfo_kekri_id_cmp()\fP تُقارن المُعرّف في المعاملين \fBid\fP و \fBidlen\fP مع \fBkeyIdentifier\fP لبنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_KEK. تُرجع صفراً إذا نجحت المقارنة وقيمة غير صفرية إذا لم تنجح. .PP \&\fBCMS_RecipientInfo_set0_key()\fP تُربط المفتاح المتناظر \fBkey\fP بطول \&\fBkeylen\fP ببنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_KEK. .PP \&\fBCMS_RecipientInfo_kemri_cert_cmp()\fP تُقارن الشهادة \fBcert\fP مع بنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_KEM. تُرجع صفراً إذا نجحت المقارنة وقيمة غير صفرية إذا لم تنجح. .PP \&\fBCMS_RecipientInfo_kemri_set0_pkey()\fP تُربط المفتاح الخاص \fBpkey\fP ببنية CMS_RecipientInfo \fBri\fP، والتي يجب أن تكون من نوع CMS_RECIPINFO_KEM. .PP \&\fBCMS_RecipientInfo_kemri_get0_ctx()\fP تُرجع EVP_CIPHER_CTX لمفتاح تعمية المفتاح، مما يسمح للمستدعي بتحديد شيفرة لف المفتاح. يجب أن تكون بنية CMS_RecipientInfo \fBri\fP من نوع CMS_RECIPINFO_KEM. .PP \&\fBCMS_RecipientInfo_kemri_get0_kdf_alg()\fP تُرجع X509_ALGAR لـ KDF الخاص بـ RecipientInfo، مما يسمح للمستدعي بتحديد خوارزمية KDF. يجب أن تكون بنية CMS_RecipientInfo \fBri\fP من النوع CMS_RECIPINFO_KEM. إذا لم يحدد المستدعي خوارزمية KDF، فسيُستخدم \fBHKDF\-SHA256\fP. .PP \&\fBCMS_RecipientInfo_kemri_set_ukm()\fP تُعيِّن مادة المفاتيح الاختيارية للمستخدم (UKM) الخاصة بـ RecipientInfo. يُرمَّز UKM، مع معلومات أخرى، في معامل \fBOSSL_KDF_PARAM_INFO\fP الخاص بـ KDF الخاص بـ RecipientInfo. يجب أن تكون بنية CMS_RecipientInfo \fBri\fP من النوع CMS_RECIPINFO_KEM. .PP \&\fBCMS_RecipientInfo_decrypt()\fP تُحاول فك تعمية بنية CMS_RecipientInfo \&\fBri\fP في البنية \fBcms\fP. يجب أن يكون مفتاح قد ارتبط بالبنية أولاً. .PP \&\fBCMS_RecipientInfo_encrypt()\fP تُحاول تعمية بنية CMS_RecipientInfo \&\fBri\fP في البنية \fBcms\fP. يجب أن يكون مفتاح قد ارتبط بالبنية أولاً ويجب أن يكون مفتاح تعمية المحتوى متاحاً: مثلاً باستدعاء سابق لـ \fBCMS_RecipientInfo_decrypt()\fP. .SH ملاحظات .IX Header ملاحظات الغرض الرئيس من هذه الدوال هو تمكين تطبيق من البحث عن مفاتيح المستلم باستخدام أي تقنية مناسبة عندما لا تكون الطريقة الأبسط لـ \fBCMS_decrypt()\fP مناسبة. .PP في الاستخدام النمطي، سيسترد التطبيق جميع بنى CMS_RecipientInfo باستخدام \fBCMS_get0_RecipientInfos()\fP ويتحقق من نوع كل منها باستخدام \&\fBCMS_RecipientInfo_type()\fP. اعتماداً على النوع، يمكن تجاهل بنية CMS_RecipientInfo أو استرداد بيانات معرِّف مفتاحها باستخدام دالة مناسبة. ثم إذا أمكن الحصول على المفتاح السري أو الخاص المقابل بأي وسيلة مناسبة، فيمكن ربطه بالبنية واستدعاء \&\fBCMS_RecipientInfo_decrypt()\fP. إذا نجح ذلك، يمكن استدعاء \fBCMS_decrypt()\fP بمفتاح NULL لفك تعمية المحتوى المُغلَّف. .PP يمكن استخدام \fBCMS_RecipientInfo_encrypt()\fP لإضافة مستلم جديد إلى بنية بيانات مُغلَّفة موجودة. عادةً، سيقوم تطبيق أولاً بفك تعمية بنية CMS_RecipientInfo مناسبة لجعل مفتاح تعمية المحتوى متاحاً، ثم سيضيف مستلماً جديداً باستخدام دالة مثل \&\fBCMS_add1_recipient_cert()\fP وأخيراً سيعمي مفتاح تعمية المحتوى باستخدام \fBCMS_RecipientInfo_encrypt()\fP. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBCMS_get0_RecipientInfos()\fP تُرجع جميع بنى CMS_RecipientInfo، أو NULL إذا حدث خطأ. .PP \&\fBCMS_RecipientInfo_ktri_get0_signer_id()\fP, \fBCMS_RecipientInfo_set0_pkey()\fP, \&\fBCMS_RecipientInfo_kekri_get0_id()\fP, \fBCMS_RecipientInfo_set0_key()\fP, \&\fBCMS_RecipientInfo_kemri_set0_pkey()\fP, \fBCMS_RecipientInfo_kemri_set_ukm()\fP, \&\fBCMS_RecipientInfo_decrypt()\fP و \fBCMS_RecipientInfo_encrypt()\fP تُرجع 1 للنجاح أو 0 إذا حدث خطأ. .PP \&\fBCMS_RecipientInfo_ktri_cert_cmp()\fP, \fBCMS_RecipientInfo_kemri_cert_cmp()\fP و \&\fBCMS_RecipientInfo_kekri_cmp()\fP تُرجع 0 لمقارنة ناجحة وقيمة غير صفرية بخلاف ذلك. .PP \&\fBCMS_RecipientInfo_kemri_get0_ctx()\fP و CMS_RecipientInfo_kari_get0_ctx تُرجعان EVP_CIPHER_CTX الخاص بـ RecipientInfo أو NULL إذا حدث خطأ. .PP \&\fBCMS_RecipientInfo_kemri_get0_kdf_alg()\fP تُرجع X509_ALGOR الخاص بـ KDF الخاص بـ RecipientInfo أو NULL إذا حدث خطأ. .PP يمكن الحصول على أي خطأ من \fBERR_get_error\fP\|(3). .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3)، \fBCMS_decrypt\fP\|(3) .SH التاريخ .IX Header التاريخ \&\fBCMS_RecipientInfo_kari_set0_pkey_and_peer\fP و \fBCMS_RecipientInfo_kari_set0_pkey\fP أُضيفتا في OpenSSL 3.0. .PP \&\fBCMS_RecipientInfo_kemri_cert_cmp\fP, \fBCMS_RecipientInfo_kemri_set0_pkey\fP, \&\fBCMS_RecipientInfo_kemri_get0_ctx\fP, \fBCMS_RecipientInfo_kemri_get0_kdf_alg\fP و \fBCMS_RecipientInfo_kemri_set_ukm\fP أُضيفت في OpenSSL 3.6. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2008\-2025 لمؤلفي مشروع 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 .