X509_NAME_PRINT_EX(3SSL)

الاسم
X509_NAME_print_ex, X509_NAME_print_ex_fp, X509_NAME_print, X509_NAME_oneline - دوال طباعة X509_NAME

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

 int X509_NAME_print_ex(BIO *out, const X509_NAME *nm,
                        int indent, unsigned long flags);
 int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
                           int indent, unsigned long flags);
 char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
 int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);

الوصف
X509_NAME_print_ex() تطبع نسخة قابلة للقراءة البشرية من nm إلى BIO out. كل سطر (للصيغ متعددة الأسطر) يُزاح بمقدار indent مسافة. يمكن تخصيص صيغة المخرجات بشكل واسع باستخدام معامل flags.

X509_NAME_print_ex_fp() مطابقة لـ X509_NAME_print_ex() باستثناء أن المخرجات تُكتب إلى مؤشر FILE fp.

X509_NAME_oneline() يطبع نسخة ASCII من a إلى buf. يدعم هذا أسماء RDN متعددة القيم ويُفلت المحارف / و + في القيم. إذا كان buf هو NULL، فسيُخصص مخزن مؤقت ديناميكيًا ويُعاد، ويُتجاهل size. وإلا، فسيُكتب على الأكثر size بايت، بما في ذلك المحرف النهائي '\0'، ويُعاد buf.

X509_NAME_print() تطبع name إلى bp على سطر واحد. معامل obase يُتجاهل ويُحتفظ به فقط لتوافق API.

ملاحظات
الدوال X509_NAME_oneline() و X509_NAME_print() تُنتج صيغة مخرجات غير قياسية، ولا تتعامل مع الحقول متعددة المحارف، ولها العديد من الشذوذ والتناقضات. يُنصح بشدة بعدم استخدامها في التطبيقات الجديدة، وقد تُهمل في إصدار مستقبلي.

على الرغم من وجود عدد كبير من الأعلام المحتملة، إلا أن XN_FLAG_ONELINE أو XN_FLAG_MULTILINE أو XN_FLAG_RFC2253 ستكون كافية لمعظم الأغراض. كما ورد في صفحة دليل ASN1_STRING_print_ex(3) لمحطات UTF8، يجب إلغاء تعيين ASN1_STRFLGS_ESC_MSB: لذا على سبيل المثال سيُستخدم XN_FLAG_ONELINE & ~ASN1_STRFLGS_ESC_MSB.

المجموعة الكاملة من الأعلام المدعومة بواسطة X509_NAME_print_ex() مُدرجة أدناه.

يمكن دمج عدة خيارات معًا باستخدام OR.

الخيارات XN_FLAG_SEP_COMMA_PLUS و XN_FLAG_SEP_CPLUS_SPC و XN_FLAG_SEP_SPLUS_SPC و XN_FLAG_SEP_MULTILINE تحدد فواصل الحقول المستخدمة. يُستخدم فاصلان متميزان بين مكونات RelativeDistinguishedName المتميزة وقيم منفصلة في نفس RDN لـ RDN متعدد القيم. RDNs متعددة القيم نادرة جدًا حاليًا لذا نادرًا ما يُستخدم الفاصل الثاني.

XN_FLAG_SEP_COMMA_PLUS تستخدم الفاصلة والعلامة الزائدة كفواصل. XN_FLAG_SEP_CPLUS_SPC تستخدم الفاصلة والعلامة الزائدة مع مسافات: هذا أكثر قابلية للقراءة من الفاصلة والعلامة الزائدة العاديتين. XN_FLAG_SEP_SPLUS_SPC تستخدم الفاصلة المنقوطة والعلامة الزائدة مع مسافات. XN_FLAG_SEP_MULTILINE تستخدم السطر الجديد والعلامة الزائدة مع مسافات على التوالي.

إذا عُيّن XN_FLAG_DN_REV فسيُطبع DN بالكامل بترتيب معكوس.

الحقول XN_FLAG_FN_SN و XN_FLAG_FN_LN و XN_FLAG_FN_OID و XN_FLAG_FN_NONE تحدد كيفية عرض اسم الحقل. ستستخدم الاسم المختصر (مثل CN) أو الاسم الطويل (مثل commonName) أو تستخدم دائمًا الصيغة الرقمية OID (عادةً تُستخدم OIDs فقط إذا لم يُتعرف على اسم الحقل) أو لا اسم حقل على التوالي.

إذا ضُبط XN_FLAG_SPC_EQ، فستُوضع مسافات حول المحرف '=' الذي يفصل أسماء الحقول عن قيمها.

إذا عُيّن XN_FLAG_DUMP_UNKNOWN_FIELDS فسيُطبع ترميز الحقول غير المعروفة بدلاً من القيم.

إذا عُيّن XN_FLAG_FN_ALIGN فتُحشى أسماء الحقول إلى 20 محرفًا: هذا مفيد فقط لصيغة متعددة الأسطر.

بالإضافة إلى ذلك، يمكن استخدام جميع الخيارات المدعومة بواسطة ASN1_STRING_print_ex() للتحكم في كيفية عرض كل قيمة حقل.

بالإضافة إلى ذلك، يمكن تعيين عدد من الخيارات للصيغ شائعة الاستخدام.

يُحدد الخيار XN_FLAG_RFC2253 خيارات تُنتج مخرجات متوافقة مع RFC2253. وهو ما يُعادل:
 "ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS"

XN_FLAG_ONELINE هو تنسيق سطر واحد أكثر قابلية للقراءة وهو نفسه:
 "ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | XN_FLAG_SPC_EQ | XN_FLAG_FN_SN"

XN_FLAG_MULTILINE هو تنسيق متعدد الأسطر وهو نفسه:
 "ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE | XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN"

XN_FLAG_COMPAT يستخدم صيغة مطابقة لـ X509_NAME_print(): في الواقع، يستدعي X509_NAME_print() داخليًا.

القيم المُرجعة
X509_NAME_oneline() يُرجع سلسلة محارف صالحة عند النجاح أو NULL عند الخطأ.

X509_NAME_print() يُرجع 1 عند النجاح أو 0 عند الخطأ.

X509_NAME_print_ex() و X509_NAME_print_ex_fp() يُرجعان 1 عند النجاح أو 0 عند الخطأ إذا كان XN_FLAG_COMPAT مضبوطًا، وهو نفس سلوك X509_NAME_print(). وإلا، يُرجعان -1 عند الخطأ أو قيم أخرى عند النجاح.

انظر أيضًا
ASN1_STRING_print_ex(3)

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