.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" 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'. .de IX .. .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 .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "OPENSSL-PKEYUTL 1ssl" .TH OPENSSL-PKEYUTL 1ssl 2026-08-25 3.6.4 OpenSSL .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" openssl\-pkeyutl \- دستور عملیات روی کلیدهای نامتقارن .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkeyutl\fR [\fB\-help\fR] [\fB\-in\fR \fIfile\fR] [\fB\-rawin\fR] [\fB\-digest\fR \fIalgorithm\fR] [\fB\-out\fR \fIfile\fR] [\fB\-secret\fR \fIfile\fR] [\fB\-sigfile\fR \fIfile\fR] [\fB\-inkey\fR \fIfilename\fR|\fIuri\fR] [\fB\-keyform\fR \fBDER\fR|\fBPEM\fR|\fBP12\fR|\fBENGINE\fR] [\fB\-passin\fR \fIarg\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-rev\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-verifyrecover\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-derive\fR] [\fB\-peerkey\fR \fIfile\fR] [\fB\-peerform\fR \fBDER\fR|\fBPEM\fR|\fBP12\fR|\fBENGINE\fR] [\fB\-encap\fR] [\fB\-decap\fR] [\fB\-kdf\fR \fIalgorithm\fR] [\fB\-kdflen\fR \fIlength\fR] [\fB\-kemop\fR \fImode\fR] [\fB\-pkeyopt\fR \fIopt\fR:\fIvalue\fR] [\fB\-pkeyopt_passin\fR \fIopt\fR[:\fIpassarg\fR]] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] [\fB\-engine\fR \fIid\fR] [\fB\-engine_impl\fR] [\fB\-rand\fR \fIfiles\fR] [\fB\-writerand\fR \fIfile\fR] [\fB\-provider\fR \fIname\fR] [\fB\-provider\-path\fR \fIpath\fR] [\fB\-provparam\fR \fI[name:]key=value\fR] [\fB\-propquery\fR \fIpropq\fR] [\fB\-config\fR \fIconfigfile\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" از این دستور می‌توان برای اجرای عملیات سطح پایین روی کلیدهای نامتقارن (عمومی یا خصوصی) با استفاده از هر الگوریتم پشتیبانی‌شده استفاده کرد. .PP به‌طور پیش‌فرض، عملیات امضا (گزینه \fB\-sign\fR را ببینید) در نظر گرفته می‌شود. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-help\fR 4 .IX Item "-help" چاپ پیام راهنمای نحوه استفاده از دستور. .IP "\fB\-in\fR \fIfilename\fR" 4 .IX Item "-in filename" نام فایل ورودی برای خواندن داده‌ها را مشخص می‌کند، یا در صورت مشخص نشدن این گزینه، از ورودی استاندارد استفاده می‌شود. .IP \fB\-rawin\fR 4 .IX Item "-rawin" این گزینه نشان می‌دهد که داده‌های ورودی امضا یا اعتبارسنجی، داده‌های خام هستند که توسط هیچ الگوریتم خلاصه پیام (دایجِست) هش نشده‌اند. به جز در الگوریتم EdDSA، کاربر می‌تواند با استفاده از گزینه \fB\-digest\fR یک الگوریتم دایجِست را مشخص کند. برای الگوریتم‌های امضا مانند RSA، DSA و ECDSA، الگوریتم دایجِست پیش‌فرض SHA256 است. برای SM2، این مقدار SM3 است. .Sp این گزینه تنها همراه با \fB\-sign\fR و \fB\-verify\fR قابل استفاده است. برای EdDSA (الگوریتم‌های Ed25519 و Ed448) از نسخه ۳٫۵ به بعد اوپن‌اس‌اس‌ال این گزینه به‌صورت ضمنی اعمال می‌شود و در نسخه‌های پیشین الزامی بود. .Sp گزینه \fB\-digest\fR از نسخه ۳٫۵ به بعد اوپن‌اس‌اس‌ال متضمن \fB\-rawin\fR است. .IP "\fB\-digest\fR \fIalgorithm\fR" 4 .IX Item "-digest algorithm" این گزینه فقط با \fB\-sign\fR و \fB\-verify\fR قابل استفاده است. این گزینه الگوریتم دایجِست مورد استفاده برای هش کردن داده‌های ورودی را پیش از امضا یا اعتبارسنجی با کلید ورودی مشخص می‌کند. اگر الگوریتم امضا پیش از امضا نیازی به پیش‌پردازش ورودی از طریق یک تابع هش متصل‌شونده نداشته باشد (برای نمونه در EdDSA)، می‌توان از این گزینه صرف‌نظر کرد. اگر از این گزینه صرف‌نظر شود اما الگوریتم امضا به آن نیاز داشته باشد و گزینه \fB\-rawin\fR ارائه شده باشد، یک مقدار پیش‌فرض استفاده خواهد شد (برای جزئیات به \fB\-rawin\fR مراجعه کنید). اگر این گزینه درج شده باشد، از نسخه ۳٫۵ اوپن‌اس‌اس‌ال گزینه \fB\-rawin\fR به‌طور ضمنی در نظر گرفته می‌شود و در نسخه‌های پیشین الزامی بود. .Sp در حال حاضر HashEdDSA (گونه ph یا «پیش‌هش‌شده» از EdDSA) پشتیبانی نمی‌شود، بنابراین گزینه \fB\-digest\fR را نمی‌توان با EdDSA استفاده کرد. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" نام فایل خروجی برای نوشتن را مشخص می‌کند، یا به‌طور پیش‌فرض از خروجی استاندارد استفاده می‌شود. .IP "\fB\-secret\fR \fIfilename\fR" 4 .IX Item "-secret filename" نام فایل خروجی راز مشترک را هنگام اجرای کپسوله‌سازی از طریق گزینه \fB\-encap\fR یا بازگشایی کپسول از طریق گزینه \fB\-decap\fR مشخص می‌کند. گزینه \fB\-encap\fR همچنین یک خروجی متن‌رمزشده (عمومی) مجزا تولید می‌کند که به‌طور پیش‌فرض در خروجی استاندارد نوشته می‌شود، اما از آنجا که داده‌های باینری غیرمتنی هستند، معمولاً به فایلی که با گزینه \fI\-out\fR انتخاب شده است هدایت می‌شود. .IP "\fB\-sigfile\fR \fIfile\fR" 4 .IX Item "-sigfile file" فایل امضا؛ فقط برای عملیات \fB\-verify\fR الزامی و مجاز است. .IP "\fB\-inkey\fR \fIfilename\fR|\fIuri\fR" 4 .IX Item "-inkey filename|uri" کلید ورودی؛ به‌طور پیش‌فرض باید یک کلید خصوصی باشد. .IP "\fB\-keyform\fR \fBDER\fR|\fBPEM\fR|\fBP12\fR|\fBENGINE\fR" 4 .IX Item "-keyform DER|PEM|P12|ENGINE" قالب کلید؛ به‌طور پیش‌فرض مشخص نشده است. برای جزئیات بیشتر به \fBopenssl\-format\-options\fR\|(1) مراجعه کنید. .IP "\fB\-passin\fR \fIarg\fR" 4 .IX Item "-passin arg" منبع عبارت عبور برای کلید ورودی. برای اطلاعات بیشتر در مورد قالب \fIarg\fR به \fBopenssl\-passphrase\-options\fR\|(1) مراجعه کنید. .IP \fB\-pubin\fR 4 .IX Item "-pubin" به‌طور پیش‌فرض یک کلید خصوصی از ورودی کلید خوانده می‌شود. با این گزینه، در عوض یک کلید عمومی خوانده می‌شود. اگر ورودی فاقد کلید عمومی بوده اما حاوی یک کلید خصوصی باشد، بخش عمومی آن استفاده خواهد شد. .IP \fB\-certin\fR 4 .IX Item "-certin" ورودی یک گواهی حاوی کلید عمومی است. .IP \fB\-rev\fR 4 .IX Item "-rev" ترتیب بایت‌های بافر ورودی را معکوس می‌کند. این گزینه برای برخی کتابخانه‌ها (مانند CryptoAPI) که بافر را در قالب اندیان کوچک (little\-endian) نمایش می‌دهند مفید است. این گزینه نمی‌تواند همراه با \fB\-rawin\fR استفاده شود. .IP \fB\-sign\fR 4 .IX Item "-sign" داده‌های ورودی را امضا کرده و نتیجه امضا را در خروجی قرار می‌دهد. این کار نیازمند کلید خصوصی است. استفاده از یک عملیات دایجِست پیام به همراه این گزینه، در صورت کاربرد، توصیه می‌شود؛ برای جزئیات به گزینه‌های \fB\-rawin\fR و \fB\-digest\fR مراجعه کنید. در غیر این صورت، داده‌های ورودی ارائه‌شده با گزینه \fB\-in\fR پیشاپیش یک دایجِست در نظر گرفته می‌شوند، اما این کار ممکن است در برخی موارد (به‌عنوان مثال، RSA با حالت پدینگ پیش‌فرض PKCS#1) نیازمند گزینه اضافی \fB\-pkeyopt\fR \f(CW\*(C`digest:\*(C'\fR\fImd\fR باشد. حتی برای الگوریتم‌های دیگری مانند ECDSA که گزینه اضافی \fB\-pkeyopt\fR بر خروجی امضا تأثیری ندارد، استفاده از آن توصیه می‌شود، زیرا امکان بررسی همخوانی طول ورودی با دایجِست مورد نظر را فراهم می‌سازد. .IP \fB\-verify\fR 4 .IX Item "-verify" داده‌های ورودی را در برابر امضای ارائه‌شده با گزینه \fB\-sigfile\fR اعتبارسنجی کرده و موفقیت یا شکست اعتبارسنجی را مشخص می‌کند. داده‌های ورودی ارائه‌شده با گزینه \fB\-in\fR یک مقدار هش در نظر گرفته می‌شوند مگر آنکه گزینه \fB\-rawin\fR مشخص شده یا ضمنی باشد. در صورت استفاده از داده‌های خام، هنگامی که الگوریتم دایجِست کاربرد دارد، اگرچه ممکن است از امضا استنباط شود یا مقدار پیش‌فرضی به خود بگیرد، بهتر است آن نیز به‌طور صریح مشخص گردد. .IP \fB\-verifyrecover\fR 4 .IX Item "-verifyrecover" امضای ارائه‌شده را اعتبارسنجی کرده و داده‌های بازیابی‌شده (بار داده امضا) را در خروجی قرار می‌دهد. برای نمونه، در مورد RSA PKCS#1 داده‌های بازیابی‌شده همان کدگذاری DER ساختار \fBEMSA\-PKCS\-v1_5\fR از OID الگوریتم دایجِست و مقدار آن است، همان‌گونه که در بخش ۹٫۲ از RFC8017 مشخص شده است. .Sp توجه داشته باشید که در اینجا ورودی ارائه‌شده با گزینه \fB\-in\fR ورودی امضا نیست (مانند گزینه‌های \fB\-sign\fR و \fB\-verify\fR)، بلکه یک مقدار خروجی امضا است که معمولاً با استفاده از گزینه \fB\-sign\fR تولید شده است. .Sp این گزینه فقط برای استفاده با کلیدهای RSA در دسترس است. .IP \fB\-encrypt\fR 4 .IX Item "-encrypt" داده‌های ورودی را با استفاده از یک کلید عمومی رمزگذاری می‌کند. .IP \fB\-decrypt\fR 4 .IX Item "-decrypt" داده‌های ورودی را با استفاده از یک کلید خصوصی رمزگشایی می‌کند. .IP \fB\-derive\fR 4 .IX Item "-derive" یک راز مشترک را با استفاده از کلید خصوصی (EC)DH خودی و کلید طرف مقابل (peer) مشتق می‌کند. .IP "\fB\-peerkey\fR \fIfile\fR" 4 .IX Item "-peerkey file" فایلی شامل کلید عمومی یا خصوصی (EC)DH طرف مقابل که باید در عملیات اشتقاق (توافق) کلید استفاده شود. نوع این کلید باید با نوع کلید خصوصی خودی ارائه‌شده با گزینه \fB\-inkey\fR مطابقت داشته باشد. .IP "\fB\-peerform\fR \fBDER\fR|\fBPEM\fR|\fBP12\fR|\fBENGINE\fR" 4 .IX Item "-peerform DER|PEM|P12|ENGINE" قالب کلید طرف مقابل؛ به‌طور پیش‌فرض مشخص نشده است. برای جزئیات بیشتر به \fBopenssl\-format\-options\fR\|(1) مراجعه کنید. .IP \fB\-encap\fR 4 .IX Item "-encap" استفاده از سازوکار کپسوله‌سازی کلید (\fBKEM\fR) برای \fBکپسوله‌سازی\fR یک راز مشترک برای کلید \fBعمومی\fR طرف مقابل. نتیجه کپسوله‌شده (یا متن‌رمزشده، داده‌های باینری غیرمتنی) به‌طور پیش‌فرض در خروجی استاندارد یا در فایلی که با \fI\-out\fR مشخص شده است نوشته می‌شود. گزینه \fI\-secret\fR نیز باید برای مشخص کردن فایل خروجی برای مقدار راز مشترک مشتق‌شده که در فرایند کپسوله‌سازی تولید می‌شود ارائه گردد. کپسوله‌سازی در حال حاضر با چندین الگوریتم کلید عمومی پشتیبانی می‌شود: ML\-KEM، X25519، X448 و EC. الگوریتم‌های ECX و EC از ساختار DHKEM طبق RFC9180 استفاده می‌کنند. کپسوله‌سازی با کلیدهای RSA نیز از طریق ساختار \&\fBRSASVE\fR پشتیبانی می‌شود. .Sp در سطح API، کپسوله‌سازی و بازگشایی کپسول برای چند الگوریتم ترکیبی (hybrid) شامل ECDHE (بدون DHKEM) به همراه \fBML\-KEM\fR نیز پشتیبانی می‌شود، اما این الگوریتم‌ها اصولاً برای استفاده در TLS طراحی شده‌اند و نباید به‌صورت مستقل به کار روند. به هر روی، قالب استانداردی برای کلیدهای عمومی و خصوصی الگوریتم‌های ترکیبی وجود ندارد، بنابراین فراهم کردن داده‌های کلید مورد نیاز ممکن نیست. .IP \fB\-decap\fR 4 .IX Item "-decap" رمزگشایی یک راز کپسوله‌شده با استفاده از یک کلید \fBخصوصی\fR، برای مشتق کردن همان راز مشترکی که هنگام کپسوله‌سازی راز با کلید عمومی مربوطه حاصل شده بود. راز کپسوله‌شده به‌طور پیش‌فرض از ورودی استاندارد یا از فایلی که با \fB\-in\fR مشخص شده خوانده می‌شود. راز مشترک مشتق‌شده در فایلی که با گزینه \fB\-secret\fR مشخص شده نوشته می‌شود که ارائه آن \fIالزامی\fR است. بازگشایی کپسول در حال حاضر با تعدادی از الگوریتم‌های کلید عمومی پشتیبانی می‌شود: ML\-KEM، X25519، X448 و EC. الگوریتم‌های ECX و EC از ساختار DHKEM طبق RFC9180 استفاده می‌کنند. بازگشایی کپسول با کلیدهای RSA نیز از طریق ساختار \&\fBRSASVE\fR پشتیبانی می‌شود. .IP "\fB\-kemop\fR \fImode\fR" 4 .IX Item "-kemop mode" این گزینه همراه با دستورات \fI\-encap\fR/\fI\-decap\fR استفاده می‌شود و حالت (\fImode\fR) خاص KEM برای الگوریتم کلید را زمانی که روش پیش‌فرضی برای کپسوله‌سازی و بازگشایی رازهای مشترک با نوع کلید انتخابی وجود ندارد مشخص می‌کند. در حال حاضر تمامی الگوریتم‌های پشتیبانی‌شده فقط از \fImode\fR پیش‌فرض خود پشتیبانی می‌کنند، بنابراین این گزینه گرچه موجود است اما الزامی نیست. .IP "\fB\-kdf\fR \fIalgorithm\fR" 4 .IX Item "-kdf algorithm" استفاده از الگوریتم تابع اشتقاق کلید (\fIalgorithm\fR). الگوریتم‌های پشتیبانی‌شده در حال حاضر عبارتند از \fBTLS1\-PRF\fR و \fBHKDF\fR. توجه: معمولاً برای عملکرد صحیح باید پارامترهای اضافی و طول خروجی KDF تنظیم شوند. برای پارامترهای رشته‌ای پشتیبانی‌شده هر الگوریتم به \fBEVP_PKEY_CTX_set_hkdf_md\fR\|(3) و \fBEVP_PKEY_CTX_set_tls1_prf_md\fR\|(3) مراجعه کنید. .IP "\fB\-kdflen\fR \fIlength\fR" 4 .IX Item "-kdflen length" تنظیم طول خروجی برای KDF. .IP "\fB\-pkeyopt\fR \fIopt\fR:\fIvalue\fR" 4 .IX Item "-pkeyopt opt:value" گزینه‌های کلید عمومی که به‌صورت opt:value مشخص می‌شوند. برای جزئیات بیشتر به بخش «یادداشت‌ها» در ادامه مراجعه کنید. .IP "\fB\-pkeyopt_passin\fR \fIopt\fR[:\fIpassarg\fR]" 4 .IX Item "-pkeyopt_passin opt[:passarg]" امکان خواندن یک گزینه کلید عمومی \fIopt\fR از ورودی استاندارد (stdin) یا منبع گذرواژه را فراهم می‌کند. اگر فقط \fIopt\fR مشخص شود، از کاربر در stdin خواسته می‌شود تا گذرواژه‌ای را وارد کند. همچنین می‌توان \fIpassarg\fR را مشخص کرد که می‌تواند هر مقداری باشد که توسط \fBopenssl\-passphrase\-options\fR\|(1) پشتیبانی می‌شود. .IP \fB\-hexdump\fR 4 .IX Item "-hexdump" نمایش هگزادسیمال (hexdump) داده‌های خروجی. .IP \fB\-asn1parse\fR 4 .IX Item "-asn1parse" تجزیه داده‌های خروجی ASN.1 برای بررسی کدگذاری DER آن و چاپ هرگونه خطا. هنگامی که این گزینه با گزینه \fB\-verifyrecover\fR ترکیب شود، در مواردی که یک ساختار کدگذاری‌شده DER از نوع ASN.1 مستقیماً (بدون هش کردن) امضا شده باشد و هنگام بررسی امضا در قالب PKCS#1 v1.5 که دارای کدگذاری DER است، می‌تواند مفید باشد. .IP "\fB\-engine\fR \fIid\fR" 4 .IX Item "-engine id" بخش "Engine Options" را در \fBopenssl\fR\|(1) ببینید. این گزینه منسوخ شده است. .IP \fB\-engine_impl\fR 4 .IX Item "-engine_impl" هنگامی که با گزینه \fB\-engine\fR استفاده شود، مشخص می‌کند که از موتور \fIid\fR برای عملیات رمزنگاری نیز استفاده شود. .IP "\fB\-rand\fR \fIfiles\fR, \fB\-writerand\fR \fIfile\fR" 4 .IX Item "-rand files, -writerand file" برای جزئیات بیشتر بخش "Random State Options" را در \fBopenssl\fR\|(1) ببینید. .IP "\fB\-provider\fR \fIname\fR" 4 .IX Item "-provider name" .PD 0 .IP "\fB\-provider\-path\fR \fIpath\fR" 4 .IX Item "-provider-path path" .IP "\fB\-provparam\fR \fI[name:]key=value\fR" 4 .IX Item "-provparam [name:]key=value" .IP "\fB\-propquery\fR \fIpropq\fR" 4 .IX Item "-propquery propq" .PD بخش "Provider Options" را در \fBopenssl\fR\|(1)، \fBprovider\fR\|(7) و \fBproperty\fR\|(7) ببینید. .IP "\fB\-config\fR \fIconfigfile\fR" 4 .IX Item "-config configfile" بخش "Configuration Option" را در \fBopenssl\fR\|(1) ببینید. .SH "یادداشت‌ها (NOTES)" .IX Header "NOTES" عملیات و گزینه‌های پشتیبانی‌شده بسته به الگوریتم کلید و پیاده‌سازی آن متفاوت است. عملیات و گزینه‌های اوپن‌اس‌اس‌ال در زیر شرح داده شده‌اند. .PP مگر در مواردی که خلاف آن ذکر شده باشد، گزینه \fB\-pkeyopt\fR برای تمامی انواع کلیدهای عمومی از آرگومان \f(CW\*(C`digest:\*(C'\fR\fIalg\fR پشتیبانی می‌کند که دایجِست مورد استفاده برای عملیات امضا و اعتبارسنجی را مشخص می‌سازد. مقدار \fIalg\fR باید نام یک دایجِست باشد، همان‌گونه که در تابع \&\fBEVP_get_digestbyname()\fR استفاده می‌شود؛ برای نمونه \fBsha256\fR. این مقدار برای هش کردن داده‌های ورودی استفاده نمی‌شود، بلکه (توسط برخی الگوریتم‌ها) برای بررسی صحت طول داده‌های ارائه‌شده و ایجاد ساختارهایی که امضا را تشکیل می‌دهند (مانند \fBDigestInfo\fR در امضاهای RSASSA PKCS#1 v1.5) به کار می‌رود. .PP برای مثال، اگر مقدار آرگومان \f(CW\*(C`digest\*(C'\fR در گزینه \fB\-pkeyopt\fR برابر \fBsha256\fR باشد، ورودی امضا یا اعتبارسنجی باید مقدار باینری ۳۲ بایتی حاصل از تابع هش SHA256 باشد. .PP مگر در صورتی که \fB\-rawin\fR استفاده شده باشد یا به‌طور ضمنی اعمال گردد، این دستور داده‌های ورودی را هش نمی‌کند، بلکه داده‌ها را مستقیماً به‌عنوان ورودی الگوریتم امضا استفاده خواهد کرد. بسته به نوع کلید، نوع امضا و حالت پدینگ (padding)، حداکثر طول معقول داده‌های ورودی متفاوت است. در RSA، داده‌های امضاشده نمی‌توانند طولانی‌تر از مدول (modulus) کلید باشند. در مورد ECDSA و DSA، داده‌ها نباید طولانی‌تر از اندازه میدان (field size) باشند، در غیر این صورت بدون اعلان به اندازه میدان برش داده می‌شوند (truncate). در هر صورت، اندازه ورودی نباید بزرگ‌تر از بیشترین اندازه خروجی دایجِست پشتیبانی‌شده یعنی \fBEVP_MAX_MD_SIZE\fR باشد که در حال حاضر ۶۴ بایت است. .SH "الگوریتم RSA (RSA ALGORITHM)" .IX Header "RSA ALGORITHM" الگوریتم RSA عموماً از عملیات encrypt، decrypt، sign، verify و verifyrecover پشتیبانی می‌کند. با این حال، برخی حالت‌های پدینگ فقط از زیرمجموعه‌ای از این عملیات پشتیبانی می‌کنند. مقادیر اضافی \&\fBpkeyopt\fR زیر پشتیبانی می‌شوند: .IP \fBrsa_padding_mode:\fR\fImode\fR 4 .IX Item "rsa_padding_mode:mode" این گزینه حالت پدینگ RSA را تعیین می‌کند. مقادیر مجاز برای \fImode\fR عبارتند از: \fBpkcs1\fR برای پدینگ PKCS#1، \fBnone\fR برای بدون پدینگ، \fBoaep\fR برای حالت \fBOAEP\fR، \fBx931\fR برای حالت X9.31 و \fBpss\fR برای PSS. .Sp در پدینگ PKCS#1، اگر دایجِست پیام تنظیم نشده باشد، داده‌های ارائه‌شده به‌جای استفاده از ساختار \fBDigestInfo\fR، مستقیماً امضا یا اعتبارسنجی می‌شوند. اگر دایجِست تنظیم شده باشد، ساختار \fBDigestInfo\fR استفاده می‌شود و طول آن باید متناسب با نوع دایجِست باشد. .Sp توجه داشته باشید که برای پدینگ \fBpkcs1\fR، به‌عنوان محافظتی در برابر حمله بلیخن‌باخر (Bleichenbacher attack)، در صورت شکست بررسی پدینگ، عملیات رمزگشایی با شکست روبرو نخواهد شد. از گزینه \fBnone\fR و بررسی دستی پیام رمزگشایی‌شده برای اطمینان از اینکه مقدار رمزگشایی‌شده دارای پدینگ صحیح PKCS#1 v1.5 است استفاده کنید. .Sp برای حالت \fBoaep\fR فقط رمزگذاری و رمزگشایی پشتیبانی می‌شود. .Sp برای \fBx931\fR اگر نوع دایجِست تنظیم شده باشد، از آن برای قالب‌بندی داده‌های بلوک استفاده می‌شود، در غیر این صورت بایت اول برای تعیین شناسه دایجِست X9.31 به کار می‌رود. عملیات Sign، verify و verifyrecover در این حالت قابل اجرا هستند. .Sp برای حالت \fBpss\fR فقط امضا و اعتبارسنجی (sign و verify) پشتیبانی می‌شود و نوع دایجِست باید حتماً مشخص گردد. .IP \fBrsa_pss_saltlen:\fR\fIlen\fR 4 .IX Item "rsa_pss_saltlen:len" فقط برای حالت \fBpss\fR، این گزینه طول سالت (salt) را مشخص می‌کند. سه مقدار ویژه پشتیبانی می‌شود: \fBdigest\fR طول سالت را برابر با طول دایجِست قرار می‌دهد؛ \&\fBmax\fR طول سالت را روی حداکثر مقدار مجاز تنظیم می‌کند؛ در هنگام اعتبارسنجی، \&\fBauto\fR باعث می‌شود طول سالت به‌طور خودکار بر اساس ساختار بلوک \fBPSS\fR تعیین گردد. .IP \fBrsa_mgf1_md:\fR\fIdigest\fR 4 .IX Item "rsa_mgf1_md:digest" برای پدینگ PSS و OAEP، دایجِست MGF1 را تعیین می‌کند. اگر دایجِست MGF1 در حالت PSS به‌طور صریح تنظیم نشده باشد، از دایجِست امضا استفاده می‌شود. .IP \fBrsa_oaep_md:\fR\fIdigest\fR 4 .IX Item "rsa_oaep_md:digest" دایجِست مورد استفاده برای تابع هش OAEP را تنظیم می‌کند. در صورت عدم تنظیم صریح، از SHA1 استفاده خواهد شد. .IP \fBrsa_pkcs1_implicit_rejection:\fR\fIflag\fR 4 .IX Item "rsa_pkcs1_implicit_rejection:flag" استفاده از رد ضمنی (implicit rejection) را در رمزگشایی PKCS#1 v1.5 غیرفعال (در صورت تنظیم روی 0) یا فعال (در صورت تنظیم روی 1) می‌کند. در صورت فعال بودن (حالت پیش‌فرض)، کتابخانه به‌عنوان محافظتی در برابر حمله بلیخن‌باخر، یک متن آشکار تصادفی قطعی (deterministic random plaintext) تولید کرده و در صورت شکست بررسی پدینگ به فراخوان‌کننده برمی‌گرداند. هنگام غیرفعال بودن، رسیدگی به خطاهای برگشتی به روشی امن و بدون نشت کانال جانبی (side\-channel) بر عهده فراخوان‌کننده است. .SH "الگوریتم RSA\-PSS (RSA\-PSS ALGORITHM)" .IX Header "RSA-PSS ALGORITHM" الگوریتم RSA\-PSS نسخه‌ای محدودشده از الگوریتم RSA است که فقط از عملیات امضا و اعتبارسنجی (sign و verify) با پدینگ PSS پشتیبانی می‌کند. مقادیر اضافی \fB\-pkeyopt\fR زیر پشتیبانی می‌شوند: .IP "\fBrsa_padding_mode:\fR\fImode\fR, \fBrsa_pss_saltlen:\fR\fIlen\fR, \fBrsa_mgf1_md:\fR\fIdigest\fR" 4 .IX Item "rsa_padding_mode:mode, rsa_pss_saltlen:len, rsa_mgf1_md:digest" این گزینه‌ها همان معنای ذکرشده در الگوریتم \fBRSA\fR را همراه با چند محدودیت اضافی دارند. حالت پدینگ فقط می‌تواند روی \fBpss\fR تنظیم شود که مقدار پیش‌فرض است. .Sp اگر کلید دارای محدودیت‌های پارامتری باشد، دایجِست، دایجِست MGF1 و طول سالت بر روی مقادیر مشخص‌شده در پارامترها تنظیم می‌شوند. دایجِست و MGF قابل تغییر نیستند و طول سالت را نمی‌توان روی مقداری کمتر از حداقل محدودیت تعیین‌شده قرار داد. .SH "الگوریتم DSA (DSA ALGORITHM)" .IX Header "DSA ALGORITHM" الگوریتم DSA فقط از عملیات امضا و اعتبارسنجی پشتیبانی می‌کند. در حال حاضر گزینه اضافی دیگری در \fB\-pkeyopt\fR به جز \fBdigest\fR وجود ندارد. دایجِست SHA256 به‌طور پیش‌فرض در نظر گرفته می‌شود. .SH "الگوریتم DH (DH ALGORITHM)" .IX Header "DH ALGORITHM" الگوریتم DH فقط از عملیات اشتقاق کلید (derivation) پشتیبانی می‌کند و فاقد هرگونه گزینه اضافی \&\fB\-pkeyopt\fR است. .SH "الگوریتم EC (EC ALGORITHM)" .IX Header "EC ALGORITHM" الگوریتم EC از عملیات sign، verify و derive پشتیبانی می‌کند. عملیات sign و verify از ECDSA و derive از ECDH استفاده می‌کند. برای گزینه \fBdigest\fR در \fB\-pkeyopt\fR به‌طور پیش‌فرض مقدار SHA256 در نظر گرفته می‌شود. .SH "الگوریتم‌های X25519 و X448 (X25519 AND X448 ALGORITHMS)" .IX Header "X25519 AND X448 ALGORITHMS" الگوریتم‌های X25519 و X448 فقط از اشتقاق کلید پشتیبانی می‌کنند. در حال حاضر هیچ گزینه اضافی وجود ندارد. .SS "الگوریتم‌های SLH\-DSA (SLH\-DSA ALGORITHMS)" .IX Subsection "SLH-DSA ALGORITHMS" الگوریتم‌های 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\fR 4 .IX Item "-sign" امضای داده‌های ورودی با استفاده از کلید خصوصی SLH\-DSA. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey slhdsa.pem \-out sig .Ve .IP \fB\-verify\fR 4 .IX Item "-verify" اعتبارسنجی امضا با استفاده از کلید عمومی SLH\-DSA. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey slhdsa.pem \-sigfile sig .Ve .PP برای جزئیات بیشتر درباره الگوریتم SLH\-DSA و پیاده‌سازی آن به \fBEVP_PKEY\-SLH\-DSA\fR\|(7) و \fBEVP_SIGNATURE\-SLH\-DSA\fR\|(7) مراجعه کنید. .SH "الگوریتم‌های ML\-DSA\-44، ML\-DSA\-65 و ML\-DSA\-87 (ML\-DSA\-44, ML\-DSA\-65 AND ML\-DSA\-87 ALGORITHMS)" .IX Header "ML-DSA-44, ML-DSA-65 AND ML-DSA-87 ALGORITHMS" الگوریتم‌های ML\-DSA الگوریتم‌های امضای پساکوانتومی هستند که از امضا و اعتبارسنجی پیام‌های «خام» پشتیبانی می‌کنند. هیچ هش‌کردن مقدماتی انجام نمی‌شود. هنگام استفاده از ML\-DSA همراه با pkeyutl، گزینه‌های زیر در دسترس هستند: .IP \fB\-sign\fR 4 .IX Item "-sign" امضای داده‌های ورودی با استفاده از یک کلید خصوصی ML\-DSA. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig .Ve .IP \fB\-verify\fR 4 .IX Item "-verify" اعتبارسنجی امضا با استفاده از یک کلید عمومی ML\-DSA. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-verify \-in file.txt \-inkey mldsa65.pem \-sigfile sig .Ve .IP "\fB\-pkeyopt\fR \fIopt\fR:\fIvalue\fR" 4 .IX Item "-pkeyopt opt:value" گزینه‌های اضافی برای امضا و اعتبارسنجی ML\-DSA: .RS 4 .IP \fBmessage\-encoding\fR:\fIvalue\fR 4 .IX Item "message-encoding:value" حالت کدگذاری پیام مورد استفاده برای امضا را مشخص می‌کند. این گزینه نحوه پردازش پیام ورودی را پیش از امضا کنترل می‌کند. مقادیر معتبر در \fBEVP_SIGNATURE\-ML\-DSA\fR\|(7) شرح داده شده‌اند. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt message\-encoding:1 .Ve .IP \fBtest\-entropy\fR:\fIvalue\fR 4 .IX Item "test-entropy:value" یک مقدار آنتروپی آزمایشی را برای امضای قطعی (deterministic) مشخص می‌کند. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt test\-entropy:abcdefghijklmnopqrstuvwxyz012345 .Ve .IP \fBhextest\-entropy\fR:\fIvalue\fR 4 .IX Item "hextest-entropy:value" یک مقدار آنتروپی آزمایشی را در قالب هگزادسیمال مشخص می‌کند. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt hextest\-entropy:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f .Ve .IP \fBdeterministic\fR:\fIvalue\fR 4 .IX Item "deterministic:value" امضای قطعی را فعال می‌کند. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt deterministic:1 .Ve .IP \fBmu\fR:\fIvalue\fR 4 .IX Item "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 .IP \fBcontext\-string\fR:\fIstring\fR 4 .IX Item "context-string:string" یک رشته زمینه (context 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\fR:\fIstring\fR 4 .IX Item "hexcontext-string:string" یک رشته زمینه را در قالب هگزادسیمال مشخص می‌کند که امکان مقادیر کنترلی باینری را فراهم می‌سازد. برای مثال: .Sp .Vb 1 \& $ openssl pkeyutl \-sign \-in file.txt \-inkey mldsa65.pem \-out sig \-pkeyopt hexcontext\-string:6d79636f6e74657874 .Ve .PP عملیات امضا از گزینه \fBdeterministic\fR:\fIbool\fR پشتیبانی می‌کند؛ در صورتی که \fIbool\fR روی \f(CW1\fR تنظیم شود، یک امضای قطعی با یک ورودی تصادفی ثابت کاملاً صفر تولید می‌شود. به‌طور پیش‌فرض، یا اگر \fIbool\fR برابر با \f(CW0\fR باشد، یک مقدار آنتروپی تصادفی استفاده می‌شود. نتیجه قطعی را همچنین می‌توان با مشخص کردن صریح یک مقدار آنتروپی از طریق پارامتر \fBhextest\-entropy\fR:\fIvalue\fR به دست آورد. امضای قطعی \fBML\-DSA\fR فقط باید در آزمون‌ها استفاده شود. .PP برای جزئیات بیشتر پیرامون الگوریتم‌های ML\-DSA و پیاده‌سازی آن‌ها به \fBEVP_SIGNATURE\-ML\-DSA\fR\|(7) مراجعه کنید. .SH "الگوریتم‌های ML\-KEM\-512، ML\-KEM\-768 و ML\-KEM\-1024 (ML\-KEM\-512, ML\-KEM\-768 AND ML\-KEM\-1024 ALGORITHMS)" .IX Header "ML-KEM-512, ML-KEM-768 AND ML-KEM-1024 ALGORITHMS" الگوریتم‌های ML\-KEM فقط از کپسوله‌سازی و بازگشایی کپسول پشتیبانی می‌کنند. عملیات کپسوله‌سازی از گزینه \fBhexikme\fR:\fIentropy\fR پشتیبانی می‌کند که در آن \fIentropy\fR کدگذاری ۶۴ رقمی هگزادسیمال یک مقدار ۳۲ بایتی است. این گزینه فقط باید در آزمون‌ها استفاده شود؛ مقادیر شناخته‌شده یا فاش‌شده این گزینه ممکن است امنیت راز مشترک تولیدشده را به خطر بیندازند. .PP برای جزئیات بیشتر به \fBEVP_KEM\-ML\-KEM\fR\|(7) مراجعه کنید. .SH "الگوریتم‌های ED25519 و ED448 (ED25519 AND ED448 ALGORITHMS)" .IX Header "ED25519 AND ED448 ALGORITHMS" این الگوریتم‌ها فقط از امضا و اعتبارسنجی پشتیبانی می‌کنند. اوپن‌اس‌اس‌ال فقط گونه‌های «خالص» (pure) این الگوریتم‌ها را پیاده‌سازی می‌کند، بنابراین داده‌های خام می‌توانند بدون اینکه ابتدا هش شوند، مستقیماً به آن‌ها ارسال شوند. اوپن‌اس‌اس‌ال فقط از عملیات «تک‌مرحله‌ای» (oneshot) با این الگوریتم‌ها پشتیبانی می‌کند. این بدان معناست که کل فایل مورد نظر برای امضا/اعتبارسنجی پیش از پردازش باید در حافظه خوانده شود. از امضا یا اعتبارسنجی فایل‌های بسیار حجیم باید خودداری شود. علاوه بر این، اندازه فایل برای عملکرد صحیح باید مشخص باشد. اگر اندازه فایل قابل تعیین نباشد (برای مثال اگر ورودی، ورودی استاندارد stdin باشد)، عملیات امضا یا اعتبارسنجی با شکست روبرو خواهد شد. .SH "الگوریتم SM2 (SM2)" .IX Header "SM2" الگوریتم SM2 از عملیات sign، verify، encrypt و decrypt پشتیبانی می‌کند. برای عملیات sign و verify، الگوریتم SM2 نیازمند ارسال یک رشته شناسه تمایز (Distinguishing ID) است. مقادیر \fB\-pkeyopt\fR زیر پشتیبانی می‌شوند: .IP \fBdistid:\fR\fIstring\fR 4 .IX Item "distid:string" رشته شناسه (ID) مورد استفاده در عملیات امضا یا اعتبارسنجی SM2 را تنظیم می‌کند. هنگام اعتبارسنجی امضای SM2، رشته شناسه باید دقیقاً همان شناسه‌ای باشد که هنگام امضای داده‌ها استفاده شده است؛ در غیر این صورت اعتبارسنجی شکست خواهد خورد. .IP \fBhexdistid:\fR\fIhex_string\fR 4 .IX Item "hexdistid:hex_string" رشته شناسه مورد استفاده در عملیات امضا یا اعتبارسنجی SM2 را تنظیم می‌کند. هنگام اعتبارسنجی امضای SM2، رشته شناسه باید همان شناسه‌ای باشد که هنگام امضای داده‌ها به کار رفته است؛ در غیر این صورت اعتبارسنجی با شکست مواجه می‌شود. رشته شناسه ارائه‌شده با این گزینه باید یک مقدار هگزادسیمال معتبر باشد. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" امضای داده‌ها با استفاده از یک کلید خصوصی: .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 نمایش هگزادسیمال (hexdump) مقدار ۴۸ بایت از TLS1 PRF با استفاده از دایجِست \fBSHA256\fR و راز مشترک و سید (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\fR که در آن گذرواژه از خط فرمان خوانده می‌شود: .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\fR\|(7) و یک شناسه مشخص: .PP .Vb 2 \& openssl pkeyutl \-sign \-in file \-inkey sm2.key \-out sig \-rawin \-digest sm3 \e \& \-pkeyopt distid:someid .Ve .PP اعتبارسنجی داده‌ها با استفاده از یک گواهی \fBSM2\fR\|(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 "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBopenssl\fR\|(1)، \&\fBopenssl\-genpkey\fR\|(1)، \&\fBopenssl\-pkey\fR\|(1)، \&\fBopenssl\-rsautl\fR\|(1)، \&\fBopenssl\-dgst\fR\|(1)، \&\fBopenssl\-rsa\fR\|(1)، \&\fBopenssl\-genrsa\fR\|(1)، \&\fBopenssl\-kdf\fR\|(1)، \&\fBEVP_PKEY_CTX_set_hkdf_md\fR\|(3)، \&\fBEVP_PKEY_CTX_set_tls1_prf_md\fR\|(3) .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" از نسخه ۳٫۵ اوپن‌اس‌اس‌ال، گزینه \fB\-digest\fR متضمن \fB\-rawin\fR است. گزینه \fB\-rawin\fR هنگام امضا یا اعتبارسنجی با نوع کلیدی که از دایجِست پیش‌هش (prehash) پشتیبانی نمی‌کند، مانند Ed25519، Ed448، ML\-DSA یا SLH\-DSA، دیگر الزامی نیست. برای این انواع کلید، \fB\-digest\fR پشتیبانی نمی‌شود. .PP همچنین از نسخه ۳٫۵ اوپن‌اس‌اس‌ال، گزینه \fB\-kemop\fR دیگر برای هیچ‌یک از الگوریتم‌های پشتیبانی‌شده الزامی نیست؛ تنها حالت (\fBmode\fR) پشتیبانی‌شده در حال حاضر حالت پیش‌فرض است. .PP گزینه \fB\-engine\fR در نسخه ۳٫۰ اوپن‌اس‌اس‌ال منسوخ شد. .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر ۲۰۰۶\-۲۰۲۶ نویسندگان پروژه OpenSSL. تمامی حقوق محفوظ است. .PP تحت مجوز آپاچی نسخه ۲٫۰ («مجوز») منتشر شده است. شما نمی‌توانید از این فایل استفاده کنید مگر با رعایت مقررات مجوز. می‌توانید نسخه‌ای از مجوز را در فایل LICENSE در توزیع مبدا یا در دریافت کنید.