PKCS12_PARSE(3SSL)

الاسم
PKCS12_parse - تحليل بنية PKCS#12

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

 int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert,
                  STACK_OF(X509) **ca);

الوصف
PKCS12_parse() يحلل بنية PKCS12.

p12 هي بنية PKCS12 المراد تحليلها. pass هي عبارة السر المستخدمة. في حالة النجاح، يُكتب المفتاح الخاص إلى *pkey، والشهادة المقابلة إلى *cert، وأي شهادات إضافية إلى *ca.

ملاحظات
يمكن أن يكون كل من المعاملات pkey وcert وca NULL، وفي هذه الحالة يُتخلص من المفتاح الخاص أو الشهادة المقابلة أو الشهادات الإضافية على التوالي. إذا كان أي من pkey وcert غير NULL، يُهيأ المتغير الذي يشير إليه. إذا كان ca غير NULL و*ca هو NULL، يُخصص STACK جديد. إذا كان ca غير NULL و*ca هو STACK صالح، تُلحق الشهادات الإضافية بالترتيب المعطى إلى *ca.

تُخزن السمتان friendlyName وlocalKeyID (إذا كانتا موجودتين) على كل شهادة في سمة alias وkeyid لبنية X509.

يُفسر المعامل pass كسلسلة محارف بترميز UTF-8. إذا لم يكن UTF-8 صالحًا، يُفترض أنه ISO8859-1 بدلاً من ذلك.

يعني هذا على وجه الخصوص أن كلمات السر في مجموعة محارف اللغة (أو صفحة الرموز على ويندوز) يجب تحويلها إلى UTF-8 قبل الاستخدام. قد يشمل هذا كلمات السر من ملفات نصية محلية، أو إدخال من الطرفية أو سطر الأوامر. راجع توثيق UI_OpenSSL(3) على سبيل المثال.

القيم المُرجعة
PKCS12_parse() تُرجع 1 للنجاح وصفر إذا حدث خطأ.

يمكن الحصول على الخطأ من ERR_get_error(3)

العلل
تُرجع هذه الدالة مفتاحًا خاصًا واحدًا فقط والشهادة المقابلة له. ملفات PKCS#12 الأكثر تعقيدًا ذات المفاتيح الخاصة المتعددة تُرجع فقط أول تطابق.

تُخزن حاليًا فقط السمتان friendlyName وlocalKeyID في الشهادات. تُتخلص من السمات الأخرى.

لا يمكن حاليًا تخزين السمات في بنية المفتاح الخاص EVP_PKEY.

انظر أيضًا
d2i_PKCS12(3), passphrase-encoding(7)

حقوق النسخ
حقوق النشر 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.