.\" -*- 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 "BN_RAND 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH BN_RAND 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 الاسم BN_rand_ex, BN_rand, BN_priv_rand_ex, BN_priv_rand, BN_pseudo_rand, BN_rand_range_ex, BN_rand_range, BN_priv_rand_range_ex, BN_priv_rand_range, BN_pseudo_rand_range \&\- توليد رقم شبه عشوائي .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int BN_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, \& unsigned int strength, BN_CTX *ctx); \& int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); \& \& int BN_priv_rand_ex(BIGNUM *rnd, int bits, int top, int bottom, \& unsigned int strength, BN_CTX *ctx); \& int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); \& \& int BN_rand_range_ex(BIGNUM *rnd, const BIGNUM *range, unsigned int strength, \& BN_CTX *ctx); \& int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); \& \& int BN_priv_rand_range_ex(BIGNUM *rnd, const BIGNUM *range, unsigned int strength, \& BN_CTX *ctx); \& int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); .Ve .PP الدوال التالية أصبحت مهجورة منذ OpenSSL 3.0، ويمكن إخفاؤها تماماً عن طريق تعريف \fBOPENSSL_API_COMPAT\fP بقيمة إصدار مناسبة، انظر \fBopenssl_user_macros\fP\|(7): .PP .Vb 2 \& int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); \& int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); .Ve .SH الوصف .IX Header الوصف \&\fBBN_rand_ex()\fP تُولّد رقمًا شبه عشوائي قويًا تعميةً بطول \fIbits\fP وقوة أمان لا تقل عن \fIstrength\fP بت باستخدام مولد الأرقام العشوائية لسياق المكتبة المرتبط بـ \&\fIctx\fP. تخزّن الدالة البيانات المُولّدة في \fIrnd\fP. قد تكون الوسيطة \fIctx\fP NULL، وفي هذه الحالة يُستخدم سياق المكتبة المبدئي. إذا كان \fIbits\fP أقل من صفر، أو صغيرًا جدًا لاستيعاب المتطلبات المُحدّدة بواسطة وسيطتي \fItop\fP و \fIbottom\fP، يُعاد خطأ. تُحدّد وسيطة \fItop\fP متطلبات على البت الأكثر أهمية للرقم المُولّد. إذا كانت \fBBN_RAND_TOP_ANY\fP، فلا يوجد قيد. إذا كانت \fBBN_RAND_TOP_ONE\fP، يجب أن يكون البت العلوي واحدًا. إذا كانت \fBBN_RAND_TOP_TWO\fP، سيُضبط البتان الأكثر أهمية للرقم على 1، بحيث يكون حاصل ضرب رقمين عشوائيين من هذا القبيل دائمًا بطول 2*\fIbits\fP. إذا كانت \fIbottom\fP هي \fBBN_RAND_BOTTOM_ODD\fP، سيكون الرقم فرديًا؛ إذا كانت \fBBN_RAND_BOTTOM_ANY\fP، يمكن أن يكون فرديًا أو زوجيًا. إذا كان \fIbits\fP هو 1، فلا يمكن أن تكون \fItop\fP أيضًا \fBBN_RAND_TOP_TWO\fP. .PP \&\fBBN_rand()\fP هي نفس \fBBN_rand_ex()\fP باستثناء أن سياق المكتبة المبدئي يُستخدم دائمًا. .PP \&\fBBN_rand_range_ex()\fP تُولّد رقمًا شبه عشوائي قويًا تعميةً \fIrnd\fP، بقوة أمان لا تقل عن \fIstrength\fP بت، في النطاق 0 <= \fIrnd\fP < \fIrange\fP باستخدام مولد الأرقام العشوائية لسياق المكتبة المرتبط بـ \fIctx\fP. قد تكون الوسيطة \fIctx\fP NULL، وفي هذه الحالة يُستخدم سياق المكتبة المبدئي. .PP \&\fBBN_rand_range()\fP هي نفس \fBBN_rand_range_ex()\fP باستثناء أن سياق المكتبة المبدئي يُستخدم دائمًا. .PP \&\fBBN_priv_rand_ex()\fP, \fBBN_priv_rand()\fP, \fBBN_priv_rand_rand_ex()\fP و \&\fBBN_priv_rand_range()\fP لها نفس الدلالات مثل \fBBN_rand_ex()\fP, \fBBN_rand()\fP, \&\fBBN_rand_range_ex()\fP و \fBBN_rand_range()\fP على التوالي. صُمّمت لاستخدامها في توليد قيم يجب أن تبقى خاصة، وتعكس نفس الفرق بين \fBRAND_bytes\fP\|(3) و \fBRAND_priv_bytes\fP\|(3). .SH ملاحظات .IX Header ملاحظات تحقق دائمًا من قيمة الخطأ المُعادة من هذه الدوال ولا تعتبر العشوائية أمرًا مفروغًا منه: يحدث خطأ إذا لم يُزرع CSPRNG بعشوائية كافية لضمان تسلسل بايت غير قابل للتنبؤ. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" تُعيد الدوال 1 عند النجاح، 0 عند الخطأ. يمكن الحصول على رموز الخطأ بواسطة \fBERR_get_error\fP\|(3). .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3), \&\fBRAND_add\fP\|(3), \&\fBRAND_bytes\fP\|(3), \&\fBRAND_priv_bytes\fP\|(3), \&\fBRAND\fP\|(7), \&\fBEVP_RAND\fP\|(7) .SH التاريخ .IX Header التاريخ .IP \(bu 2 بدءًا من إصدار OpenSSL 1.1.0، أصبحت \fBBN_pseudo_rand()\fP مطابقة لـ \fBBN_rand()\fP و \fBBN_pseudo_rand_range()\fP مطابقة لـ \&\fBBN_rand_range()\fP. أُهملت الدالتان \fBBN_pseudo_rand()\fP و \fBBN_pseudo_rand_range()\fP في OpenSSL 3.0. .IP \(bu 2 أُضيفت الدالتان \fBBN_priv_rand()\fP و \fBBN_priv_rand_range()\fP في OpenSSL 1.1.1. .IP \(bu 2 أُضيفت الدوال \fBBN_rand_ex()\fP, \fBBN_priv_rand_ex()\fP, \fBBN_rand_range_ex()\fP و \&\fBBN_priv_rand_range_ex()\fP في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2022 لمؤلفي مشروع 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 .