命令介绍
openssl asn1parse命令是一种用来解析ASN.1结构的工具,也能用于从ASN1.1数据中提取数据
用法
openssl asn1parse [-inform PEM|DER] [-in filename] [-out filename] [-noout] [-offset number] [-length number] [-i] [- structure filename] [-strparse offset]
选项
-inform arg input format - one of DER PEM
-in arg input file
-out arg output file (output format is always DER
-noout arg don't produce any output //不打印参数编码的版本信息
-offset arg offset into file //开始数据分析的字节偏移量,分析数据时,不一定从头开始分析,可用指定偏移量,默认从头开始分析。
-length arg length of section in file //需要分析数据的长度值,默认为分析到文件结束。
-i indent entries //输出缩进标记,将一个ASN1实体下的其他对象缩进显示
-dump dump unknown data in hex form //所有数据以十六进制格式显示。
-dlimit arg dump the first arg bytes of unknown data in hex form //此选项只能显示由number指定数目的十六进制数据。
-oid file file of extra oid definitions //一个文件包含的附加的oids标记值
-strparse offset
a series of these can be used to 'dig' into multiple
ASN1 blob wrappings
// 此选项也用于从一个偏移量开始来分析数据,不过,与-offset不一样。-offset分析偏移量之后的所有数据,而-strparse只用于分析一段数据,并且这种数据必须是SET或者SEQUENCE,它只分析本SET或者SEQUENCE范围的数据。
-genstr str string to generate ASN1 structure from
-genconf file file to generate ASN1 structure from
//根据string、file或者用L<ASN1_generate_nconf(3)|ASN1_generate_nconf(3)>格式来产生编码数据的字符串。如果仅仅file被提供,字符串将会从默认的name字段中获取。编码后的数据通过ASN1分析来传输。
结果分析
0:d=0 hl=4 l=1667 cons: SEQUENCE
0 表示节点在整个文件中的偏移长度
d=0 表示节点深度
hl=4 表示节点头字节长度
l=1677表示节点数据字节长度
cons 表示该节点为结构节点,表示包含子节点或者子结构数据
prim 表示该节点为原始节点,包含数据
SEQUENCE、OCTETSTRING等都是ASN.1中定义的数据类型,具体可以参考ASN.1格式说明。
最后一个节点OCTET STRING [HEX DUMP],就是加密后的私钥数据。
示例
解析一个DER编码文件
openssl asn1parse -inform DER -i -in contentd.der
参考
https://www.cnblogs.com/274914765qq/p/4671849.html