.\" -*- 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-RSAUTL 1ssl" .TH OPENSSL-RSAUTL 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\-rsautl \- ابزار RSA برای امضا و رمزگذاری .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBrsautl\fR [\fB\-help\fR] [\fB\-in\fR \fIfile\fR] [\fB\-passin\fR \fIarg\fR] [\fB\-rev\fR] [\fB\-out\fR \fIfile\fR] [\fB\-inkey\fR \fIfilename\fR|\fIuri\fR] [\fB\-keyform\fR \fBDER\fR|\fBPEM\fR|\fBP12\fR|\fBENGINE\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-pkcs\fR] [\fB\-x931\fR] [\fB\-oaep\fR] [\fB\-raw\fR] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] [\fB\-engine\fR \fIid\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] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" این دستور منسوخ شده است. به جای آن باید از دستور \fBopenssl\-pkeyutl\fR\|(1) استفاده شود. .PP از این دستور می‌توان برای امضا، اعتبارسنجی، رمزگذاری و رمزگشایی داده‌ها با استفاده از الگوریتم RSA استفاده کرد. .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\-passin\fR \fIarg\fR" 4 .IX Item "-passin arg" عبارت عبور مورد استفاده در فایل خروجی. به \fBopenssl\-passphrase\-options\fR\|(1) مراجعه کنید. .IP \fB\-rev\fR 4 .IX Item "-rev" معکوس کردن ترتیب ورودی. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" نام فایل خروجی را برای نوشتن مشخص می‌کند؛ به‌طور پیش‌فرض در خروجی استاندارد نوشته می‌شود. .IP "\fB\-inkey\fR \fIfilename\fR|\fIuri\fR" 4 .IX Item "-inkey filename|uri" کلید ورودی؛ به‌طور پیش‌فرض باید یک کلید خصوصی RSA باشد. .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\-pubin\fR 4 .IX Item "-pubin" به‌طور پیش‌فرض یک کلید خصوصی از ورودی کلید خوانده می‌شود. با این گزینه، در عوض یک کلید عمومی خوانده می‌شود. اگر ورودی حاوی کلید عمومی نباشد اما یک کلید خصوصی داشته باشد، از بخش عمومی آن استفاده می‌شود. .IP \fB\-certin\fR 4 .IX Item "-certin" ورودی یک گواهی شامل یک کلید عمومی RSA است. .IP \fB\-sign\fR 4 .IX Item "-sign" داده‌های ورودی را امضا کرده و نتیجه امضاشده را در خروجی قرار می‌دهد. این گزینه به یک کلید خصوصی RSA نیاز دارد. .IP \fB\-verify\fR 4 .IX Item "-verify" اعتبارسنجی داده‌های ورودی و خروجی دادن داده‌های بازیابی‌شده. .IP \fB\-encrypt\fR 4 .IX Item "-encrypt" رمزگذاری داده‌های ورودی با استفاده از یک کلید عمومی RSA. .IP \fB\-decrypt\fR 4 .IX Item "-decrypt" رمزگشایی داده‌های ورودی با استفاده از یک کلید خصوصی RSA. .IP "\fB\-pkcs\fR, \fB\-oaep\fR, \fB\-x931\fR, \fB\-raw\fR" 4 .IX Item "-pkcs, -oaep, -x931, -raw" پدینگ مورد استفاده: به ترتیب PKCS#1 v1.5 (پیش‌فرض)، PKCS#1 OAEP، ANSI X9.31 یا بدون پدینگ. برای امضاها، فقط \fB\-pkcs\fR و \fB\-raw\fR قابل استفاده هستند. .Sp نکته: به دلیل محافظت در برابر حملات Bleichenbacher، در صورت ناموفق بودن بررسی پدینگ، رمزگشایی با استفاده از حالت PKCS#1 v1.5 خطایی بازنمی‌گرداند. از \fB\-raw\fR استفاده کرده و مقدار بازگردانده‌شده را به‌صورت دستی بررسی کنید تا از درستی پدینگ مطمئن شوید. .IP \fB\-hexdump\fR 4 .IX Item "-hexdump" تولید خروجی هگزادسیمال (hexdump) از داده‌ها. .IP \fB\-asn1parse\fR 4 .IX Item "-asn1parse" تجزیه داده‌های خروجی ASN.1؛ این گزینه هنگام ترکیب با گزینه \&\fB\-verify\fR مفید است. .IP "\fB\-engine\fR \fIid\fR" 4 .IX Item "-engine id" به «Engine Options» در \fBopenssl\fR\|(1) مراجعه کنید. این گزینه منسوخ شده است. .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) مراجعه کنید. .SH "نکات (NOTES)" .IX Header "NOTES" از آنجا که این دستور مستقیماً از الگوریتم RSA استفاده می‌کند، فقط برای امضا یا اعتبارسنجی قطعات کوچک داده قابل استفاده است. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" مثال‌های معادل این موارد را می‌توان در مستندات دستور غیرمنسوخ \fBopenssl\-pkeyutl\fR\|(1) یافت. .PP امضای داده‌ها با استفاده از یک کلید خصوصی: .PP .Vb 1 \& openssl rsautl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP بازیابی داده‌های امضاشده: .PP .Vb 1 \& openssl rsautl \-verify \-in sig \-inkey key.pem .Ve .PP بررسی داده‌های امضاشده خام: .PP .Vb 1 \& openssl rsautl \-verify \-in sig \-inkey key.pem \-raw \-hexdump \& \& 0000 \- 00 01 ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0010 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0020 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0030 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0040 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0050 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0060 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0070 \- ff ff ff ff 00 68 65 6c\-6c 6f 20 77 6f 72 6c 64 .....hello world .Ve .PP قالب‌بندی بلوک PKCS#1 از این خروجی کاملاً مشهود است. اگر این کار با استفاده از encrypt و decrypt انجام می‌شد، بلوک از نوع ۲ (بایت دوم) بود و داده‌های پدینگ تصادفی به جای بایت‌های 0xff مشاهده می‌شد. .PP می‌توان امضای گواهی‌ها را با استفاده از این دستور همراه با \fBopenssl\-asn1parse\fR\|(1) تحلیل کرد. مثال خودامضاشده در \fIcerts/pca\-cert.pem\fR را در نظر بگیرید. اجرای \fBopenssl\-asn1parse\fR\|(1) به صورت زیر خروجی زیر را به دست می‌دهد: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \& \& 0:d=0 hl=4 l= 742 cons: SEQUENCE \& 4:d=1 hl=4 l= 591 cons: SEQUENCE \& 8:d=2 hl=2 l= 3 cons: cont [ 0 ] \& 10:d=3 hl=2 l= 1 prim: INTEGER :02 \& 13:d=2 hl=2 l= 1 prim: INTEGER :00 \& 16:d=2 hl=2 l= 13 cons: SEQUENCE \& 18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 29:d=3 hl=2 l= 0 prim: NULL \& 31:d=2 hl=2 l= 92 cons: SEQUENCE \& 33:d=3 hl=2 l= 11 cons: SET \& 35:d=4 hl=2 l= 9 cons: SEQUENCE \& 37:d=5 hl=2 l= 3 prim: OBJECT :countryName \& 42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU \& .... \& 599:d=1 hl=2 l= 13 cons: SEQUENCE \& 601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 612:d=2 hl=2 l= 0 prim: NULL \& 614:d=1 hl=3 l= 129 prim: BIT STRING .Ve .PP بخش پایانی BIT STRING حاوی امضای اصلی است. این مقدار را می‌توان با دستور زیر استخراج کرد: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out sig \-noout \-strparse 614 .Ve .PP کلید عمومی گواهی را می‌توان با دستور زیر استخراج کرد: .PP .Vb 1 \& openssl x509 \-in test/testx509.pem \-pubkey \-noout >pubkey.pem .Ve .PP امضا را می‌توان با دستور زیر تحلیل کرد: .PP .Vb 1 \& openssl rsautl \-in sig \-verify \-asn1parse \-inkey pubkey.pem \-pubin \& \& 0:d=0 hl=2 l= 32 cons: SEQUENCE \& 2:d=1 hl=2 l= 12 cons: SEQUENCE \& 4:d=2 hl=2 l= 8 prim: OBJECT :md5 \& 14:d=2 hl=2 l= 0 prim: NULL \& 16:d=1 hl=2 l= 16 prim: OCTET STRING \& 0000 \- f3 46 9e aa 1a 4a 73 c9\-37 ea 93 00 48 25 08 b5 .F...Js.7...H%.. .Ve .PP این نسخه تجزیه‌شده ساختار DigestInfo در ASN1 است. همان‌طور که دیده می‌شود، خلاصه پیام استفاده‌شده md5 بوده است. بخش اصلی گواهی که امضا شده است را می‌توان با دستور زیر استخراج کرد: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out tbs \-noout \-strparse 4 .Ve .PP و خلاصه پیام آن با دستور زیر محاسبه می‌شود: .PP .Vb 2 \& openssl md5 \-c tbs \& MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5 .Ve .PP که همان‌طور که مشاهده می‌شود با مقدار بازیابی‌شده بالا مطابقت دارد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBopenssl\fR\|(1), \&\fBopenssl\-pkeyutl\fR\|(1), \&\fBopenssl\-dgst\fR\|(1), \&\fBopenssl\-rsa\fR\|(1), \&\fBopenssl\-genrsa\fR\|(1) .SH "تاریخچه (HISTORY)" .IX Header "HISTORY" این دستور در OpenSSL 3.0 منسوخ شد. .PP گزینه .B \-engine در OpenSSL 3.0 منسوخ شد. .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright 2000\-2023 The OpenSSL Project Authors. All Rights Reserved. .PP تحت مجوز آپاچی نسخه ۲.۰ (Apache License 2.0) منتشر شده است («مجوز»). شما نمی‌توانید از این فایل جز در انطباق با این مجوز استفاده کنید. می‌توانید نسخه‌ای از مجوز را در فایل LICENSE در توزیع منبع یا در دریافت کنید.