.\" -*- 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_PUBLIC_ENCRYPT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RSA_PUBLIC_ENCRYPT 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_public_encrypt, RSA_private_decrypt \- تعمية المفتاح العام RSA .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_public_encrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& int RSA_private_decrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); .Ve .SH الوصف .IX Header الوصف كِلتا الدالتين الموصوفتين في هذه الصفحة مهملتان. يجب على التطبيقات بدلاً من ذلك استخدام \fBEVP_PKEY_encrypt_init_ex\fP\|(3)، \&\fBEVP_PKEY_encrypt\fP\|(3)، \fBEVP_PKEY_decrypt_init_ex\fP\|(3) و \&\fBEVP_PKEY_decrypt\fP\|(3). .PP \&\fBRSA_public_encrypt()\fP تُعمي البايتات \fBflen\fP عند \fBfrom\fP (عادةً مفتاح جلسة) باستخدام المفتاح العام \fBrsa\fP وتخزن النص المُعمى في \&\fBto\fP. يجب أن يشير \fBto\fP إلى RSA_size(\fBrsa\fP) بايت من الذاكرة. .PP \&\fBpadding\fP يشير إلى أحد الأوضاع التالية: .IP RSA_PKCS1_PADDING 4 .IX Item RSA_PKCS1_PADDING حشو PKCS #1 v1.5. هذا حاليًا أكثر الأنماط استخدامًا. ومع ذلك، يُوصى بشدة باستخدام RSA_PKCS1_OAEP_PADDING في التطبيقات الجديدة. انظر التحذير أدناه. .IP RSA_PKCS1_OAEP_PADDING 4 .IX Item RSA_PKCS1_OAEP_PADDING EME\-OAEP كما هو مُعرّف في PKCS #1 v2.0 مع SHA\-1 و MGF1 ومعامل ترميز فارغ. هذا النمط موصى به لجميع التطبيقات الجديدة. .IP RSA_NO_PADDING 4 .IX Item RSA_NO_PADDING تعمية RSA خام. يجب \fIفقط\fP استخدام هذا النمط لتنفيذ أنماط حشو سليمة تعميًا في كود التطبيق. تعمية بيانات المستخدم مباشرةً مع RSA غير آمنة. .PP عند التعمية، يجب ألا يزيد \fBflen\fP عن RSA_size(\fBrsa\fP) \- 11 لأنماط الحشو المستندة إلى PKCS #1 v1.5، ولا يزيد عن RSA_size(\fBrsa\fP) \- 42 لـ RSA_PKCS1_OAEP_PADDING، ويكون مساويًا تمامًا لـ RSA_size(\fBrsa\fP) لـ RSA_NO_PADDING. عند استخدام نمط حشو غير RSA_NO_PADDING، فإن \&\fBRSA_public_encrypt()\fP ستُدرج بعض البايتات العشوائية في النص المُعمى، وبالتالي سيختلف النص المُعمى في كل مرة، حتى لو كان النص الصريح والمفتاح العام متطابقين تمامًا. النص المُعمى المُعاد في \fBto\fP سيكون دائمًا مُحشوًا بالأصفار إلى RSA_size(\fBrsa\fP) بايت بالضبط. قد يتداخل \fBto\fP و \fBfrom\fP. .PP \&\fBRSA_private_decrypt()\fP تفك تعمية البايتات \fBflen\fP عند \fBfrom\fP باستخدام المفتاح الخاص \fBrsa\fP وتخزن النص الصريح في \fBto\fP. يجب أن يكون \fBflen\fP مساويًا لـ RSA_size(\fBrsa\fP) ولكنه قد يكون أصغر، عندما تكون هناك بايتات صفرية رائدة في النص المُعمى. هذه البايتات ليست مهمة ويمكن إزالتها، لكن \fBRSA_public_encrypt()\fP لا تفعل ذلك. يجب أن يشير \fBto\fP إلى قسم ذاكرة كبير بما يكفي لاستيعاب أقصى بيانات ممكنة مفكوكة التعمية (وهي مساوية لـ RSA_size(\fBrsa\fP) لـ RSA_NO_PADDING، و RSA_size(\fBrsa\fP) \- 11 لأنماط الحشو المستندة إلى PKCS #1 v1.5، و RSA_size(\fBrsa\fP) \- 42 لـ RSA_PKCS1_OAEP_PADDING). \&\fBpadding\fP هو نمط الحشو الذي استُخدم لتعمية البيانات. قد يتداخل \fBto\fP و \fBfrom\fP. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&\fBRSA_public_encrypt()\fP تُعيد حجم البيانات المُعمّاة (أي RSA_size(\fBrsa\fP)). \fBRSA_private_decrypt()\fP تُعيد حجم النص الصريح المُستعاد. قيمة الإرجاع 0 ليست خطأ وتعني فقط أن النص الصريح كان فارغًا. .PP عند حدوث خطأ، يُعاد \-1؛ ويمكن الحصول على رموز الخطأ من خلال \fBERR_get_error\fP\|(3). .SH تحذيرات .IX Header تحذيرات إخفاقات فك التعمية في نمط RSA_PKCS1_PADDING تُسرب معلومات يمكن استخدامها لشن هجوم وسيط حشو Bleichenbacher. هذا ضعف متأصل في تصميم حشو PKCS #1 v1.5. يُفضل استخدام RSA_PKCS1_OAEP_PADDING. .PP في OpenSSL قبل الإصدار 3.2.0، يمكن استخدام كل من قيمة الإرجاع وطول القيمة المُعادة لشن هجوم Bleichenbacher. منذ الإصدار 3.2.0، لا يُعيد المزوّد المبدئي في OpenSSL خطأً عند فشل فحوصات الحشو. بدلاً من ذلك، يُولّد رسالة عشوائية بناءً على المفتاح الخاص المستخدم والنص المُعمى المُقدم، بحيث لا يضطر كود التطبيق إلى تنفيذ معالجة أخطاء آمنة من القنوات الجانبية. التطبيقات التي تريد أن تكون آمنة ضد هجمات القنوات الجانبية مع مزوّدين لا يُنفذون الرفض الضمني، لا تزال بحاجة إلى معالجة القيم المُعادة باستخدام كود خالٍ من القنوات الجانبية. يمكن إجراء معالجة خالية من القنوات الجانبية لمكدس الأخطاء باستخدام إما زوج من استدعاءات \fBERR_set_mark\fP\|(3) و \fBERR_pop_to_mark\fP\|(3) غير المشروطة أو باستخدام استدعاء \fBERR_clear_error\fP\|(3). .SH "متوافق مع" .IX Header "متوافق مع" SSL, PKCS #1 v2.0 .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBERR_get_error\fP\|(3), \fBRAND_bytes\fP\|(3), \&\fBRSA_size\fP\|(3), \fBEVP_PKEY_decrypt\fP\|(3), \fBEVP_PKEY_encrypt\fP\|(3) .SH التاريخ .IX Header التاريخ كلا الدالتين مهجورتان في OpenSSL 3.0. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2024 لمؤلفي مشروع 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 .