.\" -*- 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 "X509_NAME_GET_INDEX_BY_NID 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH X509_NAME_GET_INDEX_BY_NID 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 الاسم X509_NAME_get_index_by_NID, X509_NAME_get_index_by_OBJ, X509_NAME_get_entry, X509_NAME_entry_count, X509_NAME_get_text_by_NID, X509_NAME_get_text_by_OBJ \- دوال بحث وتعداد X509_NAME .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid, int lastpos); \& int X509_NAME_get_index_by_OBJ(const X509_NAME *name, \& const ASN1_OBJECT *obj, int lastpos); \& \& int X509_NAME_entry_count(const X509_NAME *name); \& X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); \& \& int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid, \& char *buf, int len); \& int X509_NAME_get_text_by_OBJ(const X509_NAME *name, const ASN1_OBJECT *obj, \& char *buf, int len); .Ve .SH الوصف .IX Header الوصف تسمح هذه الدوال بفحص بنية \fBX509_NAME\fP. بنية \&\fBX509_NAME\fP هي نفس النوع \fBName\fP المُعرَّف في RFC 5280 (وفي أماكن أخرى) والمُستخدم مثلاً في أسماء موضوع الشهادة والمُصدِر. .PP \&تسترجع \fBX509_NAME_get_index_by_NID()\fP و \fBX509_NAME_get_index_by_OBJ()\fP الفهرس التالي المُطابق لـ \fBnid\fP أو \fBobj\fP بعد \fBlastpos\fP. يُضبط \fBlastpos\fP مبدئياً على \-1. إذا لم توجد مدخلات أخرى، يُعاد \-1. إذا كان \fBnid\fP غير صالح (لا يُطابق OID صالح)، يُعاد \-2. .PP \&تُعيد \fBX509_NAME_entry_count()\fP العدد الإجمالي للمدخلات في \fBname\fP. .PP \&تسترجع \fBX509_NAME_get_entry()\fP \fBX509_NAME_ENTRY\fP من \fBname\fP المُطابق للفهرس \fBloc\fP. تتراوح القيم المقبولة لـ \fBloc\fP من 0 إلى (X509_NAME_entry_count(name) \- 1). القيمة المُعادة هي مؤشر داخلي لا يجب تحريره. .PP \&تسترجع \fBX509_NAME_get_text_by_NID()\fP و \fBX509_NAME_get_text_by_OBJ()\fP "النص" من أول مدخل في \fBname\fP يُطابق \fBnid\fP أو \&\fBobj\fP، إذا لم يوجد مثل هذا المدخل يُعاد \-1. سيُكتب على الأكثر \fBlen\fP بايت وسيُنهى النص المكتوب في \fBbuf\fP بقيمة خالية. يُعاد طول سلسلة المحارف الناتجة المكتوبة باستثناء القيمة الخالية الختامية. إذا كان \fBbuf\fP هو ، تُعاد المساحة المطلوبة في \fBbuf\fP (باستثناء القيمة الخالية النهائية). .SH ملاحظات .IX Header ملاحظات \&يجب اعتبار \fBX509_NAME_get_text_by_NID()\fP و \fBX509_NAME_get_text_by_OBJ()\fP مهملة لأن لهما قيوداً متنوعة تجعلهما ذوي فائدة ضئيلة عملياً. يمكنهما فقط إيجاد أول مدخل مُطابق وسينسخان محتويات الحقل حرفياً: قد يكون هذا مُربكاً جداً إذا كان الهدف من نوع سلسلة محارف متعددة الأحرف مثل BMPString أو UTF8String. .PP لحل أكثر عمومية، يجب استخدام \fBX509_NAME_get_index_by_NID()\fP أو \&\fBX509_NAME_get_index_by_OBJ()\fP متبوعاً بـ \&\fBX509_NAME_get_entry()\fP على أي فهارس مُطابقة ثم دوال الأداة المساعدة المختلفة \fBX509_NAME_ENTRY\fP على النتيجة. .PP يمكن إيجاد قائمة بجميع \fBNID_*\fP و \fBOBJ_* codes\fP ذات الصلة في ملفات رؤوس الكود المصدري \fI\fP و/أو \&\fI\fP. .PP يجب على التطبيقات التي قد تُمرر NIDs غير صالحة إلى \fBX509_NAME_get_index_by_NID()\fP التحقق من قيمة الإعادة \-2. بدلاً من ذلك، يمكن تحديد صلاحية NID أولاً بالتحقق من أن OBJ_nid2obj(nid) ليس NULL. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&تُعيد \fBX509_NAME_get_index_by_NID()\fP و \fBX509_NAME_get_index_by_OBJ()\fP فهرس المدخل المُطابق التالي أو \-1 إذا لم يُوجد. يمكن لـ \&\fBX509_NAME_get_index_by_NID()\fP أيضاً إعادة \-2 إذا كان NID المُقدم غير صالح. .PP \&تُعيد \fBX509_NAME_entry_count()\fP العدد الإجمالي للمدخلات، و0 عند الفشل. .PP \&تُعيد \fBX509_NAME_get_entry()\fP مؤشر \fBX509_NAME\fP إلى المدخل المطلوب أو \fBNULL\fP إذا كان الفهرس غير صالح. .SH أمثلة .IX Header أمثلة معالجة جميع المدخلات: .PP .Vb 2 \& int i; \& X509_NAME_ENTRY *e; \& \& for (i = 0; i < X509_NAME_entry_count(nm); i++) { \& e = X509_NAME_get_entry(nm, i); \& /* Do something with e */ \& } .Ve .PP معالجة جميع مدخلات commonName: .PP .Vb 2 \& int lastpos = \-1; \& X509_NAME_ENTRY *e; \& \& for (;;) { \& lastpos = X509_NAME_get_index_by_NID(nm, NID_commonName, lastpos); \& if (lastpos == \-1) \& break; \& e = X509_NAME_get_entry(nm, lastpos); \& /* Do something with e */ \& } .Ve .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3)، \fBd2i_X509_NAME\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2002\-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 .