RAND_ADD(3SSL)

الاسم
RAND_add, RAND_poll, RAND_seed, RAND_status, RAND_event, RAND_screen, RAND_keep_random_devices_open - إضافة العشوائية إلى PRNG أو الحصول على حالته

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

 int RAND_status(void);
 int RAND_poll();

 void RAND_add(const void *buf, int num, double randomness);
 void RAND_seed(const void *buf, int num);

 void RAND_keep_random_devices_open(int keep);

الدوال التالية أصبحت مهجورة منذ OpenSSL 1.1.0، ويمكن إخفاؤها تمامًا عبر تعريف OPENSSL_API_COMPAT بقيمة إصدار مناسبة، انظر openssl_user_macros(7):

 int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam);
 void RAND_screen(void);

الوصف
يمكن استخدام هذه الدوال لبذر المولد العشوائي والتحقق من حالته المبذورة. بشكل عام، إعادة البذر اليدوي لمولد OpenSSL العشوائي المبدئي (RAND_OpenSSL(3)) ليس ضروريًا (لكنه مسموح)، لأنه يبذر نفسه آليًا باستخدام مصادر إنتروبيا النظام الموثوقة. ينطبق هذا ما لم يُستبدل RAND_METHOD المبدئي أو بُني OpenSSL مع تعطيل إعادة البذر الآلي، انظر RAND(7) لمزيد من التفاصيل.

RAND_status() يُشير إلى ما إذا كان المولد العشوائي قد بُذر بشكل كافٍ أم لا. إذا لم يكن كذلك، فستفشل دوال مثل RAND_bytes(3).

RAND_poll() تستخدم قدرات النظام لزرع المولّد العشوائي باستخدام مدخلات عشوائية تم الحصول عليها من استقصاء مصادر إنتروبيا موثوقة متنوعة. يمكن تعديل الاختيار المبدئي لمصدر الإنتروبيا وقت البناء، انظر RAND(7) لمزيد من التفاصيل.

RAND_add() يخلط البايتات num عند buf في الحالة الداخلية للمولد العشوائي. لن تكون هذه الدالة ضرورية عادةً، كما ذُكر أعلاه. المعامل randomness هو تقدير لكمية العشوائية الموجودة في buf، بالبايتات، ويجب أن يكون رقمًا بين الصفر و num. يمكن العثور على تفاصيل حول مصادر العشوائية وكيفية تقدير عشوائيتها في الأدبيات؛ على سبيل المثال [NIST SP 800-90B]. لا يمكن استرداد محتوى buf من مخرجات المولد العشوائي اللاحقة. يجب على التطبيقات التي تنوي حفظ واستعادة الحالة العشوائية في ملف خارجي أن تفكر في استخدام RAND_load_file(3) بدلاً من ذلك.

ملاحظة: في وضع FIPS، لا تُعتبر البيانات العشوائية المقدمة من التطبيق مصدر إنتروبيا موثوقًا. تُخلط في الحالة الداخلية لـ RNG كبيانات إضافية فقط ولا تُحتسب كإعادة بذر كاملة. لمزيد من التفاصيل، انظر EVP_RAND(7).

RAND_seed() مكافئ لـ RAND_add() مع تعيين randomness إلى num.

RAND_keep_random_devices_open() يُستخدم للتحكم في استخدام واصفات الملفات بواسطة مصادر بذر العشوائية. تحتفظ بعض مصادر البذر بواصفات ملفات مفتوحة مبدئيًا، مما يسمح لهذه المصادر بالعمل في سجن chroot(2) دون توفر عُقد الأجهزة المرتبطة. عندما تكون وسيطة keep صفرًا، يُعطل هذا الاستدعاء الاحتفاظ بواصفات الملفات. على العكس، تُفعّل وسيطة غير صفرية الاحتفاظ بواصفات الملفات. تُستدعى هذه الدالة عادةً أثناء التهيئة وتصبح سارية المفعول فورًا. تنطبق هذه الإمكانية فقط على المزود المبدئي.

RAND_event() و RAND_screen() مكافئان لـ RAND_poll() ويوجدان لأسباب توافق فقط. انظر قسم التاريخ أدناه.

القيم المُرجعة
RAND_status() يُرجع 1 إذا بُذر المولد العشوائي ببيانات كافية، 0 بخلاف ذلك.

RAND_poll() يُرجع 1 إذا أنشأ بيانات بذر، 0 بخلاف ذلك.

RAND_event() يُرجع RAND_status().

الدوال الأخرى لا تُرجع قيمًا.

انظر أيضًا
RAND_bytes(3), RAND_egd(3), RAND_load_file(3), RAND(7) EVP_RAND(7)

التاريخ
RAND_event() و RAND_screen() أُهملت في OpenSSL 1.1.0 ولا ينبغي استخدامها.

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