SSL_CIPHER_GET_NAME(3ssl)

الاسم
SSL_CIPHER_get_name, SSL_CIPHER_standard_name, OPENSSL_cipher_name, SSL_CIPHER_get_bits, SSL_CIPHER_get_version, SSL_CIPHER_description, SSL_CIPHER_get_cipher_nid, SSL_CIPHER_get_digest_nid, SSL_CIPHER_get_handshake_digest, SSL_CIPHER_get_kx_nid, SSL_CIPHER_get_auth_nid, SSL_CIPHER_is_aead, SSL_CIPHER_find, SSL_CIPHER_get_id, SSL_CIPHER_get_protocol_id - احصل على خصائص SSL_CIPHER

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

 const char *SSL_CIPHER_get_name(const SSL_CIPHER *cipher);
 const char *SSL_CIPHER_standard_name(const SSL_CIPHER *cipher);
 const char *OPENSSL_cipher_name(const char *stdname);
 int SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
 const char *SSL_CIPHER_get_version(const SSL_CIPHER *cipher);
 char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int size);
 int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c);
 int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c);
 const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c);
 int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c);
 int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c);
 int SSL_CIPHER_is_aead(const SSL_CIPHER *c);
 const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);
 uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c);
 uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c);

الوصف
SSL_CIPHER_get_name() تُرجع مؤشرًا لاسم cipher. إذا كان cipher فارغًا، تُرجع "(NONE)".

SSL_CIPHER_standard_name() تُرجع مؤشرًا للاسم المعياري RFC لـ cipher. إذا كان cipher فارغًا، تُرجع "(NONE)". إذا لم يكن لـ cipher اسم معياري، تُرجع NULL. إذا عُرّف cipher في كل من SSLv3 وTLS، تُرجع اسم TLS.

OPENSSL_cipher_name() تُرجع مؤشرًا لاسم OpenSSL لـ stdname. إذا كان stdname فارغًا، أو لم يكن لـ stdname اسم مقابل في OpenSSL، تُرجع "(NONE)". حيث يوجد كلاهما، يجب أن يكون stdname اسم TLS بدلاً من اسم SSLv3.

SSL_CIPHER_get_bits() تُرجع عدد البتات السرية المستخدمة لـ cipher. إذا كان cipher فارغًا، يُرجع 0.

SSL_CIPHER_get_version() تُرجع سلسلة محارف تشير إلى إصدار بروتوكول SSL/TLS الذي عرّف المُعمِّي أولاً. تُرجع "(NONE)" إذا كان cipher فارغًا.

SSL_CIPHER_get_cipher_nid() تُرجع NID المُعمِّي المقابل لـ c. إذا لم يكن هناك مُعمِّي (مثل مجموعات المُعمِّي بدون تعمية)، يُرجع NID_undef.

SSL_CIPHER_get_digest_nid() تُرجع NID الملخص المقابل لـ MAC المستخدم بواسطة c أثناء تعمية/فك تعمية السجل. إذا لم يكن هناك ملخص (مثل مجموعات المُعمِّي AEAD)، يُرجع NID_undef.

SSL_CIPHER_get_handshake_digest() تُرجع EVP_MD للملخص المستخدم أثناء مصافحة SSL/TLS عند استخدام SSL_CIPHER c. لاحظ أن هذا قد يختلف عن الملخص المستخدم لحساب MAC للسجلات المُعمّاة.

SSL_CIPHER_get_kx_nid() تُرجع NID تبادل المفاتيح المقابل للطريقة المستخدمة بواسطة c. إذا لم يكن هناك تبادل مفاتيح، يُرجع NID_undef. إذا أمكن استخدام أي خوارزمية تبادل مفاتيح مناسبة (كما في حالة مجموعات المُعمِّي TLS 1.3)، يُرجع NID_kx_any. أمثلة (غير شاملة):

 NID_kx_rsa
 NID_kx_ecdhe
 NID_kx_dhe
 NID_kx_psk

SSL_CIPHER_get_auth_nid() تُرجع NID الاستيثاق المقابل للطريقة المستخدمة بواسطة c. إذا لم يكن هناك استيثاق، يُرجع NID_undef. إذا أمكن استخدام أي خوارزمية استيثاق مناسبة (كما في حالة مجموعات المُعمِّي TLS 1.3)، يُرجع NID_auth_any. أمثلة (غير شاملة):

 NID_auth_rsa
 NID_auth_ecdsa
 NID_auth_psk

SSL_CIPHER_is_aead() تُرجع 1 إذا كان المُعمِّي c هو AEAD (مثل GCM أو ChaCha20/Poly1305)، و0 إذا لم يكن AEAD.

SSL_CIPHER_find() تُرجع بنية SSL_CIPHER تحتوي على معرف المُعمِّي المخزن في ptr. المعامل ptr هو مصفوفة من عنصرين من char، تخزن معرف المُعمِّي TLS ذو البايتين (كما خُصص بواسطة IANA) بترتيب بايتات الشبكة. يُسترد هذا المعامل عادةً من حزمة TLS باستخدام دوال مثل SSL_client_hello_get0_ciphers(3). تُرجع SSL_CIPHER_find() NULL إذا حدث خطأ أو لم يُعثر على المُعمِّي المشار إليه.

