SSL_CTX_SET_DEFAULT_PASSWD_CB(3SSL)

الاسم
SSL_CTX_set_default_passwd_cb, SSL_CTX_set_default_passwd_cb_userdata, SSL_CTX_get_default_passwd_cb, SSL_CTX_get_default_passwd_cb_userdata, SSL_set_default_passwd_cb, SSL_set_default_passwd_cb_userdata, SSL_get_default_passwd_cb, SSL_get_default_passwd_cb_userdata - ضبط أو الحصول على دالة الاستدعاء لكلمة السر لمعالجة ملفات PEM المُعمّاة

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

 void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
 void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
 pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx);
 void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx);

 void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb);
 void SSL_set_default_passwd_cb_userdata(SSL *s, void *u);
 pem_password_cb *SSL_get_default_passwd_cb(SSL *s);
 void *SSL_get_default_passwd_cb_userdata(SSL *s);

الوصف
SSL_CTX_set_default_passwd_cb() يضبط دالة الاستدعاء المبدئية لكلمة السر التي تُستدعى عند تحميل/تخزين شهادة PEM مع التعمية.

SSL_CTX_set_default_passwd_cb_userdata() يضبط مؤشرًا إلى بيانات المستخدم، u، التي تُقدم لدالة استدعاء كلمة السر عند الاستدعاء.

SSL_CTX_get_default_passwd_cb() يُرجع مؤشر دالة إلى دالة استدعاء كلمة السر المضبوطة حاليًا في ctx. إذا لم تُضبط أي دالة استدعاء صراحةً، يُرجع المؤشر NULL.

SSL_CTX_get_default_passwd_cb_userdata() يُرجع مؤشرًا إلى بيانات المستخدم المضبوطة حاليًا في ctx. إذا لم تُضبط أي بيانات مستخدم صراحةً، يُرجع المؤشر NULL.

SSL_set_default_passwd_cb(), SSL_set_default_passwd_cb_userdata(), SSL_get_default_passwd_cb() و SSL_get_default_passwd_cb_userdata() تؤدي نفس وظيفة نظيراتها في SSL_CTX، لكن باستخدام كائن SSL.

دالة استدعاء كلمة السر، التي يجب أن يوفرها التطبيق، تُعيد كلمة السر التي ستُستخدم أثناء فك التعمية. عند الاستدعاء، يُقدم مؤشر إلى بيانات المستخدم. يجب على الدالة تخزين كلمة السر في المخزن المؤقت المقدم buf بحجم size. يجب إرجاع الطول الفعلي لكلمة السر إلى الدالة المستدعية. يُشير rwflag إلى ما إذا كانت دالة الاستدعاء تُستخدم للقراءة/فك التعمية (rwflag=0) أو الكتابة/التعمية (rwflag=1). لمزيد من التفاصيل، انظر pem_password_cb(3).

ملاحظات
عند تحميل أو تخزين المفاتيح الخاصة، قد تُقدم كلمة سر لحماية المفتاح الخاص. قد تعتمد طريقة تقديم كلمة السر هذه على التطبيق. إذا تم التعامل مع مفتاح خاص واحد فقط، قد يكون من العملي جعل دالة الاستدعاء تتعامل مع حوار كلمة السر تفاعليًا. إذا كان يجب التعامل مع عدة مفاتيح، قد يكون من العملي طلب كلمة السر مرة واحدة، ثم الاحتفاظ بها في الذاكرة واستخدامها عدة مرات. في الحالة الأخيرة، يمكن تخزين كلمة السر في مخزن بيانات المستخدم وتُعيد دالة الاستدعاء فقط كلمة السر المخزنة بالفعل.

عند طلب كلمة السر تفاعليًا، يمكن لدالة الاستدعاء استخدام rwflag للتحقق مما إذا كان يجب تعمية عنصر (rwflag=1). في هذه الحالة، قد يطلب حوار كلمة السر نفس كلمة السر مرتين للمقارنة من أجل اكتشاف الأخطاء المطبعية التي قد تجعل فك التعمية مستحيلًا.

يمكن أيضًا تعمية عناصر أخرى في تنسيق PEM (الشهادات)، لكن هذا ليس معتادًا، حيث تُعتبر معلومات الشهادة عامة.

القيم المُرجعة
لا توفر هذه الدوال معلومات تشخيصية.

أمثلة
المثال التالي يُرجع كلمة السر المقدمة كبيانات مستخدم إلى الدالة المستدعية. تُعتبر كلمة السر سلسلة محارف منتهية بـ '\0'. إذا لم تتناسب كلمة السر مع المخزن المؤقت، فتُقتطع كلمة السر.

 int my_cb(char *buf, int size, int rwflag, void *u)
 {
     strncpy(buf, (char *)u, size);
     buf[size - 1] = '\0';
     return strlen(buf);
 }

انظر أيضًا
ssl(7), SSL_CTX_use_certificate(3)

التاريخ
SSL_CTX_get_default_passwd_cb(), SSL_CTX_get_default_passwd_cb_userdata(), SSL_set_default_passwd_cb() و SSL_set_default_passwd_cb_userdata() أُضيفت في OpenSSL 1.1.0.

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