DH_GENERATE_KEY(3ssl)

الاسم
DH_generate_key, DH_compute_key, DH_compute_key_padded - تنفيذ تبادل المفاتيح وفقًا لـ Diffie-Hellman

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

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

 int DH_generate_key(DH *dh);

 int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);

 int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh);

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

DH_generate_key() ينفذ الخطوة الأولى من تبادل المفاتيح وفقًا لـ Diffie-Hellman بتوليد قيم DH خاصة وعامة. باستدعاء DH_compute_key() أو DH_compute_key_padded()، تُدمج هذه القيم مع القيمة العامة للطرف الآخر لحساب المفتاح المشترك.

DH_generate_key() يتوقع أن يحتوي dh على المعاملات المشتركة dh->p و dh->g. يُولّد قيمة DH خاصة عشوائية ما لم تكن dh->priv_key مضبوطة مسبقًا، ويحسب القيمة العامة المقابلة dh->pub_key، والتي يمكن نشرها بعد ذلك.

DH_compute_key() يحسب السر المشترك من قيمة DH الخاصة في dh والقيمة العامة للطرف الآخر في pub_key ويخزنه في key. يجب أن يشير key إلى DH_size(dh) بايت من الذاكرة. نمط الحشو هو RFC 5246 (8.1.2) الذي يزيل البايتات الصفرية البادئة. ليس ثابت الزمن بسبب إزالة البايتات الصفرية البادئة. يجب اعتبار القيمة المعادة عامة.

DH_compute_key_padded() مشابه لكنه يخزن عددًا ثابتًا من البايتات. نمط الحشو هو NIST SP 800-56A (C.1) الذي يحتفظ بالبايتات الصفرية البادئة. هو ثابت الزمن بسبب الاحتفاظ بالبايتات الصفرية البادئة. يجب اعتبار القيمة المعادة عامة.

القيم المُرجعة
DH_generate_key() يُرجع 1 عند النجاح، 0 خلاف ذلك.

DH_compute_key() يُرجع حجم السر المشترك عند النجاح، -1 عند الخطأ.

DH_compute_key_padded() يُرجع DH_size(dh) عند النجاح، -1 عند الخطأ.

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

انظر أيضًا
EVP_PKEY_derive(3), DH_new(3), ERR_get_error(3), RAND_bytes(3), DH_size(3)

التاريخ
DH_compute_key_padded() أُضيف في OpenSSL 1.0.2.

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

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