.\" -*- 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 "RAND_BYTES 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RAND_BYTES 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 الاسم RAND_bytes, RAND_priv_bytes, RAND_bytes_ex, RAND_priv_bytes_ex, RAND_pseudo_bytes, RAND_set1_random_provider \- توليد بيانات عشوائية .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int RAND_bytes(unsigned char *buf, int num); \& int RAND_priv_bytes(unsigned char *buf, int num); \& \& int RAND_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, \& unsigned int strength); \& int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num, \& unsigned int strength); \& \& int RAND_set1_random_provider(OSSL_LIB_CTX *ctx, OSSL_PROVIDER *p); .Ve .PP الدالة التالية أصبحت مهجورة منذ OpenSSL 1.1.0، ويمكن إخفاؤها تمامًا عبر تعريف \fBOPENSSL_API_COMPAT\fP بقيمة إصدار مناسبة، انظر \fBopenssl_user_macros\fP\|(7): .PP .Vb 1 \& int RAND_pseudo_bytes(unsigned char *buf, int num); .Ve .SH الوصف .IX Header الوصف \&\fBRAND_bytes()\fP يُولّد \fBnum\fP بايت عشوائي باستخدام مولّد عشوائي زائف آمن تشفيريًا (CSPRNG) ويُخزّنها في \fBbuf\fP. \fBbuf\fP \fBيجب ألا\fP يكون NULL. .PP \&\fBRAND_priv_bytes()\fP له نفس الدلالات كـ \fBRAND_bytes()\fP. يُقصد به استخدامه لتوليد قيم يجب أن تبقى خاصة. إذا تم استخدام RAND_METHOD المبدئي، تستخدم هذه الدالة مثيل PRNG "خاص" منفصل بحيث لا يؤثر اختراق مثيل PRNG "العام" على سرية هذه القيم الخاصة، كما هو موصوف في \fBRAND\fP\|(7) و \fBEVP_RAND\fP\|(7). .PP \&\fBRAND_bytes_ex()\fP و \fBRAND_priv_bytes_ex()\fP هما نفس \fBRAND_bytes()\fP و \&\fBRAND_priv_bytes()\fP باستثناء أنهما يأخذان معاملين إضافيين \fIstrength\fP و \&\fIctx\fP. البايتات المُولّدة سيكون لها قوة أمان لا تقل عن \fIstrength\fP بت. DRBG المستخدمة للعملية هي DRBG العامة أو الخاصة المرتبطة بـ \fIctx\fP المحدد. يمكن أن يكون المعامل NULL، وفي هذه الحالة يُستخدم سياق المكتبة المبدئي (انظر \fBOSSL_LIB_CTX\fP\|(3). إذا تم تغيير RAND_METHOD المبدئي، فسيتم استخدام RAND_METHOD بالأولوية لأسباب التوافق وسيتم تجاهل DRBG لسياق المكتبة. .PP \&\fBRAND_set1_random_provider()\fP يُحدد مزودًا، \fIprov\fP، سيُستخدم بواسطة سياق المكتبة \fIctx\fP لجميع استدعاءات التوليد أعلاه بدلاً من DRBGs المدمجة ومصدر الإنتروبيا. مرر NULL للمزود لتعطيل وظيفة المزود العشوائي. في هذه الحالة، ستُستخدم DRBGs المدمجة ومصدر الإنتروبيا. لا ينبغي اعتبار هذا الاستدعاء آمنًا للخيوط. .SH ملاحظات .IX Header ملاحظات مبدئيًا، يدعم OpenSSL CSPRNG مستوى أمان 256 بت، بشرط أن يكون قادرًا على بذر نفسه من مصدر إنتروبيا موثوق. على جميع المنصات الرئيسية المدعومة من OpenSSL (بما في ذلك المنصات الشبيهة بـ Unix و Windows)، تم تكوين OpenSSL لبذر CSPRNG آلي عند أول استخدام باستخدام مولّد عشوائي لنظام التشغيل. .PP إذا فشل مصدر الإنتروبيا أو لم يكن متاحًا، سيدخل CSPRNG في حالة خطأ ويرفض توليد بايتات عشوائية. لهذا السبب، من المهم دائمًا التحقق من قيمة إرجاع الخطأ لـ \fBRAND_bytes()\fP و \fBRAND_priv_bytes()\fP وعدم اعتبار العشوائية أمرًا مسلمًا به. .PP على المنصات الأخرى، قد لا يكون هناك مصدر إنتروبيا موثوق متاح أو قد تم تكوين OpenSSL صراحة لاستخدام مصادر إنتروبيا مختلفة. إذا كنت في شك حول جودة مصدر الإنتروبيا، لا تتردد في سؤال بائع نظام التشغيل الخاص بك أو نشر سؤال على GitHub أو القائمة البريدية لمستخدمي openssl. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBRAND_bytes()\fP و \fBRAND_priv_bytes()\fP يُرجعان 1 عند النجاح، \-1 إذا لم تكن مدعومة بواسطة طريقة RAND الحالية، أو 0 عند فشل آخر. يمكن الحصول على رمز الخطأ بواسطة \fBERR_get_error\fP\|(3). .PP \&\fBRAND_set1_random_provider()\fP يُرجع 1 عند النجاح و 0 عند الفشل. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBRAND_add\fP\|(3), \&\fBRAND_bytes\fP\|(3), \&\fBRAND_priv_bytes\fP\|(3), \&\fBERR_get_error\fP\|(3), \&\fBRAND\fP\|(7), \&\fBEVP_RAND\fP\|(7) .SH التاريخ .IX Header التاريخ .IP \(bu 2 \&\fBRAND_pseudo_bytes()\fP أُهملت في OpenSSL 1.1.0؛ استخدم \fBRAND_bytes()\fP بدلاً من ذلك. .IP \(bu 2 الدالة \fBRAND_priv_bytes()\fP أُضيفت في OpenSSL 1.1.1. .IP \(bu 2 الدالتان \fBRAND_bytes_ex()\fP و \fBRAND_priv_bytes_ex()\fP أُضيفتا في OpenSSL 3.0 .IP \(bu 2 الدالة \fBRAND_set1_random_provider()\fP أُضيفت في OpenSSL 3.5 .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-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 .