使用 Openssl asn1parse 工具解码 ASN.1 消息

使用 Openssl asn1parse 工具解码 ASN.1 消息

我正在使用openssl asn1parse工具 over ,当我尝试使用以下命令解析消息时,RHEL我有自己的 ASN.1 抽象语法文件,称为:TestModule.asn1

openssl asn1parse -inform DER -genconf TestModule.asn1 -in CDRMessage -out test.txt

我收到以下错误:

Error on line 1 of config file 'TestModule.asn1'
140411047393096:error:0E079065:configuration file routines:DEF_LOAD_BIO:missing equal sign:conf_def.c:362:line 1

请注意,我检查了配置文件,它应该没有错误。

更新:

以下是 TestModule.asn1 文件中前 10 行的列表:

--      File : TestModule.asn1
--

CDRMSG_GA_1040 {iso(1) member-body(2) bsi(826) disc(0) vndr(1249)
Domain (0) charge (5) cDRMSG (1) asn1Module (0)}

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

任何帮助将不胜感激。

答案1

该 openssl 命令不支持 ASN.1 架构。

看着openssl asn1parse 手册页需要-genconf一个 openssl 特定序列化格式的文件:

-genstr 字符串,-genconf 文件

使用格式基于字符串、文件或两者生成编码数据ASN1_generate_nconf。如果仅存在文件,则使用名称 asn1 从默认部分获取字符串。编码数据通过 ASN1 解析器传递并打印出来,就好像它来自文件一样,因此可以使用 out 选项检查内容并将其写入文件。

另外,不应该与, cf-genconf结合使用。-in手册页示例:

openssl asn1parse -in file.pem

和:

openssl asn1parse -genconf asn1.cnf -noout -out asn1.der

也许一些混乱来自术语的不同使用。严格来说,ASN.1 是一种模式语言。因此,ASN.1 结构是模式的一部分。模式指定有效文档的结构。 ASN.1 支持不同的文档编码 - 即所谓的编码规则(例如 BER -> 基本编码规则、DER -> 可区分编码规则)。

有些人不区分这些。例如,它们也将编码文件称为 ASN.1 文件。或者将 DER 标记称为 ASN.1 结构。以 asn1parse 手册页为例:

asn1parse 命令是一个诊断实用程序,可以解析 ASN.1 结构

相关内容