Scroll to navigation

OPENSSL-ASN1PARSE(1SSL) OpenSSL OPENSSL-ASN1PARSE(1SSL)

الاسم

openssl-asn1parse - أمر تحليل ASN.1

موجز

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]

الوصف

هذا الأمر هو أداة تشخيصية يمكنها تحليل بنى ASN.1. يمكن استخدامه أيضًا لاستخراج البيانات من البيانات المنسقة بصيغة ASN.1.

الخيارات

اطبع رسالة الاستخدام.
صيغة الإدخال؛ المبدئي هو PEM. انظر openssl-format-options(1) للتفاصيل.
ملف الإدخال، المبدئي هو الإدخال القياسي.
ملف الإخراج لوضع البيانات المرمزة بصيغة DER فيه. إذا لم يكن هذا الخيار موجودًا، فلن يُخرج أي بيانات. هذا مفيد جدًا عند دمجه مع خيار -strparse.
لا تُخرج النسخة المُحلّلة من ملف الإدخال.
الإزاحة الابتدائية لبدء التحليل، المبدئي هو بداية الملف.
عدد البايتات المراد تحليلها، المبدئي هو حتى نهاية الملف.
يُزيح الإخراج وفقًا "لعمق" البنى.
ملف يحتوي على معرّفات كائن إضافية (OIDs). صيغة هذا الملف موصوفة في قسم الملاحظات أدناه.
أفرغ البيانات غير المعروفة بصيغة ست عشرية.
مثل -dump، لكن فقط أول num بايت تُخرج.
تحليل ثمانيات المحتوى لكائن ASN.1 بدءًا من offset. يمكن استخدام هذا الخيار عدة مرات لـ"التعمق" في بنية متداخلة.
توليد بيانات مرمزة بناءً على string أو file أو كليهما باستخدام تنسيق ASN1_generate_nconf(3). إذا كان file فقط موجودًا، فسيتم الحصول على السلسلة من القسم المبدئي باستخدام الاسم asn1. تُمرر البيانات المرمزة عبر محلل ASN1 وتُطبع كما لو أنها جاءت من ملف، وبالتالي يمكن فحص المحتويات وكتابتها إلى ملف باستخدام الخيار -out.
إذا استُخدم هذا الخيار، فسيتم تجاهل -inform. بدون هذا الخيار، ستُعالج أي بيانات في ملف إدخال بتنسيق PEM على أنها مرمزة base64 وتُعالج سواء احتوت على علامات PEM BEGIN وEND العادية أم لا. سيتجاهل هذا الخيار أي بيانات قبل بداية علامة BEGIN، أو بعد علامة END في ملف PEM.
محاولة فك تشفير البيانات وطباعتها كـ ASN1_ITEM name. يمكن استخدام هذا لطباعة حقول أي بنية ASN.1 مدعومة إذا كان النوع معروفًا.

المخرجات

سيحتوي المخرج عادةً على أسطر مثل هذه:

  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

.....

هذا المثال جزء من شهادة موقعة ذاتيًا. يبدأ كل سطر بالإزاحة بالعدد العشري. يحدد "d=XX" العمق الحالي. يزداد العمق ضمن نطاق أي SET أو SEQUENCE. يعطي "hl=XX" طول الرأس (ثمانيات العلامة والطول) للنوع الحالي. يعطي "l=XX" طول ثمانيات المحتوى.

يمكن استخدام الخيار -i لجعل المخرج أكثر قابلية للقراءة.

يلزم بعض المعرفة ببنية ASN.1 لتفسير المخرج.

في هذا المثال، BIT STRING عند الإزاحة 229 هو المفتاح العام للشهادة. ستحتوي ثمانيات المحتوى لهذا على معلومات المفتاح العام. يمكن فحص هذا باستخدام الخيار "-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

ملاحظات

إذا لم يكن OID جزءًا من الجدول الداخلي لـ OpenSSL، فسيُعرض بصيغة رقمية (مثال 1.2.3.4). يسمح الملف المُمرّر للخيار -oid بتضمين OIDs إضافية. يتكون كل سطر من ثلاثة أعمدة، العمود الأول هو OID بالصيغة الرقمية ويتبعه فراغ. العمود الثاني هو "الاسم المختصر" وهو كلمة واحدة يتبعها فراغ. العمود الأخير هو باقي السطر وهو "الاسم الطويل". مثال:

"1.2.3.4 shortName A long name"

لأي OID له اسم قصير وطويل مرتبط، سيعرض هذا الأمر الاسم الطويل.

أمثلة

تحليل ملف:

 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

العلل

يجب وجود خيارات لتغيير تنسيق أسطر المخرجات. مخرجات بعض أنواع ASN.1 لا تُعالَج جيدًا (إن عُولجت أصلًا).

انظر أيضًا

openssl(1), ASN1_generate_nconf(3)

حقوق النسخ

حقوق النشر 2000-2023 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

7 أبريل 2026 3.6.2