Scroll to navigation

RSA_CHECK_KEY(3SSL) OpenSSL RSA_CHECK_KEY(3SSL)

الاسم

RSA_check_key_ex, RSA_check_key - التحقق من صحة مفاتيح RSA الخاصة

موجز

 #include <openssl/rsa.h>

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

 int RSA_check_key_ex(const RSA *rsa, BN_GENCB *cb);
 int RSA_check_key(const RSA *rsa);

الوصف

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

تتحقق الدالة RSA_check_key_ex() من صحة مفاتيح RSA. تفحص أن p و q أوليان بالفعل، وأن n = p*q.

لا تعمل على مفاتيح RSA العامة التي تحتوي فقط على عناصر المعامل والأس العام. تفحص أيضًا أن d*e = 1 mod (p-1*q-1)، وأن dmp1 و dmq1 و iqmp مضبوطة بشكل صحيح أو أنها NULL. تؤدي فحوصات سلامة على جميع مواد مفتاح RSA، لذا يجب أن يحتوي هيكل مفتاح RSA على جميع بيانات المفتاح الخاص أيضًا. لذلك، لا يمكن استخدامها مع أي كائن مفتاح RSA عشوائي، حتى لو كان مناسبًا لعملية RSA العادية.

المعامل cb هو استدعاء رجعي يُستدعى بنفس طريقة BN_is_prime_ex(3).

RSA_check_key() مكافئة لـ RSA_check_key_ex() مع cb قيمته NULL.

القيم المُرجعة

تُرجع RSA_check_key_ex() و RSA_check_key() القيمة 1 إذا كان rsa مفتاح RSA صالحًا، و0 بخلاف ذلك. تُرجعان -1 إذا حدث خطأ أثناء فحص المفتاح.

إذا كان المفتاح غير صالح أو حدث خطأ، يمكن الحصول على رمز السبب باستخدام ERR_get_error(3).

ملاحظات

على عكس معظم دوال RSA الأخرى، لا تعمل هذه الدالة بشكل شفاف مع أي تطبيق ENGINE أساسي لأنها تستخدم بيانات المفتاح في هيكل RSA مباشرة. يمكن لتطبيق ENGINE تجاوز طريقة تخزين بيانات المفتاح ومعالجتها، ويمكنه حتى توفير دعم لمفاتيح HSM - وفي هذه الحالة قد لا يحتوي هيكل RSA على أي بيانات مفتاح على الإطلاق! إذا كان ENGINE المعني يُستخدم فقط لأغراض التسريع أو التحليل، فمن المرجح أن بيانات مفتاح RSA كاملة وغير معدلة، لكن لا يمكن افتراض ذلك في الحالة العامة.

العلل

قد يلزم النظر في طريقة للتحقق من مفتاح RSA باستخدام دوال RSA API غير شفافة. حاليًا، تستخدم RSA_check_key() عناصر هيكل RSA مباشرة، متجاوزة جدول RSA_METHOD بالكامل (وتنتهك التغليف والتوجيه الكائني تمامًا في هذه العملية). ربما يكون أفضل إصلاح هو إضافة معالج "check_key()" إلى جدول دوال RSA_METHOD بحيث يمكن للتطبيقات البديلة أيضًا توفير أدوات التحقق الخاصة بها.

انظر أيضًا

BN_is_prime_ex(3)، ERR_get_error(3)

التاريخ

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

ظهرت RSA_check_key_ex() بعد OpenSSL 1.0.2.

حقوق النسخ

حقوق النشر 2000-2020 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

7 أبريل 2026 3.6.2