.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "RSA_PADDING_ADD_PKCS1_TYPE_1 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RSA_PADDING_ADD_PKCS1_TYPE_1 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1, RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2, RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP, RSA_padding_add_PKCS1_OAEP_mgf1, RSA_padding_check_PKCS1_OAEP_mgf1, RSA_padding_add_none, RSA_padding_check_none \- حشو التعمية غير المتناظر .SH موجز .IX Header موجز .Vb 1 \& #include .Ve .PP الدوال التالية أصبحت مهجورة منذ OpenSSL 3.0، ويمكن إخفاؤها تماماً عن طريق تعريف \fBOPENSSL_API_COMPAT\fP بقيمة إصدار مناسبة، انظر \fBopenssl_user_macros\fP\|(7): .PP .Vb 2 \& int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, \& const unsigned char *f, int fl); \& \& int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, \& const unsigned char *f, int fl, int rsa_len); \& \& int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, \& const unsigned char *f, int fl); \& \& int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, \& const unsigned char *f, int fl, int rsa_len); \& \& int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, \& const unsigned char *f, int fl, \& const unsigned char *p, int pl); \& \& int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, \& const unsigned char *f, int fl, int rsa_len, \& const unsigned char *p, int pl); \& \& int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, \& const unsigned char *f, int fl, \& const unsigned char *p, int pl, \& const EVP_MD *md, const EVP_MD *mgf1md); \& \& int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, \& const unsigned char *f, int fl, int rsa_len, \& const unsigned char *p, int pl, \& const EVP_MD *md, const EVP_MD *mgf1md); \& \& int RSA_padding_add_none(unsigned char *to, int tlen, \& const unsigned char *f, int fl); \& \& int RSA_padding_check_none(unsigned char *to, int tlen, \& const unsigned char *f, int fl, int rsa_len); .Ve .SH الوصف .IX Header الوصف جميع الدوال الموصوفة في هذه الصفحة مهملة. يجب على التطبيقات بدلاً من ذلك استخدام واجهات برمجة التطبيقات EVP PKEY. .PP تُستدعى دوال \fBRSA_padding_xxx_xxx()\fP من دوال تعمية RSA وفك التعمية والتوقيع والتحقق. عادةً لا ينبغي استدعاؤها من برامج التطبيقات. .PP ومع ذلك، يمكن استدعاؤها مباشرةً لتنفيذ الحشو لمعميات غير متماثلة أخرى. يمكن استخدام \fBRSA_padding_add_PKCS1_OAEP()\fP و \&\fBRSA_padding_check_PKCS1_OAEP()\fP في تطبيق مقترن بـ \fBRSA_NO_PADDING\fP لتنفيذ OAEP مع معامل ترميز. .PP \&ترمز \fBRSA_padding_add_xxx()\fP \fBfl\fP بايت من \fBf\fP لتناسب \&\fBtlen\fP بايت وتخزّن النتيجة في \fBto\fP. يحدث خطأ إذا لم يستوفِ \fBfl\fP متطلبات الحجم لطريقة الترميز. .PP طُبّقت طرق الترميز التالية: .IP PKCS1_type_1 4 .IX Item PKCS1_type_1 PKCS #1 v2.0 EMSA\-PKCS1\-v1_5 (نوع الكتلة PKCS #1 v1.5 1)؛ يُستخدم للتوقيعات .IP PKCS1_type_2 4 .IX Item PKCS1_type_2 PKCS #1 v2.0 EME\-PKCS1\-v1_5 (نوع الكتلة PKCS #1 v1.5 2) .IP PKCS1_OAEP 4 .IX Item PKCS1_OAEP PKCS #1 v2.0 EME\-OAEP .IP none 4 .IX Item none انسخ البيانات ببساطة .PP يجب بذر مولد الأعداد العشوائية قبل استدعاء \&\fBRSA_padding_add_xxx()\fP. إذا فشل البذر الآلي أو إعادة البذر لـ OpenSSL CSPRNG بسبب ظروف خارجية (انظر \fBRAND\fP\|(7))، ستفشل العملية. .PP \&تتحقق \fBRSA_padding_check_xxx()\fP من أن \fBfl\fP بايت في \fBf\fP تحتوي على ترميز صالح لمفتاح RSA بطول \fBrsa_len\fP بايت في طريقة الترميز المعنية وتخزّن البيانات المستردة على الأكثر \fBtlen\fP بايت (لـ \fBRSA_NO_PADDING\fP: بحجم \fBtlen\fP) في \fBto\fP. .PP لـ \fBRSA_padding_xxx_OAEP()\fP، يشير \fBp\fP إلى معامل الترميز بطول \fBpl\fP. يمكن أن يكون \fBp\fP \fBNULL\fP إذا كان \fBpl\fP يساوي 0. .PP بالنسبة لـ \fBRSA_padding_xxx_OAEP_mgf1()\fP، يشير \fBmd\fP إلى تجزئة md، إذا كان \fBmd\fP هو \fBNULL\fP فهذا يعني md=sha1، ويشير \fBmgf1md\fP إلى تجزئة mgf1، إذا كان \fBmgf1md\fP هو \fBNULL\fP فهذا يعني mgf1md=md. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" تُرجع دوال \fBRSA_padding_add_xxx()\fP القيمة 1 عند النجاح، و0 عند الخطأ. تُرجع دوال \fBRSA_padding_check_xxx()\fP طول البيانات المستعادة، و\-1 عند الخطأ. يمكن الحصول على رموز الخطأ باستدعاء \&\fBERR_get_error\fP\|(3). .SH تحذيرات .IX Header تحذيرات نتيجة \fBRSA_padding_check_PKCS1_type_2()\fP هي بالضبط المعلومات المستخدمة لشن هجوم وسيط حشو Bleichenbacher الكلاسيكي. هذا ضعف متأصل في تصميم حشو PKCS #1 v1.5. يُفضل استخدام حشو PKCS1_OAEP. إذا لم يكن ذلك ممكنًا، يجب فحص نتيجة \fBRSA_padding_check_PKCS1_type_2()\fP في وقت ثابت لمعرفة ما إذا كانت تطابق الطول المتوقع للنص العادي، بالإضافة إلى إجراء بعض فحوصات الاتساق الخاصة بالتطبيق على النص العادي في وقت ثابت. إذا تم رفض النص العادي، يجب إبقاء أي من الفحوصات تسبب في رفض التطبيق للرسالة سرًا. لا تقم بإزالة الحشو الصفري من بيانات RSA الأولية المفكوكة التي حُسبت بواسطة \fBRSA_private_decrypt()\fP مع \fBRSA_NO_PADDING\fP، لأن هذا سيخلق قناة جانبية زمنية صغيرة يمكن استخدامها لشن هجوم Bleichenbacher ضد أي وضع حشو بما في ذلك PKCS1_OAEP. .PP يجب تفضيل استخدام واجهات برمجة تطبيقات EVP PKEY لفك تشفير PKCS#1 v1.5 لأنها تنفذ الحلول البديلة الضرورية داخليًا. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBRSA_public_encrypt\fP\|(3), \&\fBRSA_private_decrypt\fP\|(3), \&\fBRSA_sign\fP\|(3), \fBRSA_verify\fP\|(3), \&\fBRAND\fP\|(7) .SH التاريخ .IX Header التاريخ كل هذه الدوال أصبحت مهجورة في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2021 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .