BIO(7ssl)

الاسم
bio - تجريد أساسي للإدخال/الإخراج

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

الوصف
BIO هو تجريد للإدخال/الإخراج، يخفي العديد من تفاصيل الإدخال/الإخراج الأساسية عن التطبيق. إذا استخدم التطبيق BIO لإدخاله/إخراجه، فيمكنه التعامل بشفافية مع اتصالات SSL، واتصالات الشبكة غير المشفرة، وإدخال/إخراج الملفات.

يوجد نوعان من BIO: BIO مصدر/مصرف وBIO مرشح.

كما يوحي اسمه، BIO مصدر/مصرف هو مصدر و/أو مصرف للبيانات، وتشمل الأمثلة BIO مقبس وBIO ملف.

BIO مرشح يأخذ البيانات من BIO واحد ويمررها إلى آخر، أو إلى التطبيق. قد تُترك البيانات دون تعديل (مثل BIO ملخص الرسالة) أو تُترجم (مثل BIO تشفير). قد يتغير تأثير BIO المرشح وفقًا لعملية الإدخال/الإخراج التي يؤديها: على سبيل المثال، BIO تشفير سيشفر البيانات إذا كانت تُكتب إليه ويفك تشفيرها إذا كانت تُقرأ منه.

يمكن ربط BIOs معًا لتشكيل سلسلة (BIO واحد هو سلسلة بمكون واحد). تتكون السلسلة عادةً من BIO مصدر/مصرف واحد وواحد أو أكثر من BIOs مرشحة. البيانات المقروءة من أو المكتوبة إلى أول BIO تعبر السلسلة إلى النهاية (عادةً BIO مصدر/مصرف).

بعض BIOs (مثل BIOs الذاكرة) يمكن استخدامها فورًا بعد استدعاء BIO_new(). البعض الآخر (مثل BIOs الملف) يحتاج إلى تهيئة إضافية، وغالبًا ما توجد دالة مساعدة لإنشاء وتهيئة هذه BIOs.

إذا استدعي BIO_free() على سلسلة BIO، فسيحرر BIO واحدا فقط مما يؤدي إلى تسرب في الذاكرة.

استدعاء BIO_free_all() على BIO واحد له نفس تأثير استدعاء BIO_free() عليه باستثناء القيمة المرجعة المهملة.

عادةً ما تُزود وسيطة type بواسطة دالة تُرجع مؤشرًا إلى BIO_METHOD. هناك اصطلاح تسمية لهذه الدوال: BIO مصدر/مصرف يبدأ عادةً بـ BIO_s_ وBIO مرشح بـ BIO_f_.

  فتح TCP السريع
فتح TCP السريع (RFC7413)، المختصر "TFO"، مدعوم بواسطة واجهة BIO منذ OpenSSL 3.2. TFO مدعوم في أنظمة التشغيل التالية:

•   نواة لينكس 3.13 والإصدارات الأحدث، حيث TFO مفعل آليًا.

•   نواة لينكس 4.11 والإصدارات الأحدث، باستخدام TCP_FASTOPEN_CONNECT.

•   FreeBSD 10.3 إلى 11.4، يدعم TFO للخادم فقط.

•   FreeBSD 12.0 والإصدارات الأحدث، يدعم TFO لكل من العميل والخادم.

•   macOS 10.14 والإصدارات الأحدث.

كل نظام تشغيل لديه API مختلف قليلاً لـ TFO. يُرجى الرجوع إلى وثائق API لأنظمة التشغيل عند استخدام المقابس مباشرة.

أمثلة
أنشئ ذاكرة BIO:

 BIO *mem = BIO_new(BIO_s_mem());

انظر أيضًا
BIO_ctrl(3), BIO_f_base64(3), BIO_f_buffer(3), BIO_f_cipher(3), BIO_f_md(3), BIO_f_null(3), BIO_f_ssl(3), BIO_f_readbuffer(3), BIO_find_type(3), BIO_get_conn_mode(3), BIO_new(3), BIO_new_bio_pair(3), BIO_push(3), BIO_read_ex(3), BIO_s_accept(3), BIO_s_bio(3), BIO_s_connect(3), BIO_s_fd(3), BIO_s_file(3), BIO_s_mem(3), BIO_s_null(3), BIO_s_socket(3), BIO_set_callback(3), BIO_set_conn_mode(3), BIO_set_tfo(3), BIO_set_tfo_accept(3), BIO_should_retry(3)

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