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.

الخيارات

-help
    اطبع رسالة الاستخدام.

-inform DER|PEM|B64
    صيغة الإدخال؛ المبدئي هو PEM. انظر openssl-format-options(1) للتفاصيل.

-in اسم_الملف
    ملف الإدخال، المبدئي هو الإدخال القياسي.

-out اسم_الملف
    ملف الإخراج لوضع البيانات المرمزة بصيغة DER فيه. إذا لم يكن هذا الخيار موجودًا، فلن يُخرج أي بيانات. هذا مفيد جدًا عند دمجه مع خيار -strparse.

-noout
    لا تُخرج النسخة المحللة من ملف الإدخال.

-offset number
    الإزاحة الابتدائية لبدء التحليل، المبدئي هو بداية الملف.

-length number
    عدد البايتات المراد تحليلها، المبدئي هو حتى نهاية الملف.

-i  يُزيح الإخراج وفقًا "لعمق" البنى.

-oid filename
    ملف يحتوي على معرّفات كائن إضافية (OIDs). صيغة هذا الملف موصوفة في قسم الملاحظات أدناه.

-dump
    أفرغ البيانات غير المعروفة بصيغة ست عشرية.

-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 وتُعالج سواء احتوت على علامات PEM BEGIN وEND العادية أم لا. سيتجاهل هذا الخيار أي بيانات قبل بداية علامة BEGIN، أو بعد علامة END في ملف PEM.

-item name
    محاولة فك تشفير البيانات وطباعتها كـ 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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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