ASN1_STRING_LENGTH(3ssl)

الاسم
ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length, ASN1_STRING_type, ASN1_STRING_get0_data, ASN1_STRING_data, ASN1_STRING_to_UTF8 - دوال مساعدة ASN1_STRING

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

 int ASN1_STRING_length(ASN1_STRING *x);
 const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x);
 unsigned char *ASN1_STRING_data(ASN1_STRING *x);

 ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a);

 int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);

 int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);

 int ASN1_STRING_type(const ASN1_STRING *x);

 int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in);

الوصف
تسمح هذه الدوال بمعالجة بنية ASN1_STRING.

ترجع ASN1_STRING_length() طول محتوى x. يجب ألا يكون x NULL.

ترجع ASN1_STRING_get0_data() مؤشرًا داخليًا لبيانات x. نظرًا لأنه مؤشر داخلي، فلا ينبغي تحريره أو تعديله بأي شكل. يجب ألا يكون x NULL.

تشبه ASN1_STRING_data() ASN1_STRING_get0_data() باستثناء أن القيمة المرجعة ليست ثابتة. هذه الدالة مهملة: يجب على التطبيقات استخدام ASN1_STRING_get0_data() بدلاً منها.

ترجع ASN1_STRING_dup() نسخة من البنية a.

تقارن ASN1_STRING_cmp() بين a وb وتُرجع 0 إذا كانا متطابقين. تُقارن أنواع السلاسل والمحتوى.

تضبط ASN1_STRING_set() بيانات السلسلة str إلى المخزن المؤقت data أو الطول len. تُنسخ البيانات المقدمة. إذا كان len يساوي -1، يُحدد الطول بواسطة strlen(data).

ترجع ASN1_STRING_type() نوع x، باستخدام ثوابت قياسية مثل V_ASN1_OCTET_STRING.

تحول ASN1_STRING_to_UTF8() السلسلة in إلى تنسيق UTF8، تُخصص البيانات المحولة في مخزن مؤقت في *out. يُرجع طول out أو رمز خطأ سالب. يجب تحرير المخزن المؤقت *out باستخدام OPENSSL_free().

ملاحظات
تُعرض جميع أنواع ASN1 تقريبًا في OpenSSL كبنية ASN1_STRING. أنواع أخرى مثل ASN1_OCTET_STRING تُعرف ببساطة باسم ASN1_STRING وتستدعي الدوال المكافئات لـ ASN1_STRING. يُستخدم ASN1_STRING أيضًا لبعض أنواع CHOICE التي تتكون بالكامل من أنواع سلاسل بدائية مثل DirectoryString وTime.

لا ينبغي استخدام هذه الدوال لفحص أو تعديل أنواع ASN1_INTEGER أو ASN1_ENUMERATED: يجب استخدام دوال INTEGER أو ENUMERATED المساعدة ذات الصلة بدلاً من ذلك.

بشكل عام، لا يمكن افتراض أن البيانات المرجعة بواسطة ASN1_STRING_data() منتهية بقيمة خالية أو لا تحتوي على قيم خالية مضمنة. يعتمد التنسيق الفعلي للبيانات على نوع السلسلة نفسه: على سبيل المثال، بالنسبة لـ IA5String ستكون البيانات ASCII، وبالنسبة لـ BMPString بايتان لكل حرف بتنسيق big endian، وبالنسبة لـ UTF8String ستكون بتنسيق UTF8.

يجب توخي الحذر المماثل لضمان أن البيانات بالتنسيق الصحيح عند استدعاء ASN1_STRING_set().

القيم المُرجعة
ترجع ASN1_STRING_length() طول محتوى x.

ASN1_STRING_get0_data() و ASN1_STRING_data() يُرجعان مؤشرًا داخليًا لبيانات x.

ASN1_STRING_dup() يُرجع بنية ASN1_STRING صالحة أو NULL إذا حدث خطأ.

ASN1_STRING_cmp() يُرجع عددًا صحيحًا أكبر من أو يساوي أو أقل من 0، وفقًا لما إذا كان a أكبر من أو يساوي أو أقل من b.

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

ASN1_STRING_type() يُرجع نوع x.

ASN1_STRING_to_UTF8() يُرجع عدد البايتات في سلسلة الإخراج out أو قيمة سالبة إذا حدث خطأ.

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

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