DSA_GENERATE_PARAMETERS(3SSL)

الاسم
DSA_generate_parameters_ex, DSA_generate_parameters - توليد مُعاملات DSA

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

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

 int DSA_generate_parameters_ex(DSA *dsa, int bits,
                                const unsigned char *seed, int seed_len,
                                int *counter_ret, unsigned long *h_ret,
                                BN_GENCB *cb);

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

 DSA *DSA_generate_parameters(int bits, unsigned char *seed, int seed_len,
                              int *counter_ret, unsigned long *h_ret,
                              void (*callback)(int, int, void *), void *cb_arg);

الوصف
جميع الدوال الموصوفة في هذه الصفحة مهملة. يجب على التطبيقات استخدام EVP_PKEY_paramgen_init(3) و EVP_PKEY_keygen(3) كما هو موصوف في EVP_PKEY-DSA(7).

DSA_generate_parameters_ex() يُولّد الأعداد الأولية p و q ومُولّد g للاستخدام في DSA ويُخزّن النتيجة في dsa.

bits هو طول العدد الأولي p الذي سيُولّد. للأطوال أقل من 2048 بت، طول q هو 160 بت؛ للأطوال أكبر من أو تساوي 2048 بت، يُضبط طول q إلى 256 بت.

إذا كان seed هو NULL، فسيُولّد الأعداد الأولية عشوائيًا. إذا كان seed_len أقل من طول q، يُعاد خطأ.

DSA_generate_parameters_ex() يضع عدد التكرارات في *counter_ret وعدادًا يُستخدم لإيجاد مُولّد في *h_ret، ما لم تكن هذه NULL.

قد تُستخدم دالة استدعاء لتقديم تغذية راجعة حول تقدم توليد المفتاح. إذا كان cb ليس NULL، فسيُستدعى كما هو موضح أدناه. للحصول على معلومات حول بنية BN_GENCB ودالة BN_GENCB_call التي نوقشت أدناه، راجع BN_generate_prime(3).

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

•   عندما يُولّد مرشح لـ q، يُستدعى BN_GENCB_call(cb, 0, m++) (m هو 0 للمرشح الأول).

•   عندما يجتاز مرشح لـ q اختبارًا بالقسمة التجريبية، يُستدعى BN_GENCB_call(cb, 1, -1). بينما يُختبر مرشح لـ q بواسطة اختبارات ميلر-رابين للأولية، يُستدعى BN_GENCB_call(cb, 1, i) في الحلقة الخارجية (مرة لكل شاهد يؤكد أن المرشح قد يكون أوليًا)؛ i هو عداد الحلقة (يبدأ من 0).

•   عندما يُوجد عدد أولي q، يُستدعى BN_GENCB_call(cb, 2, 0) و BN_GENCB_call(cb, 3, 0).

•   قبل أن يُولّد ويُختبر مرشح لـ p (غير الأول)، يُستدعى BN_GENCB_call(cb, 0, counter).

•   عندما يجتاز مرشح لـ p الاختبار بالقسمة التجريبية، يُستدعى BN_GENCB_call(cb, 1, -1). بينما يُختبر بواسطة اختبار ميلر-رابين للأولية، يُستدعى BN_GENCB_call(cb, 1, i) في الحلقة الخارجية (مرة لكل شاهد يؤكد أن المرشح قد يكون أوليًا). i هو عداد الحلقة (يبدأ من 0).

•   عندما يُوجد p، يُستدعى BN_GENCB_call(cb, 2, 1).

•   عندما يُوجد المُولّد، يُستدعى BN_GENCB_call(cb, 3, 1).

القيم المُرجعة
DSA_generate_parameters_ex() يُعيد 1 عند النجاح، أو 0 خلاف ذلك. يمكن الحصول على رموز الخطأ بواسطة ERR_get_error(3).

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

العلل
أطوال البذور الأكبر من 20 غير مدعومة.

انظر أيضًا
DSA_new(3), ERR_get_error(3), RAND_bytes(3), DSA_free(3), BN_generate_prime(3)

التاريخ
DSA_generate_parameters_ex() أُهمل في OpenSSL 3.0.

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

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