BIO_F_CIPHER(3SSL)

الاسم
BIO_f_cipher, BIO_set_cipher, BIO_get_cipher_status, BIO_get_cipher_ctx - مرشح BIO للتعمية

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

 const BIO_METHOD *BIO_f_cipher(void);
 int BIO_set_cipher(BIO *b, const EVP_CIPHER *cipher,
                    const unsigned char *key, const unsigned char *iv, int enc);
 int BIO_get_cipher_status(BIO *b);
 int BIO_get_cipher_ctx(BIO *b, EVP_CIPHER_CTX **pctx);

الوصف
BIO_f_cipher() تُرجع طريقة BIO للتعمية. هذه BIO مرشح يُعمي أي بيانات تُكتب من خلالها، وتفك تعمية أي بيانات تُقرأ منها. هي غلاف BIO لدوال التعمية EVP_CipherInit(), EVP_CipherUpdate() و EVP_CipherFinal().

BIOs التعمية لا تدعم BIO_gets() أو BIO_puts().

BIO_flush() على BIO تعمية تُكتب من خلالها يُستخدم للإشارة إلى عدم وجود بيانات أخرى سيتم تعميتها: يُستخدم هذا لتفريغ وربما حشو الكتلة الأخيرة عبر BIO.

BIO_set_cipher() يضبط تعمية BIO b إلى cipher باستخدام المفتاح key و IV iv. يجب ضبط enc على 1 للتعمية وصفر لفك التعمية.

عند القراءة من BIO تعمية، تُفك تعمية الكتلة الأخيرة آلي وتُفحص عند اكتشاف EOF. BIO_get_cipher_status() هي ماكرو BIO_ctrl() يمكن استدعاؤها لتحديد ما إذا كانت عملية فك التعمية ناجحة.

BIO_get_cipher_ctx() هي ماكرو BIO_ctrl() تسترجع سياق تعمية BIO الداخلي. يمكن استخدام السياق المسترجع مع دوال التعمية القياسية لإعداده. هذا مفيد عندما لا يكون BIO_set_cipher() مرنًا بما يكفي لاحتياجات التطبيقات.

ملاحظات
عند التعمية، BIO_flush() يجب استدعاؤها لتفريغ الكتلة الأخيرة عبر BIO. إذا لم يُفعل ذلك، فستفشل الكتلة الأخيرة في فك تعمية لاحق.

عند فك التعمية، يُشار إلى خطأ في الكتلة الأخيرة بقيمة إرجاع صفر من عملية القراءة. فك تعمية ناجح يتبعه EOF سيعيد أيضًا صفرًا للقراءة الأخيرة. يجب استدعاء BIO_get_cipher_status() لتحديد ما إذا كان فك التعمية ناجحًا.

كالعادة، إذا كان دعم BIO_gets() أو BIO_puts() مطلوبًا، فيمكن تحقيقه بوضع BIO تخزين مؤقت قبل BIO التعمية.

القيم المُرجعة
BIO_f_cipher() تُرجع طريقة BIO للتعمية.

BIO_set_cipher() تُرجع 1 للنجاح و0 للفشل.

BIO_get_cipher_status() تُرجع 1 لفك تعمية ناجح و<=0 للفشل.

BIO_get_cipher_ctx() تُرجع 1 للنجاح و<=0 للفشل.

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