SSL_CIPHER_get_id() تُرجع المعرف الخاص بـ OpenSSL للمُعمِّي المُعطى c. هذا المعرف ليس هو نفسه المعرف الخاص بـ IANA.

SSL_CIPHER_get_protocol_id() تُرجع المعرف ذو البايتين المستخدم في بروتوكول TLS للمُعمِّي المُعطى c.

SSL_CIPHER_description() تُرجع وصفًا نصيًا للمُعمِّي المُستخدم في المخزن المؤقت buf بطول len المُقدم. إذا وُفر buf، فيجب أن يكون على الأقل 128 بايت. إذا كان buf فارغًا (NULL)، فسيُخصص باستخدام OPENSSL_malloc(). إذا كان المخزن المؤقت المُقدم صغيرًا جدًا، أو فشل التخصيص، يُرجع NULL.

تتكون السلسلة المحارف التي تُرجعها SSL_CIPHER_description() من عدة حقول مفصولة بمسافات بيضاء:

<اسم المُعمِّي>
    تمثيل نصي لاسم المُعمِّي.

<إصدار البروتوكول>
    أدنى إصدار بروتوكول تدعمه مجموعة المُعمِّيات، مثل TLSv1.2. لاحظ أن هذا ليس دائمًا نفس إصدار البروتوكول الذي عُرفت فيه مجموعة المُعمِّيات لأول مرة لأن بعض مجموعات المُعمِّيات متوافقة مع الإصدارات السابقة من البروتوكول.

Kx=<تبادل المفاتيح>
    طريقة تبادل المفاتيح مثل RSA، ECDHE، إلخ.

Au=<الاستيثاق>
    طريقة الاستيثاق مثل RSA، None، إلخ. None هو تمثيل المُعمِّيات المجهولة.

Enc=<طريقة التعمية المتناظرة>
    طريقة التعمية، مع عدد البتات السرية، مثل AESGCM(128).

Mac=<رمز استيثاق الرسالة>
    مُستخلص الرسالة، مثل SHA256.

بعض الأمثلة لمخرجات SSL_CIPHER_description():

 ECDHE-RSA-AES256-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
 RSA-PSK-AES256-CBC-SHA384 TLSv1.0 Kx=RSAPSK   Au=RSA  Enc=AES(256)  Mac=SHA384

القيم المُرجعة
SSL_CIPHER_get_name()، SSL_CIPHER_standard_name()، OPENSSL_cipher_name()، SSL_CIPHER_get_version() و SSL_CIPHER_description() تُرجع القيمة المقابلة في سلسلة محارف منتهية بـ NUL لمُعمِّي معين أو "(NONE)" إذا لم يُعثر على المُعمِّي.

SSL_CIPHER_get_bits() تُرجع عددًا صحيحًا موجبًا يمثل عدد البتات السرية أو 0 إذا حدث خطأ.

SSL_CIPHER_get_cipher_nid()، SSL_CIPHER_get_digest_nid()، SSL_CIPHER_get_kx_nid() و SSL_CIPHER_get_auth_nid() تُرجع قيمة NID أو NID_undef إذا حدث خطأ.

SSL_CIPHER_get_handshake_digest() تُرجع بنية EVP_MD صالحة أو NULL إذا حدث خطأ.

SSL_CIPHER_is_aead() تُرجع 1 إذا كان المُعمِّي من نوع AEAD أو 0 خلاف ذلك.

SSL_CIPHER_find() تُرجع بنية SSL_CIPHER صالحة أو NULL إذا حدث خطأ.

SSL_CIPHER_get_id() تُرجع عددًا صحيحًا من 4 بايتات يمثل المُعرِّف الخاص بـ OpenSSL.

SSL_CIPHER_get_protocol_id() تُرجع عددًا صحيحًا من 2 بايت يمثل المُعرِّف الخاص ببروتوكول TLS.

انظر أيضًا
ssl(7), SSL_get_current_cipher(3), SSL_get_ciphers(3), openssl-ciphers(1)

التاريخ
دالة SSL_CIPHER_get_version() حُدِّثت لإرجاع سلسلة البروتوكول الصحيحة دائمًا في OpenSSL 1.1.0.

دالة SSL_CIPHER_description() غُيِّرت لإرجاع NULL عند الخطأ، بدلاً من سلسلة ثابتة، في OpenSSL 1.1.0.

دالة SSL_CIPHER_get_handshake_digest() أُضيفت في OpenSSL 1.1.1.

كانت الدالة SSL_CIPHER_standard_name() متاحةً عالميًا في OpenSSL 1.1.1. قبل OpenSSL 1.1.1، كان التتبع (الوسيط enable-ssl-trace في Configure) مطلوبًا لتفعيل هذه الدالة.

دالة OPENSSL_cipher_name() أُضيفت في OpenSSL 1.1.1.

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