.\" -*- 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_ADD_ENTRY_BY_TXT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH X509_NAME_ADD_ENTRY_BY_TXT 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_add_entry_by_txt, X509_NAME_add_entry_by_OBJ, X509_NAME_add_entry_by_NID, X509_NAME_add_entry, X509_NAME_delete_entry \- دوال تعديل X509_NAME .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, \& const unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, \& const unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, \& const unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, int loc, int set); \& \& X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); .Ve .SH الوصف .IX Header الوصف \&تُضيف الدالتان \fBX509_NAME_add_entry_by_txt()\fP و\fBX509_NAME_add_entry_by_OBJ()\fP و\fBX509_NAME_add_entry_by_NID()\fP حقلاً يُعرَّف اسمه بواسطة سلسلة محارف \fBfield\fP، أو كائن \fBobj\fP، أو NID \fBnid\fP على التوالي. تكون قيمة الحقل المراد إضافتها في \fBbytes\fP بطول \fBlen\fP. إذا كان \fBlen\fP يساوي \-1، يُحسب طول الحقل داخليًا باستخدام strlen(bytes). .PP يُحدد نوع الحقل بواسطة \fBtype\fP الذي يمكن أن يكون تعريفًا لنوع \fBbytes\fP (مثل \fBMBSTRING_ASC\fP) أو نوع ASN1 قياسي (مثل \fBV_ASN1_IA5STRING\fP). يُضاف الإدخال الجديد إلى موضع يُحدد بواسطة \fBloc\fP و\fBset\fP. .PP \&تُضيف الدالة \fBX509_NAME_add_entry()\fP نسخة من بنية \fBX509_NAME_ENTRY\fP \fBne\fP إلى \fBname\fP. يُضاف الإدخال الجديد إلى موضع يُحدد بواسطة \fBloc\fP و\fBset\fP. نظرًا لإضافة نسخة من \fBne\fP، يجب تحرير \fBne\fP بعد الاستدعاء. .PP \&تحذف الدالة \fBX509_NAME_delete_entry()\fP إدخالاً من \fBname\fP في الموضع \fBloc\fP. يُعاد الإدخال المحذوف ويجب تحريره. .SH ملاحظات .IX Header ملاحظات يُوصى بشدة باستخدام أنواع السلاسل مثل \fBMBSTRING_ASC\fP أو \fBMBSTRING_UTF8\fP للمعامل \fBtype\fP. يسمح هذا للكود الداخلي بتحديد نوع الحقل بشكل صحيح وتطبيق فحوصات الطول وفقًا للمعايير ذات الصلة. يُنجز هذا باستخدام \fBASN1_STRING_set_by_NID()\fP. .PP إذا استُخدم نوع ASN1 بدلاً من ذلك، لا تُجرى أي فحوصات وتُستخدم البيانات المقدمة في \fBbytes\fP مباشرة. .PP في الدالة \fBX509_NAME_add_entry_by_txt()\fP، تمثل سلسلة المحارف \fBfield\fP اسم الحقل باستخدام OBJ_txt2obj(field, 0). .PP يُحدد المعاملان \fBloc\fP و\fBset\fP مكان إضافة إدخال جديد. بالنسبة لمعظم التطبيقات، يمكن ضبط \fBloc\fP على \-1 و\fBset\fP على 0. يُضيف هذا إدخالاً جديدًا إلى نهاية \fBname\fP كـ RelativeDistinguishedName (RDN) بقيمة مفردة. .PP \&يُحدد \fBloc\fP فعليًا الفهرس الذي يُدرج فيه الإدخال الجديد: إذا كان \-1، يُلحق في النهاية. .PP \&يُحدد \fBset\fP كيفية إضافة النوع الجديد. إذا كان صفرًا، يُنشأ RDN جديد. .PP إذا كان \fBset\fP يساوي \-1 أو 1، يُضاف كعضو مجموعة جديد إلى بنية RDN السابقة أو التالية على التوالي. يصبح هذا بعد ذلك جزءًا من RDN متعدد القيم (يحتوي على مجموعة من AVAs). نظرًا لأن RDNs متعددة القيم نادرًا ما تُستخدم، سيكون \fBset\fP عادةً صفرًا. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&تُرجع الدوال \fBX509_NAME_add_entry_by_txt()\fP و\fBX509_NAME_add_entry_by_OBJ()\fP و\fBX509_NAME_add_entry_by_NID()\fP و\fBX509_NAME_add_entry()\fP القيمة 1 عند النجاح أو 0 إذا حدث خطأ. .PP \&تُرجع الدالة \fBX509_NAME_delete_entry()\fP إما بنية \fBX509_NAME_ENTRY\fP المحذوفة أو \fBNULL\fP إذا حدث خطأ. .SH أمثلة .IX Header أمثلة إنشاء بنية \fBX509_NAME\fP: .PP "C=UK, O=Disorganized Organization, CN=Joe Bloggs" .PP .Vb 1 \& X509_NAME *nm; \& \& nm = X509_NAME_new(); \& if (nm == NULL) \& /* Some error */ \& if (!X509_NAME_add_entry_by_txt(nm, "C", MBSTRING_ASC, \& "UK", \-1, \-1, 0)) \& /* Error */ \& if (!X509_NAME_add_entry_by_txt(nm, "O", MBSTRING_ASC, \& "Disorganized Organization", \-1, \-1, 0)) \& /* Error */ \& if (!X509_NAME_add_entry_by_txt(nm, "CN", MBSTRING_ASC, \& "Joe Bloggs", \-1, \-1, 0)) \& /* Error */ .Ve .SH العلل .IX Header العلل لا يزال بالإمكان ضبط \&\fBtype\fP إلى \fBV_ASN1_APP_CHOOSE\fP لاستخدام خوارزمية مختلفة لتحديد أنواع الحقول. نظرًا لأن هذه الصيغة لا تفهم الأنواع متعددة المحارف، ولا تجري فحوصات الطول، وقد تؤدي إلى أنواع حقول غير صالحة، فإن استخدامها غير مستحسن بشدة. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3)، \fBd2i_X509_NAME\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2002\-2020 لمؤلفي مشروع 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 .