ASN1_STRING_PRINT_EX(3ssl)

الاسم
ASN1_tag2str, ASN1_STRING_print_ex, ASN1_STRING_print_ex_fp, ASN1_STRING_print \&- دوال إخراج ASN1_STRING

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

 int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags);
 int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags);
 int ASN1_STRING_print(BIO *out, const ASN1_STRING *str);

 const char *ASN1_tag2str(int tag);

الوصف
تُخرج هذه الدوال بنية ASN1_STRING. يُستخدم ASN1_STRING لتمثيل جميع أنواع السلاسل ASN1.

\&ASN1_STRING_print_ex() تُخرج str إلى out، يُحدد التنسيق بواسطة الخيارات flags. ASN1_STRING_print_ex_fp() متطابقة إلا أنها تُخرج إلى fp بدلاً من ذلك.

\&ASN1_STRING_print() تطبع str إلى out لكن باستخدام تنسيق مختلف عن \&ASN1_STRING_print_ex(). تستبدل المحارف غير القابلة للطباعة (بخلاف CR, LF) بـ \*(Aq.\*(Aq.

\&ASN1_tag2str() تُرجع اسمًا مقروءًا بشريًا لـ tag المحدد من ASN.1.

ملاحظات
\&ASN1_STRING_print() دالة مهملة ينبغي تجنبها؛ استخدم \&ASN1_STRING_print_ex() بدلاً منها.

رغم وجود عدد كبير من الخيارات، غالبًا ما يكون ASN1_STRFLGS_RFC2253 مناسبًا، أو على أطراف UTF8 ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB.

المجموعة الكاملة من الخيارات المدعومة لـ flags مُدرجة أدناه.

يمكن تخطي محارف مختلفة. إذا وُضع ASN1_STRFLGS_ESC_2253، تُتخطى المحارف المحددة بواسطة RFC2253. إذا وُضع ASN1_STRFLGS_ESC_CTRL، تُتخطى محارف التحكم. إذا وُضع ASN1_STRFLGS_ESC_MSB، تُتخطى المحارف ذات MSB المضبوط: لا ينبغي استخدام هذا الخيار إذا فسر الطرف تسلسلات UTF8 بشكل صحيح.

يتخذ التخطي عدة أشكال.

إذا كان الحرف المراد تهريبه (escaped) مكوناً من 16 بت، يُستخدم الصيغة "\UXXXX" مع استخدام أربعة رموز بالضبط لتمثيل القيمة الست عشرية. أما إذا كان مكوناً من 32 بت، فتُستخدم الصيغة "\WXXXXXXXX" مع استخدام ثمانية رموز لتمثيل قيمته الست عشرية. لن تُستخدم هذه الصيغ إلا في حال لم يتم ضبط تحويل UTF8 (انظر أدناه).

يُجرى عادةً تهريب (escaped) الأحرف القابلة للطباعة باستخدام حرف الشرطة المائلة العكسية '\'. أما إذا ضُبط العلم ASN1_STRFLGS_ESC_QUOTE، فسيُحاط السلسلة النصية بأكملها بعلامتي تنصيص مزدوجتين بدلاً من ذلك: وهذا بلا شك أكثر قابلية للقراءة من استخدام تدوين الشرطة المائلة العكسية. أما الأحرف الأخرى فتُستخدم الصيغة "\XX" مع استخدام رمزين بالضبط لتمثيل القيمة الست عشرية.

إذا وُضع ASN1_STRFLGS_UTF8_CONVERT، تُحول المحارف إلى تنسيق UTF8 أولاً. إذا دعم الطرف عرض تسلسلات UTF8، سيعرض هذا الخيار المحارف متعددة البايت بشكل صحيح.

إذا وُضع ASN1_STRFLGS_IGNORE_TYPE، لا يُفسر نوع السلسلة على الإطلاق: يُفترض أن كل شيء بايت واحد لكل محرف. هذا أساسًا لأغراض التصحيح وقد يؤدي إلى إخراج مربك في السلاسل متعددة المحارف.

إذا وُضع ASN1_STRFLGS_SHOW_TYPE، يُطبع نوع السلسلة نفسه قبل قيمته (على سبيل المثال "BMPSTRING")، يستخدم هذا فعليًا ASN1_tag2str().

محتوى سلسلة بدلاً من تفسيره يمكن "تفريغه": هذا فقط يُخرج قيمة السلسلة باستخدام الصيغة #XXXX باستخدام صيغة ست عشرية لكل ثمانية.

إذا وُضع ASN1_STRFLGS_DUMP_ALL فإن أي نوع يُفرغ.

عادةً تُفترض أنواع السلاسل غير المحرفية (مثل OCTET STRING) أنها بايت واحد لكل محرف، إذا وُضع ASN1_STRFLGS_DUMP_UNKNOWN فإنها تُفرغ بدلاً من ذلك.

عندما يُفرغ نوع عادةً تُطبع ثمانيات المحتوى فقط، إذا وُضع ASN1_STRFLGS_DUMP_DER فإن الترميز الكامل يُفرغ بدلاً من ذلك (بما في ذلك ثمانيات الوسم والطول).

ASN1_STRFLGS_RFC2253 تحوي جميع الأعلام المطلوبة حسب RFC2253. وهي مكافئة لـ:
 ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB |
 ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER

القيم المُرجعة
ASN1_STRING_print_ex() و ASN1_STRING_print_ex_fp() يُرجعان عدد المحارف المكتوبة أو -1 إذا حدث خطأ.

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

\&ASN1_tag2str() تُرجع اسمًا مقروءًا بشريًا لـ tag المحدد من ASN.1.

انظر أيضًا
X509_NAME_print_ex(3), ASN1_tag2str(3)

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