OpenSSL命令---asn1parse

用途:asn1parse命令是一种用来诊断ASN.1结构的工具,也能用于从ASN1.1数据中提取数据。

用法:

openssl  asn1parse [-inform PEM|DER] [-in filename] [-out filename] [-noout] [-offset number] [-length number] [-i][ -dump ] [dlimit number] [-oid filename] [-strparse offset] [-genstr string ] [-genconf file] 


选项说明:

-inform PEM|DER:输入内容的格式,一般为PEMbase64编码格式)和DER(是二进制格式)两种,默认为PEM

-in filename:输入文件名,默认为标准输入。

-out filename:输出文件名,默认为标准输出。如果这个选项没有被提出,则没有数据输出。和B<-strparse>选项合并使用时,这个选项非常有用。给定一个PEM文件,采用此选项可用生成一个DER编码的文件。

-noout:不打印参数编码的版本信息。

-offset number:开始数据分析的字节偏移量,分析数据时,不一定从头开始分析,可用指定偏移量,默认从头开始分析。

-length number:需要分析数据的长度值,默认为分析到文件结束。

-i:标记实体,输出缩进标记,将一个ASN1实体下的其他对象缩进显示。此选项非默认选项,加上此选项后,显示更易看懂。

-dump:所有数据以十六进制格式显示。

dlimit number:与-dump不同,-dump显示所有的数据,而此选项只能显示由number指定数目的十六进制数据。

-oid filename:一个文件包含的附加的oids标记值。

-strparse offset:此选项也用于从一个偏移量开始来分析数据,不过,与-offset不一样。-offset分析偏移量之后的所有数据,而-strparse只用于分析一段数据,并且这种数据必须是SET或者SEQUENCE,它只分析本SET或者SEQUENCE范围的数据。

-genstr string-genconf  file:根据stringfile或者用L<ASN1_generate_nconf(3)|ASN1_generate_nconf(3)>格式来产生编码数据的字符串。如果仅仅file被提供,字符串将会从默认的name字段中获取。编码后的数据通过ASN1分析来传输。

输出

代表性的输出内容为:

此命令 读取并显示root.crt证书(证书格式为pem)里面的内容值:

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          

.....

   

这个实例是一个自签名的证书中的一部分。每行的开始代表偏移量,为小数。B<d=XX>表示的是此项的深度,深度是根据SET SEQUENCE的范围来递增的。B<hl=XX>给出的是目前ASN.1类型的头长度(标记和长度八位组)。B<l=XX>给出了内容长度。B<prim>表示的是OBJECT表示的是ASN1类型;:sha1WithRSAEncryption表示oid

B<-i>选项可以被用于设置输出的可读性操作。

一些ASN.1结构的知识需要在输出中翻译。

在这个实例中,BIT STRING在第229列中代表证书公钥值。可以用选项B<-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。每一行由3列组成,第一列是数值型的OID,必须用空格隔开。第二列式一个“short name”,也要用空格隔开;最后一列依赖于这一行,他是“long time”。B<asn1parse>显示长名字。实例如下:

C<1.2.3.4     shortName          A long name>

使用实例:

分析一个文件:

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

 此命令除了显示上面内容外,并生成一个der编码的文件。

openssl asn1parse –in c:\server.pem –out c:\server.cer

 此命令显示上面的内容,但是有缩进。

openssl.exe asn1parse –in c:\server.pem –i

此命令从偏移量26开始分析,到结束。注意,26从前面命令的结果得到。

openssl.exe asn1parse –in c:\server.pem –i –offset 26

此命令从偏移量13进行分析,分析长度为11

openssl.exe asn1parse –in c:\server.pem –i –offset 13 –length 11
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值