openssl簡介(七)--指令asn1parse
七.????
指令
asn1parse
?
用法:
openssl asn1parse [-inform PEM|DER] [-in filename] [-out filename]
? ?
? ???[-noout] [-offset number] [-length number] [-i] [- structure filename]
? ?
? ???[-strparse offset]
? ?
用途:一個診斷工具,可以對
ASN1
結(jié)構(gòu)的東東進行分析。
? ? ASN1
是什么?一個用來描述對象的標準。要解釋的話,文章可以比解釋
openssl
結(jié)構(gòu)的文章更長。有興趣的話自己去網(wǎng)絡(luò)上找來看吧。
? ?
-inform DER|PEM|TXT
? ?
輸入的格式,
DER
是二進制格式,
PEM
是
base64
編碼格式
,TXT
不用解釋了吧
? ?
-in filename
? ?
輸入文件的名稱,缺省為標準輸入。
? ?
? ? -out filename
? ?
輸入文件的名稱,輸入一般都是
DER
數(shù)據(jù)。如果沒這個項,就沒有東西輸入咯。該項一般都要和
-strparse
一起使用。
? ?
? ? -noout
? ?
不要輸出任何東西
(
不明白有什么用
)
? ?
-offset number
? ?
從文件的那里開始分析,看到
offset
就應(yīng)該知道是什么意思了吧。
? ?
? ? -length number
? ?
一共分析輸入文件的長度的多少,缺省是一直分析到文件結(jié)束。
? ?
? ? -i
? ?
根據(jù)輸出的數(shù)據(jù)自動縮進。
? ?
? ? - structure filename
? ?
當你輸入的文件包含有附加的對象標志符的時候,使用這個。
? ?
這種文件的格式在后面會介紹。
? ?
? ? -strparse offset
? ?
從由
offset
指定的偏移量開始分析
ASN1
對象。當你碰到一個嵌套的對象時,可以反復(fù)使用這個項來一直進到里面的結(jié)構(gòu)捏出你需要的東東。
? ?
一般分析完之后輸入的東東如下:
? ? openssl asn1parse -out temp.ans -i -inform pem < server.crt
? ?
? ???0:d=0 hl=
? ?
? ???4:d=1 hl=
? ?
? ???... ....
? ?
? ???172:d=3 hl=
? ?
? ???187:d=3 hl=
? ?
? ???202:d=2 hl=
? ?
? ???205:d=3 hl=
? ?
? ???... ...
? ?
? ???359:d=3 hl=
? ?
? ???... ...
? ?
本例是一個自簽名的證書。每一行的開始是對象在文件里的偏移量。
d=xx
是結(jié)構(gòu)嵌套的深度。知道
ASN1
結(jié)構(gòu)的人應(yīng)該知道,每一個
SET
或者
SEQUENCE
都會讓嵌套深度增加
1.
? ? hl=xx
表示當前類型的
header
的長度。
1=xx
表示內(nèi)容的八進制的長度。
? ? -i
可以讓輸出的東西容易懂一點。
? ?
如果沒有
ASN.1
的知識,可以省略看這一章。
? ?
本例中
359
行就是證書里的公共密鑰。可以用
-strparse
來看看
? ? openssl asn1parse -out temp.ans -i -inform pem -strparse 359 < server.crt
? ?
? ???0:d=0 hl=
? ?
? ???3:d=1 hl=
? ?
? ???466EEB
? ?
? ???
? ?
? ???
? ?
? ???9FE
? ?
? ???135:d=1 hl=
? ?
不要試圖去看
temp.ans
的內(nèi)容,是二進制來的,看不懂的。
posted on 2006-10-17 15:26 捕風 閱讀(744) 評論(0) 編輯 收藏 所屬分類: java安全