.\" -*- 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_SET_METHOD 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RSA_SET_METHOD 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_set_default_method, RSA_get_default_method, RSA_set_method, RSA_get_method, RSA_PKCS1_OpenSSL, RSA_flags, RSA_new_method \- اختيار طريقة RSA .SH موجز .IX Header موجز .Vb 1 \& #include .Ve .PP الدوال التالية أصبحت مهجورة منذ OpenSSL 3.0، ويمكن إخفاؤها تماماً عن طريق تعريف \fBOPENSSL_API_COMPAT\fP بقيمة إصدار مناسبة، انظر \fBopenssl_user_macros\fP\|(7): .PP .Vb 1 \& void RSA_set_default_method(const RSA_METHOD *meth); \& \& const RSA_METHOD *RSA_get_default_method(void); \& \& int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); \& \& const RSA_METHOD *RSA_get_method(const RSA *rsa); \& \& const RSA_METHOD *RSA_PKCS1_OpenSSL(void); \& \& int RSA_flags(const RSA *rsa); \& \& RSA *RSA_new_method(ENGINE *engine); .Ve .SH الوصف .IX Header الوصف جميع الدوال الموصوفة في هذه الصفحة مهملة. يجب على التطبيقات استخدام واجهات برمجة OSSL_PROVIDER بدلاً من ذلك. .PP يحدد \fBRSA_METHOD\fP الدوال التي يستخدمها OpenSSL لعمليات RSA. بتعديل الطريقة، يمكن استخدام تطبيقات بديلة مثل المسرعات العتادية. مهم: راجع قسم الملاحظات للحصول على معلومات مهمة حول كيفية تأثر دوال واجهة RSA هذه باستخدام استدعاءات واجهة \fBENGINE\fP. .PP مبدئياً، يكون RSA_METHOD المبدئي هو التطبيق الداخلي لـ OpenSSL، كما يُعاد بواسطة \fBRSA_PKCS1_OpenSSL()\fP. .PP \&يجعل \fBRSA_set_default_method()\fP \fBmeth\fP الطريقة المبدئية لجميع هياكل RSA التي تُنشأ لاحقاً. \&\fBملاحظة\fP: هذا صحيح فقط طالما لم يُضبط أي ENGINE كمبدئي لـ RSA، لذا لم تعد هذه الدالة موصى بها. هذه الدالة غير آمنة للخيوط ولا ينبغي استدعاؤها في نفس الوقت مع دوال OpenSSL الأخرى. .PP \&يعيد \fBRSA_get_default_method()\fP مؤشراً إلى RSA_METHOD المبدئي الحالي. ومع ذلك، تعتمد جدوى هذه النتيجة على ما إذا كانت واجهة ENGINE قيد الاستخدام، لذا لم تعد هذه الدالة موصى بها. .PP \&يختار \fBRSA_set_method()\fP \fBmeth\fP لأداء جميع العمليات باستخدام المفتاح \&\fBrsa\fP. سيستبدل هذا RSA_METHOD المستخدم بواسطة مفتاح RSA، وإذا كانت الطريقة السابقة مزودة بواسطة ENGINE، فسيُحرر مقبض ذلك ENGINE أثناء التغيير. من الممكن وجود مفاتيح RSA تعمل فقط مع تطبيقات RSA_METHOD معينة (مثل وحدة ENGINE تدعم مفاتيح محمية بعتاد مضمن)، وفي مثل هذه الحالات، قد يؤدي محاولة تغيير RSA_METHOD للمفتاح إلى نتائج غير متوقعة. .PP \&يعيد \fBRSA_get_method()\fP مؤشراً إلى RSA_METHOD المستخدم بواسطة \fBrsa\fP. قد تكون هذه الطريقة مزودة أو غير مزودة بواسطة تطبيق ENGINE، ولكن إذا كانت كذلك، فلا يمكن ضمان صحة القيمة المعادة إلا طالما أن مفتاح RSA نفسه صالح ولم يتغير تطبيقه بواسطة \&\fBRSA_set_method()\fP. .PP \&يعيد \fBRSA_flags()\fP \fBالأعلام\fP المضبوطة لـ RSA_METHOD الحالي لـ \fBrsa\fP. راجع قسم الأخطاء. .PP \&يخصص ويهيئ \fBRSA_new_method()\fP هيكل RSA بحيث يُستخدم \&\fBengine\fP لعمليات RSA. إذا كان \fBengine\fP فارغاً، يُستخدم ENGINE المبدئي لعمليات RSA، وإذا لم يُضبط أي ENGINE مبدئي، يُستخدم RSA_METHOD المُتحكم به بواسطة \fBRSA_set_default_method()\fP. .PP \&يعيد \fBRSA_flags()\fP \fBالأعلام\fP المضبوطة للطريقة الحالية لـ \fBrsa\fP. .PP \&يخصص ويهيئ \fBRSA_new_method()\fP هيكل \fBRSA\fP بحيث تُستخدم \&\fBmethod\fP لعمليات RSA. إذا كانت \fBmethod\fP هي \fBNULL\fP، تُستخدم الطريقة المبدئية. .SH "هيكل RSA_METHOD" .IX Header "هيكل RSA_METHOD" .Vb 4 \& typedef struct rsa_meth_st \& { \& /* name of the implementation */ \& const char *name; \& \& /* encrypt */ \& int (*rsa_pub_enc)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* verify arbitrary data */ \& int (*rsa_pub_dec)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* sign arbitrary data */ \& int (*rsa_priv_enc)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* decrypt */ \& int (*rsa_priv_dec)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* compute r0 = r0 ^ I mod rsa\->n (May be NULL for some implementations) */ \& int (*rsa_mod_exp)(BIGNUM *r0, BIGNUM *I, RSA *rsa); \& \& /* compute r = a ^ p mod m (May be NULL for some implementations) */ \& int (*bn_mod_exp)(BIGNUM *r, BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); \& \& /* called at RSA_new */ \& int (*init)(RSA *rsa); \& \& /* called at RSA_free */ \& int (*finish)(RSA *rsa); \& \& /* \& * RSA_FLAG_EXT_PKEY \- rsa_mod_exp is called for private key \& * operations, even if p,q,dmp1,dmq1,iqmp \& * are NULL \& * RSA_METHOD_FLAG_NO_CHECK \- don\*(Aqt check pub/private match \& */ \& int flags; \& \& char *app_data; /* ?? */ \& \& int (*rsa_sign)(int type, \& const unsigned char *m, unsigned int m_length, \& unsigned char *sigret, unsigned int *siglen, const RSA *rsa); \& int (*rsa_verify)(int dtype, \& const unsigned char *m, unsigned int m_length, \& const unsigned char *sigbuf, unsigned int siglen, \& const RSA *rsa); \& /* keygen. If NULL built\-in RSA key generation will be used */ \& int (*rsa_keygen)(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); \& \& } RSA_METHOD; .Ve .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" \&تعيد \fBRSA_PKCS1_OpenSSL()\fP و \fBRSA_PKCS1_null_method()\fP و \fBRSA_get_default_method()\fP و \fBRSA_get_method()\fP مؤشرات إلى RSA_METHODs الخاصة بها. .PP \&لا تعيد \fBRSA_set_default_method()\fP أي قيمة. .PP \&تعيد \fBRSA_set_method()\fP 1 للنجاح. تنجح دائماً. .PP تُعيد \&\fBRSA_new_method()\fP القيمة NULL وتضبط رمز خطأ يمكن الحصول عليه بواسطة \fBERR_get_error\fP\|(3) إذا فشل التخصيص. وإلا فإنها تُعيد مؤشرًا إلى البنية المُخصصة حديثًا. .SH العلل .IX Header العلل سلوك \fBRSA_flags()\fP هو ميزة خاطئة تُركت كما هي حاليًا لتجنب خلق مشاكل توافق. وظائف RSA، مثل دوال التعمية، تُتحكم بقيمة \fBflags\fP في مفتاح RSA نفسه، وليس بقيمة \fBflags\fP في RSA_METHOD المرتبط بمفتاح RSA (وهو ما تُعيده هذه الدالة). إذا غُيّر عنصر flags لمفتاح RSA، فستُكرّم التغييرات بواسطة وظائف RSA لكنها لن تنعكس في قيمة إرجاع دالة \fBRSA_flags()\fP \- في الواقع تتصرف \&\fBRSA_flags()\fP أكثر مثل دالة \fBRSA_default_flags()\fP (التي لا توجد حاليًا). .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBRSA_new\fP\|(3) .SH التاريخ .IX Header التاريخ كل هذه الدوال أصبحت مهجورة في OpenSSL 3.0. .PP استُبدلت \fBRSA_null_method()\fP، التي كانت محاولة جزئية لتجنب مشاكل براءات الاختراع، لتُعيد دائمًا NULL في OpenSSL 1.1.1. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2026 لمؤلفي مشروع 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 .