| OPENSSL-ASN1PARSE(1SSL) | OpenSSL | OPENSSL-ASN1PARSE(1SSL) |
نام (NAME)
openssl-asn1parse - دستور تجزیه ساختارهای دادهای ASN.1
خلاصه دستور (SYNOPSIS)
openssl asn1parse [-help] [-inform DER|PEM|B64] [-in filename] [-out filename] [-noout] [-offset number] [-length number] [-i] [-oid filename] [-dump] [-dlimit num] [-strparse offset] [-genstr string] [-genconf file] [-strictpem] [-item name]
توضیحات (DESCRIPTION)
این دستور یک ابزار تشخیصی است که میتواند ساختارهای ASN.1 را تجزیه کند. همچنین میتوان از آن برای استخراج داده از دادههای قالببندیشده با ASN.1 استفاده کرد.
گزینهها (OPTIONS)
- -help
- نمایش پیام راهنمای نحوه استفاده.
- -inform DER|PEM|B64
- قالب ورودی؛ مقدار پیشفرض PEM است. برای جزئیات بیشتر به openssl-format-options(1) مراجعه کنید.
- -in filename
- فایل ورودی؛ پیشفرض ورودی استاندارد است.
- -out filename
- فایل خروجی برای قرار دادن دادههای کدگذاریشده با DER در آن. اگر این گزینه مشخص نشود، هیچ دادهای به خروجی ارسال نخواهد شد. این گزینه بیشترین کاربرد را در ترکیب با گزینه -strparse دارد.
- -noout
- از خروجی دادن نسخه تجزیهشده فایل ورودی خودداری میکند.
- -offset number
- آفست شروع برای آغاز تجزیه؛ مقدار پیشفرض ابتدای فایل است.
- -length number
- تعداد بایتها برای تجزیه؛ مقدار پیشفرض تا پایان فایل است.
- -i
- دندانهدار کردن خروجی متناسب با «عمق» ساختارها.
- -oid filename
- فایلی حاوی شناسههای شیء (OID) اضافی. قالب این فایل در بخش «نکات» در ادامه توضیح داده شده است.
- -dump
- تخلیه و نمایش دادههای ناشناخته در قالب هگزادسیمال (hex).
- -dlimit num
- مشابه -dump، اما تنها num بایت اول به خروجی ارسال میشوند.
- -strparse offset
- بایتهای محتوای شیء ASN.1 را با شروع از offset تجزیه میکند. این گزینه میتواند چندین بار برای کاوش درون یک ساختار تودرتو استفاده شود.
- -genstr string, -genconf file
- تولید دادههای کدگذاریشده بر اساس string، file یا هر دو با استفاده از قالب ASN1_generate_nconf(3). اگر تنها file وجود داشته باشد، رشته از بخش پیشفرض با استفاده از نام asn1 به دست میآید. دادههای کدگذاریشده از تجزیهکننده ASN1 عبور داده شده و به گونهای چاپ میشوند که گویی از یک فایل آمدهاند؛ بنابراین محتویات را میتوان بررسی کرد و با استفاده از گزینه -out درون یک فایل نوشت.
- -strictpem
- در صورت استفاده از این گزینه، گزینه -inform نادیده گرفته میشود. بدون این گزینه، هرگونه داده در یک فایل ورودی با قالب PEM به صورت کدگذاریشده base64 در نظر گرفته میشود و چه دارای نشانگرهای معمول BEGIN و END در PEM باشد و چه نباشد، پردازش میشود. این گزینه هر دادهای را که قبل از شروع نشانگر BEGIN یا پس از یک نشانگر END در فایل PEM قرار دارد، نادیده میگیرد.
- -item name
- تلاش برای رمزگشایی و چاپ دادهها به عنوان یک ASN1_ITEM با نام name. این گزینه میتواند برای چاپ فیلدهای هر ساختار پشتیبانیشده ASN.1 در صورت مشخص بودن نوع آن استفاده شود.
خروجی (OUTPUT)
خروجی به طور معمول شامل خطوطی مانند زیر خواهد بود:
0:d=0 hl=4 l= 681 cons: SEQUENCE
.....
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
.....
این مثال بخشی از یک گواهی خودامضاشده (self-signed) است. هر خط با آفست در مبنای دهدهی (decimal) آغاز میشود. عبارت "d=XX" عمق فعلی را مشخص میکند. عمق در محدوده هر SET یا SEQUENCE افزایش مییابد. عبارت "hl=XX" طول سرآیند (بایتهای برچسب و طول) نوع فعلی را نشان میدهد. عبارت "l=XX" طول بایتهای محتوا را مشخص میکند.
گزینه -i میتواند برای خواناتر کردن خروجی استفاده شود.
برای تفسیر خروجی، مقداری آگاهی از ساختار ASN.1 لازم است.
در این مثال، مقدار BIT STRING در آفست ۲۲۹ کلید عمومی گواهی است. بایتهای محتوای آن حاوی اطلاعات کلید عمومی خواهد بود. این مورد میتواند با استفاده از گزینه "-strparse 229" بررسی شود تا خروجی زیر حاصل گردد:
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
نکات (NOTES)
اگر یک OID بخشی از جدول داخلی OpenSSL نباشد، به شکل عددی نمایش داده میشود (برای نمونه 1.2.3.4). فایلی که به گزینه -oid ارسال میشود، امکان گنجاندن OIDهای اضافی را فراهم میکند. هر خط از سه ستون تشکیل شده است: ستون نخست OID در قالب عددی است و باید پس از آن فاصله (whitespace) قرار گیرد. ستون دوم «نام کوتاه» (short name) است که یک کلمه منفرد بوده و پس از آن فاصله قرار میگیرد. ستون پایانی ادامه خط و نشاندهنده «نام طولانی» (long name) است. به عنوان مثال:
"1.2.3.4 shortName A long name"
برای هر OID که دارای یک نام کوتاه و طولانی مرتبط باشد، این دستور نام طولانی را نمایش خواهد داد.
مثالها (EXAMPLES)
تجزیه یک فایل:
openssl asn1parse -in file.pem
تجزیه یک فایل DER:
openssl asn1parse -inform DER -in file.der
تولید یک UTF8String ساده:
openssl asn1parse -genstr 'UTF8:Hello World'
تولید و ذخیره یک UTF8String در فایل، بدون چاپ خروجی تجزیهشده:
openssl asn1parse -genstr 'UTF8:Hello World' -noout -out utf8.der
تولید با استفاده از یک فایل پیکربندی:
openssl asn1parse -genconf asn1.cnf -noout -out asn1.der
نمونه فایل پیکربندی:
asn1=SEQUENCE:seq_sect [seq_sect] field1=BOOL:TRUE field2=EXP:0, UTF8:some random string
ایرادات (BUGS)
باید گزینههایی برای تغییر قالب خطوط خروجی وجود داشته باشد. خروجی برخی از انواع ASN.1 به خوبی پردازش نمیشود (اگر اصلاً پردازش شود).
همچنین ببینید (SEE ALSO)
حق نشر (COPYRIGHT)
حق نشر 2000-2023 نویسندگان پروژه OpenSSL. کلیه حقوق محفوظ است.
تحت مجوز آپاچی نسخه 2.0 ("مجوز") ارائه شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت کامل شرایط مجوز. میتوانید یک نسخه از مجوز را در فایل LICENSE در بسته توزیع منبع یا در نشانی https://www.openssl.org/source/license.html بیابید.
| 2026-06-09 | 3.5.7 |