DH_GENERATE_PARAMETERS(3ssl)

الاسم
DH_generate_parameters_ex, DH_generate_parameters, DH_check, DH_check_params, DH_check_ex, DH_check_params_ex, DH_check_pub_key_ex - توليد وفحص معاملات ديفي-هيلمان

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

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

 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, BN_GENCB *cb);

 int DH_check(DH *dh, int *codes);
 int DH_check_params(DH *dh, int *codes);

 int DH_check_ex(const DH *dh);
 int DH_check_params_ex(const DH *dh);
 int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key);

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

 DH *DH_generate_parameters(int prime_len, int generator,
                            void (*callback)(int, int, void *), void *cb_arg);

الوصف
جميع الدوال الموصوفة في هذه الصفحة مهملة. يجب على التطبيقات بدلاً من ذلك استخدام EVP_PKEY_check(3)، EVP_PKEY_public_check(3)، EVP_PKEY_private_check(3) وEVP_PKEY_param_check(3).

DH_generate_parameters_ex() يولد معاملات ديفي-هيلمان التي يمكن مشاركتها بين مجموعة من المستخدمين، ويخزنها في بنية DH المقدمة. يجب بذر مولد الأعداد العشوائية الزائفة قبل استدعائه. لا ينبغي استخدام المعاملات المولدة بواسطة DH_generate_parameters_ex() في مخططات التوقيع.

prime_len هو الطول بالبتات للعدد الأولي الآمن المراد توليده. generator هو عدد صغير > 1، عادةً 2 أو 5.

يمكن استخدام دالة رد اتصال لتقديم تغذية راجعة حول تقدم توليد المفتاح. إذا كان cb ليس NULL، فسيتم استدعاؤها كما هو موصوف في BN_generate_prime(3) أثناء توليد عدد أولي عشوائي، وعند العثور على عدد أولي، يتم استدعاء BN_GENCB_call(cb, 3, 0). انظر BN_generate_prime_ex(3) للحصول على معلومات حول دالة BN_GENCB_call().

DH_generate_parameters() مشابه لـ DH_generate_prime_ex() لكنه يتوقع دالة رد اتصال على الطراز القديم؛ انظر BN_generate_prime(3) للحصول على معلومات حول رد الاتصال على الطراز القديم.

DH_check_params() يؤكد أن p وg من المحتمل أن يكونا صالحين بدرجة كافية. هذا فحص خفيف، إذا كان هناك حاجة لفحص أكثر شمولاً، استخدم DH_check(). يتم تحديث قيمة *codes بأي مشاكل تم العثور عليها. إذا كانت *codes صفراً فلم يتم العثور على مشاكل، وإلا فقد يتم تعيين البتات التالية:

DH_CHECK_P_NOT_PRIME
    تم تحديد أن المعامل p ليس عدداً أولياً فردياً. لاحظ أن عدم وجود هذه البتة لا يضمن أن p هو عدد أولي.

DH_NOT_SUITABLE_GENERATOR
    المولد g غير مناسب. لاحظ أن عدم وجود هذه البتة لا يضمن أن g مناسب، ما لم يكن p معروفاً بأنه عدد أولي قوي.

DH_MODULUS_TOO_SMALL
    المعامل صغير جداً.

DH_MODULUS_TOO_LARGE
    المعامل كبير جداً.

DH_check() يؤكد أن معاملات ديفي-هيلمان dh صالحة. يتم تحديث قيمة *codes بأي مشاكل تم العثور عليها. إذا كانت *codes صفراً فلم يتم العثور على مشاكل، وإلا فقد يتم تعيين البتات التالية:

DH_CHECK_P_NOT_PRIME
    المعامل p ليس أوليًا.

DH_CHECK_P_NOT_SAFE_PRIME
    المعامل p ليس أوليًا آمنًا ولا توجد قيمة q.

DH_UNABLE_TO_CHECK_GENERATOR
    لا يمكن فحص المولد g لملاءمته.

DH_NOT_SUITABLE_GENERATOR
    المولد g غير ملائم.

DH_CHECK_Q_NOT_PRIME
    المعامل q ليس أوليًا.

DH_CHECK_INVALID_Q_VALUE
    المعامل q غير صالح.

DH_CHECK_INVALID_J_VALUE
    المعامل j غير صالح.

إذا أُعيد 0 أو ضُبط *codes على قيمة غير صفرية، فلا ينبغي استخدام المعاملات المقدمة لعمليات ديفي-هيلمان وإلا فلن تُضمن خصائص أمان تبادل المفاتيح.

الدوال DH_check_ex() و DH_check_params() و DH_check_pub_key_ex() مماثلة للدوال DH_check() و DH_check_params() على التوالي، لكن تُضاف أسباب الخطأ إلى طابور أخطاء السلسلة بدلاً من توفيرها كقيم إرجاع من الدالة.

القيم المُرجعة
الدوال DH_generate_parameters_ex() و DH_check() و DH_check_params() تُعيد 1 إذا أمكن إجراء الفحص، و0 بخلاف ذلك.

الدالة DH_generate_parameters() تُعيد مؤشرًا إلى بنية DH أو NULL إذا فشل توليد المعاملات.

الدوال DH_check_ex() و DH_check_params() و DH_check_pub_key_ex() تُعيد 1 إذا نجح الفحص، و0 للفشل.

يمكن الحصول على رموز الخطأ بواسطة ERR_get_error(3).

انظر أيضًا
DH_new(3)، ERR_get_error(3)، RAND_bytes(3)، DH_free(3)

التاريخ
كل هذه الدوال أصبحت مهجورة في OpenSSL 3.0.

الدالة DH_generate_parameters() أُهملت في OpenSSL 0.9.8؛ استخدم DH_generate_parameters_ex() بدلاً منها.

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