これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションの1つを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドasnXNUMXparsesslです。
プログラム:
NAME
asn1parse-ASN.1解析ツール
SYNOPSIS
opensslの asn1parse [-知らせる PEM | DER] [-に ファイル名] [-でる ファイル名] [-noout] [-オフセット
数] [-長さ 数] [-i] [-oid ファイル名] [-投げ捨てる] [-dlimit NUM] [-strparse オフセット]
[-genstr string] [-genconf file]
DESCRIPTION
この asn1parse コマンドは、ASN.1構造を解析できる診断ユーティリティです。 それはまたすることができます
ASN.1形式のデータからデータを抽出するために使用されます。
OPTIONS
-知らせる DER | PEM
入力フォーマット。 DER バイナリ形式であり、 PEM (デフォルト)はbase64でエンコードされています。
-に ファイル名
入力ファイル、デフォルトは標準入力です
-でる ファイル名
DERでエンコードされたデータを配置する出力ファイル。 このオプションが存在しない場合は、
データが出力されます。 これは、 -strparse オプションを選択します。
-noout
解析されたバージョンの入力ファイルを出力しないでください。
-オフセット 数
解析を開始するための開始オフセット。デフォルトはファイルの開始です。
-長さ 数
解析するバイト数。デフォルトはファイルの終わりまでです。
-i 構造の「深さ」に従って出力をインデントします。
-oid ファイル名
追加のオブジェクト識別子(OID)を含むファイル。 このファイルの形式は次のとおりです。
以下の注セクションで説明されています。
-投げ捨てる
不明なデータをXNUMX進形式でダンプします。
-dlimit NUM
ような -投げ捨てる、しかし最初のものだけ NUM バイトが出力されます。
-strparse オフセット
で始まるASN.1オブジェクトのコンテンツオクテットを解析します オフセット。 このオプションは
ネストされた構造に「ドリルダウン」するために複数回使用されました。
-genstr string, -genconf file
に基づいてエンコードされたデータを生成する string, file または両方を使用して ASN1_generate_nconf(3)
フォーマット。 もしも file のみが存在する場合、文字列はデフォルトセクションから取得されます
名前を使用して asn1。 エンコードされたデータはASN1パーサーを通過し、印刷されます
ファイルからのものであるかのように、内容を調べて書き込みを行うことができます。
を使用してファイル でる オプションを選択します。
出力
通常、出力には次のような行が含まれます。
0:d = 0 hl = 4 l = 681短所:シーケンス
.....
229:d = 3 hl = 3 l = 141プリム:ビット文字列
373:d = 2 hl = 3 l = 162短所:続き[3]
376:d = 3 hl = 3 l = 159短所:シーケンス
379:d = 4 hl = 2 l = 29短所:シーケンス
381:d = 5 hl = 2 l = 3 prim:OBJECT:X509v3サブジェクトキー識別子
386:d = 5 hl = 2 l = 22プリム:オクテット文字列
410:d = 4 hl = 2 l = 112短所:シーケンス
412:d = 5 hl = 2 l = 3 prim:OBJECT:X509v3 Authority Key Identifier
417:d = 5 hl = 2 l = 105プリム:オクテット文字列
524:d = 4 hl = 2 l = 12短所:シーケンス
.....
この例は、自己署名証明書の一部です。 各行は、のオフセットで始まります
XNUMX進数。 d = XX 現在の深さを指定します。 深さは、任意の範囲内で増加します
SETまたはSEQUENCE。 hl = XX 現在のヘッダーの長さ(タグと長さのオクテット)を示します
タイプ。 l = XX 内容のオクテットの長さを示します。
この -i オプションを使用して、出力を読みやすくすることができます。
出力を解釈するには、ASN.1構造に関するある程度の知識が必要です。
この例では、オフセット229のビット文字列が証明書の公開鍵です。 内容
このオクテットには、公開鍵情報が含まれます。 これは、を使用して調べることができます
オプション -strparse 229 得た:
0:d = 0 hl = 3 l = 137短所:シーケンス
3:d=1 hl=3 l= 129 prim: INTEGER :E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B91D8CF55DB3521015460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F486855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422BEA9064A3EE9E1158A56E4A6F47E5897
135:d = 1 hl = 2 l = 3プリム:INTEGER:010001
注意事項
OIDがOpenSSLの内部テーブルの一部でない場合、数値形式で表されます
(たとえば、1.2.3.4)。 に渡されたファイル -oid オプションを使用すると、追加のOIDを
含まれています。 各行はXNUMXつの列で構成され、最初の列は数値のOIDです。
フォーマットし、その後に空白を続ける必要があります。 XNUMX番目の列は「短縮名」です。
XNUMXつの単語の後に空白が続きます。 最後の列は行の残りの部分であり、
「長い名前」。 asn1parse 長い名前を表示します。 例:
「1.2.3.4shortName長い名前」
例
ファイルを解析します。
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:ランダムな文字列
onworks.netサービスを使用してオンラインでasn1parsesslを使用する