.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.0102 (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 .\" ======================================================================== .\" .IX Title "OPENSSL-ASN1PARSE 1SSL" .TH OPENSSL-ASN1PARSE 1SSL 2026-06-09 3.5.7 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\-asn1parse \- دستور تجزیه ساختارهای داده‌ای ASN.1 .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBasn1parse\fR [\fB\-help\fR] [\fB\-inform\fR \fBDER\fR|\fBPEM\fR|\fBB64\fR] [\fB\-in\fR \fIfilename\fR] [\fB\-out\fR \fIfilename\fR] [\fB\-noout\fR] [\fB\-offset\fR \fInumber\fR] [\fB\-length\fR \fInumber\fR] [\fB\-i\fR] [\fB\-oid\fR \fIfilename\fR] [\fB\-dump\fR] [\fB\-dlimit\fR \fInum\fR] [\fB\-strparse\fR \fIoffset\fR] [\fB\-genstr\fR \fIstring\fR] [\fB\-genconf\fR \fIfile\fR] [\fB\-strictpem\fR] [\fB\-item\fR \fIname\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" این دستور یک ابزار تشخیصی است که می‌تواند ساختارهای ASN.1 را تجزیه کند. همچنین می‌توان از آن برای استخراج داده از داده‌های قالب‌بندی‌شده با ASN.1 استفاده کرد. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP \fB\-help\fR 4 .IX Item "-help" نمایش پیام راهنمای نحوه استفاده. .IP "\fB\-inform\fR \fBDER\fR|\fBPEM\fR|\fBB64\fR" 4 .IX Item "-inform DER|PEM|B64" قالب ورودی؛ مقدار پیش‌فرض \fBPEM\fR است. برای جزئیات بیشتر به \fBopenssl\-format\-options\fR\|(1) مراجعه کنید. .IP "\fB\-in\fR \fIfilename\fR" 4 .IX Item "-in filename" فایل ورودی؛ پیش‌فرض ورودی استاندارد است. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" فایل خروجی برای قرار دادن داده‌های کدگذاری‌شده با DER در آن. اگر این گزینه مشخص نشود، هیچ داده‌ای به خروجی ارسال نخواهد شد. این گزینه بیشترین کاربرد را در ترکیب با گزینه \fB\-strparse\fR دارد. .IP \fB\-noout\fR 4 .IX Item "-noout" از خروجی دادن نسخه تجزیه‌شده فایل ورودی خودداری می‌کند. .IP "\fB\-offset\fR \fInumber\fR" 4 .IX Item "-offset number" آفست شروع برای آغاز تجزیه؛ مقدار پیش‌فرض ابتدای فایل است. .IP "\fB\-length\fR \fInumber\fR" 4 .IX Item "-length number" تعداد بایت‌ها برای تجزیه؛ مقدار پیش‌فرض تا پایان فایل است. .IP \fB\-i\fR 4 .IX Item "-i" دندانه‌دار کردن خروجی متناسب با «عمق» ساختارها. .IP "\fB\-oid\fR \fIfilename\fR" 4 .IX Item "-oid filename" فایلی حاوی شناسه‌های شیء (OID) اضافی. قالب این فایل در بخش «نکات» در ادامه توضیح داده شده است. .IP \fB\-dump\fR 4 .IX Item "-dump" تخلیه و نمایش داده‌های ناشناخته در قالب هگزادسیمال (hex). .IP "\fB\-dlimit\fR \fInum\fR" 4 .IX Item "-dlimit num" مشابه \fB\-dump\fR، اما تنها \fBnum\fR بایت اول به خروجی ارسال می‌شوند. .IP "\fB\-strparse\fR \fIoffset\fR" 4 .IX Item "-strparse offset" بایت‌های محتوای شیء ASN.1 را با شروع از \fBoffset\fR تجزیه می‌کند. این گزینه می‌تواند چندین بار برای کاوش درون یک ساختار تودرتو استفاده شود. .IP "\fB\-genstr\fR \fIstring\fR, \fB\-genconf\fR \fIfile\fR" 4 .IX Item "-genstr string, -genconf file" تولید داده‌های کدگذاری‌شده بر اساس \fIstring\fR، \fIfile\fR یا هر دو با استفاده از قالب \&\fBASN1_generate_nconf\fR\|(3). اگر تنها \fIfile\fR وجود داشته باشد، رشته از بخش پیش‌فرض با استفاده از نام \&\fBasn1\fR به دست می‌آید. داده‌های کدگذاری‌شده از تجزیه‌کننده ASN1 عبور داده شده و به گونه‌ای چاپ می‌شوند که گویی از یک فایل آمده‌اند؛ بنابراین محتویات را می‌توان بررسی کرد و با استفاده از گزینه \fB\-out\fR درون یک فایل نوشت. .IP \fB\-strictpem\fR 4 .IX Item "-strictpem" در صورت استفاده از این گزینه، گزینه \fB\-inform\fR نادیده گرفته می‌شود. بدون این گزینه، هرگونه داده در یک فایل ورودی با قالب PEM به صورت کدگذاری‌شده base64 در نظر گرفته می‌شود و چه دارای نشانگرهای معمول BEGIN و END در PEM باشد و چه نباشد، پردازش می‌شود. این گزینه هر داده‌ای را که قبل از شروع نشانگر BEGIN یا پس از یک نشانگر END در فایل PEM قرار دارد، نادیده می‌گیرد. .IP "\fB\-item\fR \fIname\fR" 4 .IX Item "-item name" تلاش برای رمزگشایی و چاپ داده‌ها به عنوان یک \fBASN1_ITEM\fR با نام \fIname\fR. این گزینه می‌تواند برای چاپ فیلدهای هر ساختار پشتیبانی‌شده ASN.1 در صورت مشخص بودن نوع آن استفاده شود. .SS "خروجی (OUTPUT)" .IX Subsection "Output" خروجی به طور معمول شامل خطوطی مانند زیر خواهد بود: .PP .Vb 1 \& 0:d=0 hl=4 l= 681 cons: SEQUENCE .Ve .PP \&..... .PP .Vb 10 \& 229:d=3 hl=3 l= 141 prim: BIT STRING \& 373:d=2 hl=3 l= 162 cons: cont [ 3 ] \& 376:d=3 hl=3 l= 159 cons: SEQUENCE \& 379:d=4 hl=2 l= 29 cons: SEQUENCE \& 381:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier \& 386:d=5 hl=2 l= 22 prim: OCTET STRING \& 410:d=4 hl=2 l= 112 cons: SEQUENCE \& 412:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier \& 417:d=5 hl=2 l= 105 prim: OCTET STRING \& 524:d=4 hl=2 l= 12 cons: SEQUENCE .Ve .PP \&..... .PP این مثال بخشی از یک گواهی خودامضاشده (self-signed) است. هر خط با آفست در مبنای ده‌دهی (decimal) آغاز می‌شود. عبارت \f(CW\*(C`d=XX\*(C'\fR عمق فعلی را مشخص می‌کند. عمق در محدوده هر SET یا SEQUENCE افزایش می‌یابد. عبارت \f(CW\*(C`hl=XX\*(C'\fR طول سرآیند (بایت‌های برچسب و طول) نوع فعلی را نشان می‌دهد. عبارت \f(CW\*(C`l=XX\*(C'\fR طول بایت‌های محتوا را مشخص می‌کند. .PP گزینه \fB\-i\fR می‌تواند برای خواناتر کردن خروجی استفاده شود. .PP برای تفسیر خروجی، مقداری آگاهی از ساختار ASN.1 لازم است. .PP در این مثال، مقدار BIT STRING در آفست ۲۲۹ کلید عمومی گواهی است. بایت‌های محتوای آن حاوی اطلاعات کلید عمومی خواهد بود. این مورد می‌تواند با استفاده از گزینه \f(CW\*(C`\-strparse 229\*(C'\fR بررسی شود تا خروجی زیر حاصل گردد: .PP .Vb 3 \& 0:d=0 hl=3 l= 137 cons: SEQUENCE \& 3:d=1 hl=3 l= 129 prim: INTEGER :E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B91D8CF55DB3521015460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F486855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422BEA9064A3EE9E1158A56E4A6F47E5897 \& 135:d=1 hl=2 l= 3 prim: INTEGER :010001 .Ve .SH "نکات (NOTES)" .IX Header "NOTES" اگر یک OID بخشی از جدول داخلی OpenSSL نباشد، به شکل عددی نمایش داده می‌شود (برای نمونه 1.2.3.4). فایلی که به گزینه \fB\-oid\fR ارسال می‌شود، امکان گنجاندن OIDهای اضافی را فراهم می‌کند. هر خط از سه ستون تشکیل شده است: ستون نخست OID در قالب عددی است و باید پس از آن فاصله (whitespace) قرار گیرد. ستون دوم «نام کوتاه» (short name) است که یک کلمه منفرد بوده و پس از آن فاصله قرار می‌گیرد. ستون پایانی ادامه خط و نشان‌دهنده «نام طولانی» (long name) است. به عنوان مثال: .PP \&\f(CW\*(C`1.2.3.4 shortName A long name\*(C'\fR .PP برای هر OID که دارای یک نام کوتاه و طولانی مرتبط باشد، این دستور نام طولانی را نمایش خواهد داد. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" تجزیه یک فایل: .PP .Vb 1 \& openssl asn1parse \-in file.pem .Ve .PP تجزیه یک فایل DER: .PP .Vb 1 \& openssl asn1parse \-inform DER \-in file.der .Ve .PP تولید یک UTF8String ساده: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq .Ve .PP تولید و ذخیره یک UTF8String در فایل، بدون چاپ خروجی تجزیه‌شده: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq \-noout \-out utf8.der .Ve .PP تولید با استفاده از یک فایل پیکربندی: .PP .Vb 1 \& openssl asn1parse \-genconf asn1.cnf \-noout \-out asn1.der .Ve .PP نمونه فایل پیکربندی: .PP .Vb 1 \& asn1=SEQUENCE:seq_sect \& \& [seq_sect] \& \& field1=BOOL:TRUE \& field2=EXP:0, UTF8:some random string .Ve .SH "ایرادات (BUGS)" .IX Header "BUGS" باید گزینه‌هایی برای تغییر قالب خطوط خروجی وجود داشته باشد. خروجی برخی از انواع ASN.1 به خوبی پردازش نمی‌شود (اگر اصلاً پردازش شود). .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBopenssl\fR\|(1), \&\fBASN1_generate_nconf\fR\|(3) .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر 2000\-2023 نویسندگان پروژه OpenSSL. کلیه حقوق محفوظ است. .PP تحت مجوز آپاچی نسخه 2.0 ("مجوز") ارائه شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت کامل شرایط مجوز. می‌توانید یک نسخه از مجوز را در فایل LICENSE در بسته توزیع منبع یا در نشانی بیابید.