.\" -*- 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 العنوان "OPENSSL\-PKEYUTL 1ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH OPENSSL\-PKEYUTL 1ssl "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 الاسم openssl\-pkeyutl \- أمر المفتاح غير المتماثل .SH موجز .IX الرأس موجز \&\fBopenssl\fP \fBpkeyutl\fP [\fB\-help\fP] [\fB\-in\fP \fIملف\fP] [\fB\-rawin\fP] [\fB\-digest\fP \fIخوارزمية\fP] [\fB\-out\fP \fIملف\fP] [\fB\-secret\fP \fIملف\fP] [\fB\-sigfile\fP \fIملف\fP] [\fB\-inkey\fP \fIاسم_الملف\fP|\fIمعرف_المورد\fP] [\fB\-keyform\fP \fBDER\fP|\fBPEM\fP|\fBP12\fP|\fBENGINE\fP] [\fB\-passin\fP \fIمعطى\fP] [\fB\-pubin\fP] [\fB\-certin\fP] [\fB\-rev\fP] [\fB\-sign\fP] [\fB\-verify\fP] [\fB\-verifyrecover\fP] [\fB\-encrypt\fP] [\fB\-decrypt\fP] [\fB\-derive\fP] [\fB\-peerkey\fP \fIملف\fP] [\fB\-peerform\fP \fBDER\fP|\fBPEM\fP|\fBP12\fP|\fBENGINE\fP] [\fB\-encap\fP] [\fB\-decap\fP] [\fB\-kdf\fP \fIخوارزمية\fP] [\fB\-kdflen\fP \fIطول\fP] [\fB\-kemop\fP \fIوضع\fP] [\fB\-pkeyopt\fP \fIخيار\fP:\fIقيمة\fP] [\fB\-pkeyopt_passin\fP \fIخيار\fP[:\fIمعطى_المرور\fP]] [\fB\-hexdump\fP] [\fB\-asn1parse\fP] [\fB\-engine\fP \fIمعرف\fP] [\fB\-engine_impl\fP] [\fB\-rand\fP \fIملفات\fP] [\fB\-writerand\fP \fIملف\fP] [\fB\-provider\fP \fIاسم\fP] [\fB\-provider\-path\fP \fIمسار\fP] [\fB\-provparam\fP \fI[الاسم:]مفتاح=قيمة\fP] [\fB\-propquery\fP \fIpropq\fP] [\fB\-config\fP \fIملف_التكوين\fP] .SH الوصف .IX الرأس الوصف يمكن استخدام هذا الأمر لإجراء عمليات منخفضة المستوى على المفاتيح غير المتماثلة (العامة أو الخاصة) باستخدام أي خوارزمية مدعومة. .PP يُفترض إجراء عملية التوقيع (انظر الخيار \fB\-sign\fP) بشكل مبدئي. .SH الخيارات .IX الرأس الخيارات .IP \fB\-help\fP 4 .IX عنصر \-help اطبع رسالة الاستخدام. .IP "\fB\-in\fP \fIاسم_الملف\fP" 4 .IX عنصر "\-in اسم_الملف" يحدد هذا اسم ملف المدخلات لقراءة البيانات منه أو المدخل القياسي إذا لم يُحدد هذا الخيار. .IP \fB\-rawin\fP 4 .IX عنصر \-rawin يشير هذا إلى أن بيانات مدخلات التوقيع أو الاستيثاق هي بيانات خام، لم تُعالج بأي خوارزمية لخلاصة الرسائل (hash). باستثناء EdDSA، يمكن للمستخدم تحديد خوارزمية خلاصة باستخدام الخيار \fB\-digest\fP. بالنسبة لخوارزميات التوقيع مثل RSA و DSA و ECDSA، فإن خوارزمية الخلاصة المبدئية هي SHA256. وبالنسبة لـ SM2، فهي SM3. .Sp يمكن استخدام هذا الخيار مع \fB\-sign\fP و \fB\-verify\fP فقط. بالنسبة لـ EdDSA (خوارزميتي Ed25519 و Ed448) يكون هذا الخيار مضمنًا منذ إصدار OpenSSL 3.5، وكان مطلوبًا في الإصدارات الأقدم. .Sp يتضمن الخيار \fB\-digest\fP الخيار \fB\-rawin\fP منذ إصدار OpenSSL 3.5. .IP "\fB\-digest\fP \fIخوارزمية\fP" 4 .IX عنصر "\-digest خوارزمية" لا يمكن استخدام هذا الخيار إلا مع \fB\-sign\fP و \fB\-verify\fP. يحدد خوارزمية الخلاصة المستخدمة لتجزئة بيانات المدخلات قبل توقيعها أو الاستيثاق منها باستخدام مفتاح المدخلات. يمكن حذف هذا الخيار إذا كانت خوارزمية التوقيع لا تتطلب معالجة مسبقة للمدخلات عبر دالة تجزئة (مثل EdDSA). إذا حُذف هذا الخيار بينما تتطلبه خوارزمية التوقيع وكان الخيار \fB\-rawin\fP محددًا، فستُستخدم قيمة مبدئية (انظر \fB\-rawin\fP للتفاصيل). إذا وجد هذا الخيار، فإن الخيار \fB\-rawin\fP يكون مضمنًا منذ إصدار OpenSSL 3.5، وكان مطلوبًا في الإصدارات الأقدم. .Sp في الوقت الحالي، لا يُدعم HashEdDSA (بديل ph أو "التجزئة المسبقة" من EdDSA)، لذا لا يمكن استخدام الخيار \fB\-digest\fP مع EdDSA. .IP "\fB\-out\fP \fIاسم_الملف\fP" 4 .IX عنصر "\-out اسم_الملف" يحدد اسم ملف المخرجات للكتابة إليه أو الخرج القياسي بشكل مبدئي. .IP "\fB\-secret\fP \fIاسم_الملف\fP" 4 .IX عنصر "\-secret اسم_الملف" يحدد اسم ملف مخرجات السر المشترك عند إجراء التغليف عبر الخيار \fB\-encap\fP أو فك التغليف عبر الخيار \fB\-decap\fP. يُنتج الخيار \fB\-encap\fP أيضًا مخرجات نص معمي (عام) منفصل يُكتب مبدئيًا إلى الخرج القياسي، ولكن لكونه بيانات \fIثنائية\fP غير نصية، فإنه يُعاد توجيهه عادةً إلى ملف يُختار عبر الخيار \fI\-out\fP. .IP "\fB\-sigfile\fP \fIملف\fP" 4 .IX عنصر "\-sigfile ملف" ملف التوقيع، مطلوب ومسموح به لعمليات \fB\-verify\fP فقط. .IP "\fB\-inkey\fP \fIاسم_الملف\fP|\fIمعرف_المورد\fP" 4 .IX عنصر "\-inkey اسم_الملف|معرف_المورد" مفتاح المدخلات، ويجب أن يكون مفتاحًا خاصًا بشكل مبدئي. .IP "\fB\-keyform\fP \fBDER\fP|\fBPEM\fP|\fBP12\fP|\fBENGINE\fP" 4 .IX عنصر "\-keyform DER|PEM|P12|ENGINE" تنسيق المفتاح؛ غير محدد بشكل مبدئي. انظر \fBopenssl\-format\-options\fP\|(1) للحصول على التفاصيل. .IP "\fB\-passin\fP \fIمعطى\fP" 4 .IX عنصر "\-passin معطى" مصدر كلمة مرور مفتاح المدخلات. لمزيد من المعلومات حول تنسيق \fIالمعطى\fP راجع \fBopenssl\-passphrase\-options\fP\|(1). .IP \fB\-pubin\fP 4 .IX عنصر \-pubin مبدئيًا، يُقرأ مفتاح خاص من مدخلات المفتاح. مع هذا الخيار، يُقرأ مفتاح عام بدلاً من ذلك. إذا لم تتضمن المدخلات مفتاحًا عامًا بل مفتاحًا خاصًا، فيُستخدم جزؤه العام. .IP \fB\-certin\fP 4 .IX عنصر \-certin المدخلات عبارة عن شهادة تحتوي على مفتاح عام. .IP \fB\-rev\fP 4 .IX عنصر \-rev اعكس ترتيب مخزن المدخلات المؤقت. هذا مفيد لبعض المكتبات (مثل CryptoAPI) التي تمثل المخزن المؤقت بتنسيق little\-endian. لا يمكن استخدام هذا بالتزامن مع \fB\-rawin\fP. .IP \fB\-sign\fP 4 .IX عنصر \-وقع وقع بيانات المدخلات وأخرج النتيجة الموقعة. يتطلب هذا مفتاحًا خاصًا. يُوصى باستخدام عملية خلاصة الرسائل مع هذا عند الاقتضاء، راجع الخيارين \fB\-rawin\fP و \fB\-digest\fP للتفاصيل. خلاف ذلك، يُفترض أن بيانات المدخلات المقدمة مع الخيار \fB\-in\fP هي خلاصة بالفعل، ولكن قد يتطلب هذا خيار \fB\-pkeyopt\fP إضافي \f(CW\*(C`digest:\*(C'\fP\fImd\fP في بعض الحالات (مثل RSA مع وضع حشو PKCS#1 المبدئي). حتى بالنسبة للخوارزميات الأخرى مثل ECDSA، حيث لا يؤثر خيار \fB\-pkeyopt\fP الإضافي على مخرجات التوقيع، فإنه يُوصى به لأنه يتيح التحقق من أن طول المدخلات متوافق مع الخلاصة المقصودة. .IP \fB\-verify\fP 4 .IX عنصر \-استوثق استوثق من بيانات المدخلات مقابل التوقيع المقدم مع الخيار \fB\-sigfile\fP وأشر إلى ما إذا كان الاستيثاق قد نجح أو فشل. يُفترض أن بيانات المدخلات المقدمة مع الخيار \fB\-in\fP هي قيمة تجزئة ما لم يُحدد الخيار \fB\-rawin\fP أو يكون مضمنًا. مع البيانات الخام، عندما تكون خوارزمية الخلاصة قابلة للتطبيق، فإنه ينبغي تحديدها أيضًا حتى لو كان يمكن استنتاجها من التوقيع أو تأخذ قيمة مبدئية. .IP \fB\-verifyrecover\fP 4 .IX عنصر \-verifyrecover استوثق من التوقيع المعطى وأخرج البيانات المستعادة (حمولة التوقيع). على سبيل المثال، في حالة RSA PKCS#1 تكون البيانات المستعادة هي ترميز DER لـ \fBEMSA\-PKCS\-v1_5\fP للمعرف الكائني (OID) لخوارزمية الخلاصة وقيمتها كما هو محدد في RFC8017 القسم 9.2 . .Sp لاحظ أن المدخلات المعطاة هنا مع الخيار \fB\-in\fP ليست مدخلات توقيع (كما هو الحال مع الخيارين \fB\-sign\fP و \fB\-verify\fP) ولكنها قيمة مخرجات توقيع، تُنتج عادةً باستخدام الخيار \fB\-sign\fP. .Sp يتوفر هذا الخيار للاستخدام مع مفاتيح RSA فقط. .IP \fB\-encrypt\fP 4 .IX عنصر \-encrypt عمِّ بيانات المدخلات باستخدام مفتاح عام. .IP \fB\-decrypt\fP 4 .IX عنصر \-فك_التعمية فك تعمية بيانات المدخلات باستخدام مفتاح خاص. .IP \fB\-derive\fP 4 .IX عنصر \-derive اشتق سرًا مشتركًا باستخدام مفتاح (EC)DH الخاص بك ومفتاح النظير. .IP "\fB\-peerkey\fP \fIملف\fP" 4 .IX عنصر "\-peerkey ملف" ملف يحتوي على مفتاح (EC)DH العام أو الخاص للنظير لاستخدامه في عملية اشتقاق المفاتيح (الاتفاق). يجب أن يتطابق نوعه مع نوع المفتاح الخاص بك المعطى مع \fB\-inkey\fP. .IP "\fB\-peerform\fP \fBDER\fP|\fBPEM\fP|\fBP12\fP|\fBENGINE\fP" 4 .IX عنصر "\-peerform DER|PEM|P12|ENGINE" تنسيق مفتاح النظير؛ غير محدد بشكل مبدئي. راجع \fBopenssl\-format\-options\fP\|(1) للحصول على التفاصيل. .IP \fB\-encap\fP 4 .IX عنصر \-encap استخدم آلية تغليف المفاتيح (\fBKEM\fP) لـ \fBتغليف\fP سر مشترك لمفتاح النظير الـ \fBعام\fP. تُكتب النتيجة المغلفة (أو النص المعمي، بيانات ثنائية غير نصية) إلى الخرج القياسي مبدئيًا، أو إلى الملف المحدد بـ \fI\-out\fP. يجب أيضًا تقديم الخيار \fI\-secret\fP لتحديد ملف المخرجات لقيمة السر المشترك المشتقة والمولدة في عملية التغليف. يُدعم التغليف مع عدد من خوارزميات المفاتيح العامة، حاليًا: ML\-KEM و X25519 و X448 و EC. تستخدم خوارزميتا ECX و EC هيكلية DHKEM الخاصة بـ RFC9180 . يُدعم التغليف أيضًا مع مفاتيح RSA عبر هيكلية \&\fBRSASVE\fP. .Sp على مستوى واجهة برمجة التطبيقات (API)، يُدعم التغليف وفك التغليف أيضًا لبعض خوارزميات ECDHE الهجينة (بدون DHKEM) بالإضافة إلى خوارزميات \fBML\-KEM\fP، ولكن هذه مخصصة أساسًا للاستخدام مع TLS ولا ينبغي استخدامها بشكل مستقل. لا توجد على أي حال تنسيقات قياسية للمفاتيح العامة والخاصة للخوارزميات الهجينة، لذا لا يمكن تقديم مادة المفاتيح المطلوبة. .IP \fB\-decap\fP 4 .IX عنصر \-decap فك ترميز سر مغلف، باستخدام مفتاح \fB\-private\fP، لاشتقاق نفس السر المشترك الذي حُصل عليه عندما غُلّف السر للمفتاح العام المقابل. يُقرأ السر المغلف مبدئيًا من المدخل القياسي، أو من الملف المحدد بـ \fB\-in\fP. يُكتب السر المشترك المشتق إلى الملف المحدد بخيار \fB\-secret\fP، والذي \fIيجب\fP تقديمه أيضًا. يُدعم فك التغليف مع عدد من خوارزميات المفاتيح العامة، حاليًا: ML\-KEM و X25519 و X448 و EC. تستخدم خوارزميتا ECX و EC هيكلية DHKEM الخاصة بـ RFC9180 . يُدعم فك التغليف أيضًا مع مفاتيح RSA عبر هيكلية \&\fBRSASVE\fP. .IP "\fB\-kemop\fP \fIوضع\fP" 4 .IX عنصر "\-kemop وضع" يُستخدم هذا الخيار مع أوامر \fI\-encap\fP/\fI\-decap\fP ويحدد \fIوضع\fP KEM الخاص بخوارزمية المفتاح عندما لا تتوفر طريقة مبدئية لتغليف وفك تغليف الأسرار المشتركة مع نوع المفتاح المختار. تدعم جميع الخوارزميات المدعومة حاليًا \fIوضعها\fP المبدئي فقط، وهذا الخيار، رغم توفره، ليس مطلوبًا. .IP "\fB\-kdf\fP \fIخوارزمية\fP" 4 .IX عنصر "\-kdf خوارزمية" استخدم \fIخوارزمية\fP دالة اشتقاق المفاتيح. الخوارزميات المدعومة حاليًا هي \fBTLS1\-PRF\fP و \fBHKDF\fP. ملاحظة: سيتعين عادةً ضبط معلمات إضافية وطول مخرجات KDF لكي يعمل هذا. راجع \fBEVP_PKEY_CTX_set_hkdf_md\fP\|(3) و \fBEVP_PKEY_CTX_set_tls1_prf_md\fP\|(3) لمعرفة معلمات السلسلة المدعومة لكل خوارزمية. .IP "\fB\-kdflen\fP \fIطول\fP" 4 .IX عنصر "\-kdflen طول" اضبط طول المخرجات لـ KDF. .IP "\fB\-pkeyopt\fP \fIخيار\fP:\fIقيمة\fP" 4 .IX عنصر "\-pkeyopt opt:value" خيارات المفتاح العام المحددة كـ خيار:قيمة. انظر قسم "ملاحظات" أدناه لمزيد من التفاصيل. .IP "\fB\-pkeyopt_passin\fP \fIخيار\fP[:\fIوسيط_كلمة_المرور\fP]" 4 .IX عنصر "\-pkeyopt_passin opt[:passarg]" يسمح بقراءة خيار المفتاح العام \fIخيار\fP من الدخل القياسي (stdin) أو من مصدر كلمة مرور. إذا حُدد \fIخيار\fP فقط، فسيُطلب من المستخدم إدخال كلمة مرور عبر الدخل القياسي. بدلاً من ذلك، يمكن تحديد \fIوسيط_كلمة_المرور\fP الذي يمكن أن يكون أي قيمة يدعمها \fBopenssl\-passphrase\-options\fP\|(1). .IP \fB\-hexdump\fP 4 .IX عنصر \-hexdump تفريغ بيانات المخرجات بنظام سداسي عشري. .IP \fB\-asn1parse\fP 4 .IX عنصر \-asn1parse يعالج بيانات مخرجات ASN.1 للتحقق من ترميز DER الخاص بها وطباعة أي أخطاء. عند استخدامه مع خيار \fB\-verifyrecover\fP، قد يكون هذا مفيداً في حال وُقّعت بنية ASN.1 مرمزة بـ DER مباشرةً (دون تجزئتها) وعند التحقق من توقيع بتنسيق PKCS#1 v1.5، الذي يحتوي على ترميز DER. .IP "\fB\-engine\fP \fIid\fP" 4 .IX عنصر "\-engine id" انظر "خيارات المحرك" في \fBopenssl\fP\|(1). هذا الخيار مهجور. .IP \fB\-engine_impl\fP 4 .IX عنصر \-engine_impl عند استخدامه مع خيار \fB\-engine\fP، فإنه يحدد أيضاً استخدام المحرك \fIid\fP للعمليات التعموية. .IP "\fB\-rand\fP \fIfiles\fP، \fB\-writerand\fP \fIfile\fP" 4 .IX عنصر "\-rand ملفات، \-writerand ملف" انظر "خيارات الحالة العشوائية" في \fBopenssl\fP\|(1) لمزيد من التفاصيل. .IP "\fB\-provider\fP \fIname\fP" 4 .IX عنصر "\-provider الاسم" .PD 0 .IP "\fB\-provider\-path\fP \fIpath\fP" 4 .IX عنصر "\-provider\-path المسار" .IP "\fB\-provparam\fP \fI[name:]key=value\fP" 4 .IX عنصر "\-provparam [الاسم:]المفتاح=القيمة" .IP "\fB\-propquery\fP \fIpropq\fP" 4 .IX عنصر "\-propquery propq" .PD انظر "خيارات المزود" في \fBopenssl\fP\|(1)، و \fBprovider\fP\|(7)، و \fBproperty\fP\|(7). .IP "\fB\-config\fP \fIملف_الضبط\fP" 4 .IX عنصر "\-config ملف_الضبط" انظر "خيار الضبط" في \fBopenssl\fP\|(1). .SH ملاحظات .IX الرأس ملاحظات تختلف العمليات والخيارات المدعومة وفقاً لخوارزمية المفتاح وتنفيذها. يُشار إلى عمليات وخيارات OpenSSL أدناه. .PP ما لم يُذكر خلاف ذلك، يدعم خيار \fB\-pkeyopt\fP لجميع أنواع المفاتيح العامة وسيط \f(CW\*(C`digest:\*(C'\fP\fIalg\fP، الذي يحدد الملخص المستخدم في عمليات التوقيع والتحقق. يجب أن تمثل قيمة \fIalg\fP اسم ملخص كما هو مستخدم في دالة \&\fBEVP_get_digestbyname()\fP، على سبيل المثال \fBsha256\fP. لا تُستخدم هذه القيمة لتجزئة بيانات الدخل. إنما تُستخدم (بواسطة بعض الخوارزميات) للتحقق من صحة أطوال البيانات الممرة ولإنشاء البنى التي يتكون منها التوقيع (مثل \fBDigestInfo\fP في تواقيع RSASSA PKCS#1 v1.5). .PP على سبيل المثال، إذا كانت قيمة وسيط خيار \fB\-pkeyopt\fP المسمى \f(CW\*(C`digest\*(C'\fP هي \fBsha256\fP، فيجب أن يكون دخل التوقيع أو التحقق هو القيمة الثنائية بطول 32 بايت لمخرجات دالة تجزئة SHA256. .PP ما لم يُستخدم \fB\-rawin\fP أو يُضمن ضمناً، لا يقوم هذا الأمر بتجزئة بيانات الدخل بل سيستخدم البيانات مباشرة كدخل لخوارزمية التوقيع. اعتماداً على نوع المفتاح، ونوع التوقيع، ووضع الحشو، تختلف الأطوال القصوى المعقولة لبيانات الدخل. مع RSA، لا يمكن أن تكون البيانات الموقعة أطول من مقياس المفتاح (modulus). في حالة ECDSA و DSA، يجب ألا تكون البيانات أطول من حجم الحقل، وإلا سيُقتطع بصمت إلى حجم الحقل. في أي حال، يجب ألا يكون حجم الدخل أكبر من أكبر حجم مخرجات ملخص مدعوم \fBEVP_MAX_MD_SIZE\fP، وهو حالياً 64 بايت. .SH "خوارزمية RSA" .IX الرأس "خوارزمية RSA" تدعم خوارزمية RSA بشكل عام عمليات التعمية، وفك التعمية، والتوقيع، والتحقق، والتحقق مع الاستعادة. ومع ذلك، تدعم بعض أوضاع الحشو مجموعة فرعية فقط من هذه العمليات. قِيم \&\fBpkeyopt\fP الإضافية التالية مدعومة: .IP \fBrsa_padding_mode:\fP\fImode\fP 4 .IX عنصر rsa_padding_mode:mode يضبط هذا وضع حشو RSA. القيم المقبولة لـ \fImode\fP هي \fBpkcs1\fP لحشو PKCS#1، و \fBnone\fP لعدم وجود حشو، و \fBoaep\fP لوضع \fBOAEP\fP، و \fBx931\fP لوضع X9.31 و \fBpss\fP لـ PSS. .Sp في حشو PKCS#1، إذا لم يُضبط ملخص الرسالة، فسيُوقع على البيانات المزودة أو يُتحقق منها مباشرة بدلاً من استخدام بنية \fBDigestInfo\fP. إذا ضُبط الملخص، فتُستخدم بنية \fBDigestInfo\fP ويجب أن يتوافق طولها مع نوع الملخص. .Sp لاحظ أنه بالنسبة لحشو \fBpkcs1\fP، كحماية ضد هجوم Bleichenbacher، لن تفشل عملية فك التعمية في حال فشل فحص الحشو. استخدم \fBnone\fP والفحص اليدوي للرسالة المفكوكة تعميتها للتحقق مما إذا كانت القيمة المفكوكة تحتوي على حشو PKCS#1 v1.5 صحيح. .Sp في وضع \fBoaep\fP، تُدعم التعمية وفك التعمية فقط. .Sp بالنسبة لـ \fBx931\fP، إذا ضُبط نوع الملخص، فسيُستخدم لتنسيق بيانات الكتلة، وإلا فسيُستخدم البايت الأول لتحديد معرف ملخص X9.31. يمكن إجراء التوقيع والتحقق والتحقق مع الاستعادة في هذا الوضع. .Sp في وضع \fBpss\fP، يُدعم التوقيع والتحقق فقط ويجب تحديد نوع الملخص. .IP \fBrsa_pss_saltlen:\fP\fIlen\fP 4 .IX عنصر rsa_pss_saltlen:len لوضع \fBpss\fP فقط، يحدد هذا الخيار طول المملحة (salt). تُدعم ثلاث قيم خاصة: \fBdigest\fP يضبط طول المملحة على طول الملخص، و \&\fBmax\fP يضبط طول المملحة على أقصى قيمة مسموح بها. عند التحقق، يؤدي \&\fBauto\fP إلى تحديد طول المملحة آلياً بناءً على بنية كتلة \&\fBPSS\fP. .IP \fBrsa_mgf1_md:\fP\fIdigest\fP 4 .IX عنصر rsa_mgf1_md:digest يضبط ملخص MGF1 لحشوي PSS و OAEP. إذا لم يُضبط ملخص MGF1 صراحةً في وضع PSS، فسيُستخدم ملخص التوقيع. .IP \fBrsa_oaep_md:\fP\fIdigest\fP 4 .IX عنصر rsa_oaep_md:digest يضبط الملخص المستخدم لدالة تجزئة OAEP. إذا لم يُضبط صراحةً، فسيُستخدم SHA256. .IP \fBrsa_pkcs1_implicit_rejection:\fP\fIflag\fP 4 .IX عنصر rsa_pkcs1_implicit_rejection:flag يعطل (عند ضبطه على 0) أو يفعل (عند ضبطه على 1) استخدام الرفض الضمني مع فك تعمية PKCS#1 v1.5. عند تفعيله (وهو المبدئي)، وكحماية ضد هجوم Bleichenbacher، ستولد المكتبة نصاً مجرداً عشوائياً حتمياً ستعيده إلى المستدعِي في حال فشل فحص الحشو. عند تعطيله، تقع على عاتق المستدعِي مسؤولية التعامل مع الأخطاء المعادة بطريقة خالية من القنوات الجانبية. .SH "خوارزمية RSA\-PSS" .IX الرأس "خوارزمية RSA\-PSS" خوارزمية RSA\-PSS هي نسخة مقيدة من خوارزمية RSA تدعم فقط عمليات التوقيع والتحقق مع حشو PSS. قِيم \fB\-pkeyopt\fP الإضافية التالية مدعومة: .IP "\fBrsa_padding_mode:\fP\fImode\fP، \fBrsa_pss_saltlen:\fP\fIlen\fP، \fBrsa_mgf1_md:\fP\fIdigest\fP" 4 .IX عنصر "rsa_padding_mode:mode, rsa_pss_saltlen:len, rsa_mgf1_md:digest" لهذه الخيارات نفس المعنى كما في خوارزمية \fBRSA\fP مع بعض القيود الإضافية. لا يمكن ضبط وضع الحشو إلا على \fBpss\fP وهي القيمة المبدئية. .Sp إذا كان للمفتاح قيود على المعاملات، فسيُضبط الملخص وملخص MGF1 وطول المملحة على القيم المحددة في المعاملات. لا يمكن تغيير الملخص و MGF1، ولا يمكن ضبط طول المملحة على قيمة أقل من الحد الأدنى للقيود. .SH "خوارزمية DSA" .IX الرأس "خوارزمية DSA" تدعم خوارزمية DSA عمليتي التوقيع والتحقق فقط. حالياً، لا توجد خيارات \fB\-pkeyopt\fP إضافية غير \fBdigest\fP. يُفترض ملخص SHA256 مبدئياً. .SH "خوارزمية DH" .IX الرأس "خوارزمية DH" تدعم خوارزمية DH عملية الاشتقاق فقط ولا توجد خيارات \&\fB\-pkeyopt\fP إضافية. .SH "خوارزمية EC" .IX الرأس "خوارزمية EC" تدعم خوارزمية EC عمليات التوقيع والتحقق والاشتقاق. تستخدم عمليتا التوقيع والتحقق ECDSA ويستخدم الاشتقاق ECDH. يُفترض SHA256 مبدئياً لخيار \fB\-pkeyopt\fP \fBdigest\fP. .SH "خوارزميتا X25519 و X448" .IX الرأس "خوارزميتا X25519 و X448" تدعم خوارزميتا X25519 و X448 اشتقاق المفاتيح فقط. حالياً لا توجد خيارات إضافية. .SS "خوارزميات SLH\-DSA" .IX "قسم فرعي" "خوارزميات SLH\-DSA" خوارزميات SLH\-DSA (SLH\-DSA\-SHA2\-128s، SLH\-DSA\-SHA2\-128f، SLH\-DSA\-SHA2\-192s، SLH\-DSA\-SHA2\-192f، SLH\-DSA\-SHA2\-256s، SLH\-DSA\-SHA2\-256f) هي خوارزميات توقيع ما بعد الكم. عند استخدام SLH\-DSA مع pkeyutl، تتوفر الخيارات التالية: .IP \fB\-sign\fP 4 .IX عنصر \-وقع وقّع على بيانات الدخل باستخدام مفتاح SLH\-DSA خاص. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey slhdsa.pem \-out sig .Ve .IP \fB\-verify\fP 4 .IX عنصر \-استوثق تحقق من التوقيع باستخدام مفتاح SLH\-DSA عام. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey slhdsa.pem \-sigfile sig .Ve .PP انظر \fBEVP_PKEY\-SLH\-DSA\fP\|(7) و \fBEVP_SIGNATURE\-SLH\-DSA\fP\|(7) لمزيد من التفاصيل حول خوارزمية SLH\-DSA وتنفيذها. .SH "خوارزميات ML\-DSA\-44 و ML\-DSA\-65 و ML\-DSA\-87" .IX الرأس "خوارزميات ML\-DSA\-44 و ML\-DSA\-65 و ML\-DSA\-87" خوارزميات ML\-DSA هي خوارزميات توقيع ما بعد الكم تدعم توقيع الرسائل "الخام" والتحقق منها. لا يتم إجراء تجزئة أولية. عند استخدام ML\-DSA مع pkeyutl، تتوفر الخيارات التالية: .IP \fB\-sign\fP 4 .IX عنصر \-وقع وقّع على بيانات الدخل باستخدام مفتاح ML\-DSA خاص. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig .Ve .IP \fB\-verify\fP 4 .IX عنصر \-استوثق تحقق من التوقيع باستخدام مفتاح ML\-DSA عام. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey mldsa65.pem \-sigfile sig .Ve .IP "\fB\-pkeyopt\fP \fIخيار\fP:\fIقيمة\fP" 4 .IX عنصر "\-pkeyopt opt:value" خيارات إضافية لتوقيع ML\-DSA والتحقق منه: .RS 4 .IP \fBmessage\-encoding\fP:\fIvalue\fP 4 .IX عنصر message\-encoding:value يحدد وضع ترميز الرسالة المستخدم للتوقيع. هذا يتحكم في كيفية معالجة رسالة الدخل قبل التوقيع. القيم الصالحة مشروحة في \fBEVP_SIGNATURE\-ML\-DSA\fP\|(7). على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt message\-encoding:1 .Ve .IP \fBtest\-entropy\fP:\fIvalue\fP 4 .IX عنصر test\-entropy:value يحدد قيمة انتروبيا اختبارية للتوقيع الحتمي. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt test\-entropy:abcdefghijklmnopqrstuvwxyz012345 .Ve .IP \fBhextest\-entropy\fP:\fIvalue\fP 4 .IX عنصر hextest\-entropy:value يحدد قيمة اعتلاج (entropy) للاختبار بتنسيق ست عشري. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt hextest\-entropy:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f .Ve .IP \fBdeterministic\fP:\fIvalue\fP 4 .IX عنصر deterministic:value يفعّل التوقيع المحدد (deterministic). على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt deterministic:1 .Ve .IP \fBmu\fP:\fIvalue\fP 4 .IX عنصر mu:value يحدد معامل mu. على سبيل المثال: .Sp .Vb 2 \& $ echo \-n "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" >file.txt \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt mu:1 .Ve .RE .RS 4 .RE .IP \fBcontext\-string\fP:\fIstring\fP 4 .IX عنصر context\-string:string يحدد سلسلة نصية للسياق لكل من عمليتي التوقيع والتحقق. يجب أن تكون سلسلة السياق هي نفسها حتى تنجح عملية التحقق. على سبيل المثال: .Sp .Vb 2 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt context\-string:mycontext \& $ openssl pkeyutl \-verify \-in file.txt \-inkey mldsa65.pem \-sigfile sig \-pkeyopt context\-string:mycontext .Ve .IP \fBhexcontext\-string\fP:\fIstring\fP 4 .IX عنصر hexcontext\-string:string يحدد سلسلة سياق بتنسيق ست عشري، مما يسمح بقيم تحكم ثنائية. على سبيل المثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt hexcontext\-string:6d79636f6e74657874 .Ve .PP تدعم عملية التوقيع خيار \fBdeterministic\fP:\fIbool\fP، حيث تُضبط قيمة \fIbool\fP على \f(CW1\fP إذا أُريد توليد توقيع محدد بمدخل عشوائي ثابت كله أصفار. بشكل مبدئي، أو إذا كانت قيمة \fIbool\fP هي \f(CW0\fP، تُستخدم قيمة اعتلاج عشوائية. يمكن أيضًا الحصول على نتيجة محددة عبر تحديد قيمة اعتلاج صريحة من خلال معامل \fBhextest\-entropy\fP:\fIvalue\fP. يجب استخدام توقيع \fBML\-DSA\fP المحدد في الاختبارات فقط. .PP انظر \fBEVP_SIGNATURE\-ML\-DSA\fP\|(7) لمزيد من التفاصيل حول خوارزميات ML\-DSA وتنفيذها. .SH "خوارزميات ML\-KEM\-512 و ML\-KEM\-768 و ML\-KEM\-1024" .IX الرأس "خوارزميات ML\-KEM\-512 و ML\-KEM\-768 و ML\-KEM\-1024" تدعم خوارزميات ML\-KEM عمليات الكبسلة (encapsulation) وفك الكبسلة فقط. تدعم عملية الكبسلة خيار \fBhexikme\fP:\fIentropy\fP، حيث يكون \fIentropy\fP هو ترميز من 64 رقمًا ست عشريًا لقيمة بحجم 32 بايت. يجب استخدام هذا في الاختبارات فقط، إذ إن القيم المعروفة أو المسربة لهذا الخيار قد تعرض السر المشترك المولد للخطر. .PP انظر \fBEVP_KEM\-ML\-KEM\fP\|(7) لمزيد من التفاصيل. .SH "خوارزميات ED25519 و ED448" .IX الرأس "خوارزميات ED25519 و ED448" تدعم هذه الخوارزميات التوقيع والتحقق فقط. ينفذ OpenSSL المتغيرات "المجردة" فقط من هذه الخوارزميات بحيث يمكن تمرير البيانات الخام إليها مباشرة دون تجزئتها أولاً. يدعم OpenSSL عملية "الطلقة الواحدة" (oneshot) فقط مع هذه الخوارزميات. وهذا يعني وجوب قراءة الملف المراد توقيعه/التحقق منه بالكامل في الذاكرة قبل معالجته. يجب تجنب توقيع أو التحقق من الملفات الكبيرة جدًا. بالإضافة إلى ذلك، يجب أن يكون حجم الملف معروفًا ليعمل هذا. إذا تعذر تحديد حجم الملف (على سبيل المثال إذا كان الإدخال هو stdin) فستفشل عملية التوقيع أو التحقق. .SH SM2 .IX الرأس SM2 تدعم خوارزمية SM2 عمليات التوقيع والتحقق والتعمية وفك التعمية. بالنسبة لعمليات التوقيع والتحقق، تتطلب SM2 تمرير سلسلة معرف تمييز (Distinguishing ID). قيمة \fB\-pkeyopt\fP التالية مدعومة: .IP \fBdistid:\fP\fIstring\fP 4 .IX عنصر distid:string يضبط هذا سلسلة المعرف المستخدمة في عمليات توقيع أو تحقق SM2. أثناء التحقق من توقيع SM2، يجب أن يكون المعرف هو نفسه المستخدم عند توقيع البيانات. خلاف ذلك، سيفشل التحقق. .IP \fBhexdistid:\fP\fIhex_string\fP 4 .IX عنصر hexdistid:hex_string يضبط هذا سلسلة المعرف المستخدمة في عمليات توقيع أو تحقق SM2. أثناء التحقق من توقيع SM2، يجب أن يكون المعرف هو نفسه المستخدم عند توقيع البيانات. خلاف ذلك، سيفشل التحقق. يجب أن تكون سلسلة المعرف المقدمة بهذا الخيار قيمة ست عشرية صالحة. .SH أمثلة .IX الرأس أمثلة توقيع بعض البيانات باستخدام مفتاح خاص: .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP استعادة البيانات الموقعة (مثلاً في حال استخدام مفتاح RSA): .PP .Vb 1 \& openssl pkeyutl \-verifyrecover \-in sig \-inkey key.pem .Ve .PP التحقق من التوقيع (مثلاً مفتاح DSA): .PP .Vb 1 \& openssl pkeyutl \-verify \-in file \-sigfile sig \-inkey key.pem .Ve .PP توقيع البيانات باستخدام قيمة ملخص الرسالة (هذا صالح حاليًا لـ RSA فقط): .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig \-pkeyopt digest:sha256 .Ve .PP اشتقاق قيمة سر مشترك: .PP .Vb 1 \& openssl pkeyutl \-derive \-inkey key.pem \-peerkey pubkey.pem \-out secret .Ve .PP عرض ست عشري لـ 48 بايت من TLS1 PRF باستخدام الملخص \fBSHA256\fP وسر مشترك وبذرة (seed) تتكون من بايت واحد بقيمة 0xFF: .PP .Vb 2 \& openssl pkeyutl \-kdf TLS1\-PRF \-kdflen 48 \-pkeyopt md:SHA256 \e \& \-pkeyopt hexsecret:ff \-pkeyopt hexseed:ff \-hexdump .Ve .PP اشتقاق مفتاح باستخدام \fBscrypt\fP حيث تُقرأ كلمة المرور من سطر الأوامر: .PP .Vb 2 \& openssl pkeyutl \-kdf scrypt \-kdflen 16 \-pkeyopt_passin pass \e \& \-pkeyopt hexsalt:aabbcc \-pkeyopt N:16384 \-pkeyopt r:8 \-pkeyopt p:1 .Ve .PP الاشتقاق باستخدام نفس الخوارزمية، ولكن مع قراءة المفتاح من متغير البيئة MYPASS: .PP .Vb 2 \& openssl pkeyutl \-kdf scrypt \-kdflen 16 \-pkeyopt_passin pass:env:MYPASS \e \& \-pkeyopt hexsalt:aabbcc \-pkeyopt N:16384 \-pkeyopt r:8 \-pkeyopt p:1 .Ve .PP توقيع بعض البيانات باستخدام مفتاح خاص \fBSM2\fP\|(7) ومعرف محدد: .PP .Vb 2 \& openssl pkeyutl \-sign \-in file \-inkey sm2.key \-out sig \-rawin \-digest sm3 \e \& \-pkeyopt distid:someid .Ve .PP التحقق من بعض البيانات باستخدام شهادة \fBSM2\fP\|(7) ومعرف محدد: .PP .Vb 2 \& openssl pkeyutl \-verify \-certin \-in file \-inkey sm2.cert \-sigfile sig \e \& \-rawin \-digest sm3 \-pkeyopt distid:someid .Ve .PP فك تعمية بعض البيانات باستخدام مفتاح خاص وحشوة OAEP مع استخدام SHA256: .PP .Vb 2 \& openssl pkeyutl \-decrypt \-in file \-inkey key.pem \-out secret \e \& \-pkeyopt rsa_padding_mode:oaep \-pkeyopt rsa_oaep_md:sha256 .Ve .PP إنشاء زوج مفاتيح ML\-DSA وتوقيع البيانات مع سلسلة سياق محددة: .PP .Vb 2 \& $ openssl genpkey \-algorithm ML\-DSA\-65 \-out mldsa65.pem \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt context\-string:example .Ve .PP التحقق من توقيع باستخدام ML\-DSA مع نفس سلسلة السياق: .PP .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey mldsa65.pem \-sigfile sig \-pkeyopt context\-string:example .Ve .PP توليد زوج مفاتيح ML\-KEM واستخدامه للكبسلة: .PP .Vb 3 \& $ openssl genpkey \-algorithm ML\-KEM\-768 \-out mlkem768.pem \& $ openssl pkey \-in mlkem768.pem \-pubout \-out mlkem768_pub.pem \& $ openssl pkeyutl \-encap \-inkey mlkem768_pub.pem \-pubin \-out ciphertext \-secret shared_secret.bin .Ve .PP فك كبسلة سر مشترك باستخدام مفتاح خاص ML\-KEM: .PP .Vb 1 \& $ openssl pkeyutl \-decap \-inkey mlkem768.pem \-in ciphertext \-secret decapsulated_secret.bin .Ve .PP إنشاء زوج مفاتيح SLH\-DSA وتوقيع البيانات: .PP .Vb 2 \& $ openssl genpkey \-algorithm SLH\-DSA\-SHA2\-128s \-out slh\-dsa.pem \& $ openssl pkeyutl \-sign \-in file.txt \-inkey slh\-dsa.pem \-out sig .Ve .PP التحقق من توقيع باستخدام SLH\-DSA: .PP .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey slh\-dsa.pem \-sigfile sig .Ve .SH "انظر أيضًا" .IX الرأس "انظر أيضًا" \&\fBopenssl\fP\|(1), \&\fBopenssl\-genpkey\fP\|(1), \&\fBopenssl\-pkey\fP\|(1), \&\fBopenssl\-rsautl\fP\|(1) \&\fBopenssl\-dgst\fP\|(1), \&\fBopenssl\-rsa\fP\|(1), \&\fBopenssl\-genrsa\fP\|(1), \&\fBopenssl\-kdf\fP\|(1) \&\fBEVP_PKEY_CTX_set_hkdf_md\fP\|(3), \&\fBEVP_PKEY_CTX_set_tls1_prf_md\fP\|(3), .SH التاريخ .IX الرأس التاريخ منذ إصدار OpenSSL 3.5، يتضمن الخيار \fB\-digest\fP الخيار \fB\-rawin\fP، ولم يعد هذان الخياران مطلوبين عند التوقيع أو التحقق باستخدام مفتاح Ed25519 أو Ed448. .PP أيضًا منذ إصدار OpenSSL 3.5، لم يعد الخيار \fB\-kemop\fP مطلوبًا لأي من الخوارزميات المدعومة، إذ إن الـ \fBmode\fP الوحيد المدعوم هو المبدئي الآن. .PP خيار \fB\-engine\fP أصبح مهجوراً في OpenSSL 3.0. .SH "حقوق النسخ" .IX الرأس "حقوق النسخ" حقوق النشر 2006\-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 .