OPENSSL-RSAUTL(1ssl) OpenSSL OPENSSL-RSAUTL(1ssl) نام (NAME) openssl-rsautl - ابزار RSA برای امضا و رمزگذاری خلاصه دستور (SYNOPSIS) openssl rsautl [-help] [-in file] [-passin arg] [-rev] [-out file] [-inkey filename|uri] [-keyform DER|PEM|P12|ENGINE] [-pubin] [-certin] [-sign] [-verify] [-encrypt] [-decrypt] [-pkcs] [-x931] [-oaep] [-raw] [-hexdump] [-asn1parse] [-engine id] [-rand files] [-writerand file] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] توضیحات (DESCRIPTION) این دستور منسوخ شده است. به جای آن باید از دستور openssl-pkeyutl(1) استفاده شود. از این دستور می‌توان برای امضا، اعتبارسنجی، رمزگذاری و رمزگشایی داده‌ها با استفاده از الگوریتم RSA استفاده کرد. گزینه‌ها (OPTIONS) -help نمایش یک پیام راهنمای نحوه استفاده. -in filename نام فایل ورودی را برای خواندن داده‌ها مشخص می‌کند، یا در صورت مشخص نشدن این گزینه، از ورودی استاندارد استفاده می‌شود. -passin arg عبارت عبور مورد استفاده در فایل خروجی. به openssl-passphrase-options(1) مراجعه کنید. -rev معکوس کردن ترتیب ورودی. -out filename نام فایل خروجی را برای نوشتن مشخص می‌کند؛ به‌طور پیش‌فرض در خروجی استاندارد نوشته می‌شود. -inkey filename|uri کلید ورودی؛ به‌طور پیش‌فرض باید یک کلید خصوصی RSA باشد. -keyform DER|PEM|P12|ENGINE قالب کلید؛ به‌طور پیش‌فرض مشخص نشده است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید. -pubin به‌طور پیش‌فرض یک کلید خصوصی از ورودی کلید خوانده می‌شود. با این گزینه، در عوض یک کلید عمومی خوانده می‌شود. اگر ورودی حاوی کلید عمومی نباشد اما یک کلید خصوصی داشته باشد، از بخش عمومی آن استفاده می‌شود. -certin ورودی یک گواهی شامل یک کلید عمومی RSA است. -sign داده‌های ورودی را امضا کرده و نتیجه امضاشده را در خروجی قرار می‌دهد. این گزینه به یک کلید خصوصی RSA نیاز دارد. -verify اعتبارسنجی داده‌های ورودی و خروجی دادن داده‌های بازیابی‌شده. -encrypt رمزگذاری داده‌های ورودی با استفاده از یک کلید عمومی RSA. -decrypt رمزگشایی داده‌های ورودی با استفاده از یک کلید خصوصی RSA. -pkcs, -oaep, -x931, -raw پدینگ مورد استفاده: به ترتیب PKCS#1 v1.5 (پیش‌فرض)، PKCS#1 OAEP، ANSI X9.31 یا بدون پدینگ. برای امضاها، فقط -pkcs و -raw قابل استفاده هستند. نکته: به دلیل محافظت در برابر حملات Bleichenbacher، در صورت ناموفق بودن بررسی پدینگ، رمزگشایی با استفاده از حالت PKCS#1 v1.5 خطایی بازنمی‌گرداند. از -raw استفاده کرده و مقدار بازگردانده‌شده را به‌صورت دستی بررسی کنید تا از درستی پدینگ مطمئن شوید. -hexdump تولید خروجی هگزادسیمال (hexdump) از داده‌ها. -asn1parse تجزیه داده‌های خروجی ASN.1؛ این گزینه هنگام ترکیب با گزینه -verify مفید است. -engine id به «Engine Options» در openssl(1) مراجعه کنید. این گزینه منسوخ شده است. -rand files, -writerand file برای جزئیات بیشتر به «Random State Options» در openssl(1) مراجعه کنید. -provider name -provider-path path -provparam [name:]key=value -propquery propq برای جزئیات بیشتر به بخش «گزینه‌های فراهم‌کننده» (Provider Options) در openssl(1)، provider(7) و property(7) مراجعه کنید. نکات (NOTES) از آنجا که این دستور مستقیماً از الگوریتم RSA استفاده می‌کند، فقط برای امضا یا اعتبارسنجی قطعات کوچک داده قابل استفاده است. مثال‌ها (EXAMPLES) مثال‌های معادل این موارد را می‌توان در مستندات دستور غیرمنسوخ openssl-pkeyutl(1) یافت. امضای داده‌ها با استفاده از یک کلید خصوصی: openssl rsautl -sign -in file -inkey key.pem -out sig بازیابی داده‌های امضاشده: openssl rsautl -verify -in sig -inkey key.pem بررسی داده‌های امضاشده خام: 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 قالب‌بندی بلوک PKCS#1 از این خروجی کاملاً مشهود است. اگر این کار با استفاده از encrypt و decrypt انجام می‌شد، بلوک از نوع ۲ (بایت دوم) بود و داده‌های پدینگ تصادفی به جای بایت‌های 0xff مشاهده می‌شد. می‌توان امضای گواهی‌ها را با استفاده از این دستور همراه با openssl-asn1parse(1) تحلیل کرد. مثال خودامضاشده در certs/pca-cert.pem را در نظر بگیرید. اجرای openssl-asn1parse(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 بخش پایانی BIT STRING حاوی امضای اصلی است. این مقدار را می‌توان با دستور زیر استخراج کرد: openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614 کلید عمومی گواهی را می‌توان با دستور زیر استخراج کرد: openssl x509 -in test/testx509.pem -pubkey -noout >pubkey.pem امضا را می‌توان با دستور زیر تحلیل کرد: 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%.. این نسخه تجزیه‌شده ساختار DigestInfo در ASN1 است. همان‌طور که دیده می‌شود، خلاصه پیام استفاده‌شده md5 بوده است. بخش اصلی گواهی که امضا شده است را می‌توان با دستور زیر استخراج کرد: openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4 و خلاصه پیام آن با دستور زیر محاسبه می‌شود: openssl md5 -c tbs MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5 که همان‌طور که مشاهده می‌شود با مقدار بازیابی‌شده بالا مطابقت دارد. همچنین ببینید (SEE ALSO) openssl(1), openssl-pkeyutl(1), openssl-dgst(1), openssl-rsa(1), openssl-genrsa(1) تاریخچه (HISTORY) این دستور در OpenSSL 3.0 منسوخ شد. گزینه -engine در OpenSSL 3.0 منسوخ شد. حق نشر (COPYRIGHT) Copyright 2000-2023 The OpenSSL Project Authors. All Rights Reserved. تحت مجوز آپاچی نسخه ۲.۰ (Apache License 2.0) منتشر شده است («مجوز»). شما نمی‌توانید از این فایل جز در انطباق با این مجوز استفاده کنید. می‌توانید نسخه‌ای از مجوز را در فایل LICENSE در توزیع منبع یا در دریافت کنید. 3.6.4 2026-08-25 OPENSSL-RSAUTL(1ssl)