RAND_LOAD_FILE(3SSL)

الاسم
RAND_load_file, RAND_write_file, RAND_file_name - ملف بذرة PRNG

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

 int RAND_load_file(const char *filename, long max_bytes);

 int RAND_write_file(const char *filename);

 const char *RAND_file_name(char *buf, size_t num);

الوصف
RAND_load_file() يقرأ عددًا من البايتات من الملف filename ويُضيفها إلى PRNG. إذا كان max_bytes غير سالب، فتُقرأ حتى max_bytes بايت؛ إذا كان max_bytes يساوي -1، فُيقرأ الملف بالكامل (إلا إذا لم يكن الملف ملفًا عاديًا، ففي هذه الحالة تُحاول قراءة عدد ثابت من البايتات، 256 في التنفيذ الحالي). يمكن لـ RAND_load_file() قراءة أقل من الملف الكامل أو العدد المطلوب من البايتات إذا لم يتسع في نوع قيمة الإرجاع. لا تُحمّل نفس الملف عدة مرات إلا إذا تم تحديث محتوياته بواسطة RAND_write_file() بين القراءات. أيضًا، لاحظ أن filename يجب أن يكون محميًا بشكل كافٍ بحيث لا يستطيع المهاجم استبدال المحتويات أو فحصها. إذا لم يكن filename ملفًا عاديًا، فُيعتبر المستخدم مسؤولًا عن أي آثار جانبية، مثل الحظر غير المتوقع أو الاستيلاء على الطرفية المسيطرة.

RAND_write_file() يكتب عددًا من البايتات العشوائية (حاليًا 128) إلى الملف filename والتي يمكن استخدامها لتهيئة PRNG عن طريق استدعاء RAND_load_file() في جلسة لاحقة.

RAND_file_name() يُنشئ مسارًا مبدئيًا لملف البذرة العشوائية. يُشير buf إلى مخزن مؤقت بحجم num لتخزين اسم الملف فيه.

على جميع الأنظمة، إذا كان المتغير البيئي RANDFILE مُعيَّنًا، فُستُستخدم قيمته كاسم ملف البذرة. وإلا، فُيسمى الملف ".rnd"، ويُوجد في مواقع تعتمد على المنصة:

على ويندوز (حسب الأفضلية)
     %HOME%, %USERPROFILE%, %SYSTEMROOT%, C:\

على VMS
     SYS$LOGIN:

على جميع الأنظمة الأخرى
     $HOME

إذا لم يكن $HOME (على نظام غير ويندوز وغير VMS) مُعيَّنًا أيضًا، أو كان num صغيرًا جدًا لاسم المسار، فُيحدث خطأ.

القيم المُرجعة
RAND_load_file() يُرجع عدد البايتات المقروءة أو -1 عند الخطأ.

RAND_write_file() يُرجع عدد البايتات المكتوبة، أو -1 إذا كانت البايتات المكتوبة قد وُلدت بدون بذر مناسب.

RAND_file_name() يُرجع مؤشرًا إلى buf عند النجاح، وNULL عند الخطأ.

انظر أيضًا
RAND_add(3)، RAND_bytes(3)، RAND(7)

حقوق النسخ
حقوق النشر 2000-2025 لمؤلفي مشروع 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.