[英]How to express a ASN.1 value with universal tags when encoded using BER encoding rule?
根据http://asn1-playground.oss.com/ ,使用以下ASN.1模式,
Test DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
A ::= SEQUENCE {
int INTEGER,
seq SEQUENCE { int INTEGER, bool BOOLEAN },
u UTF8String
}
END
以下值(采用ASN.1值表示法格式)
a A ::=
{
int 1,
seq { int 2, bool TRUE },
u "ABC"
}
使用BER编码规则在以下18个字节中表示
30 10
80 01 01
A1 06
80 01 02
81 01 FF
82 03 414243
SEQUENCE
[0] 01
[1]
[0] 02
[1] FF
[2] 414243
因此,似乎该值是用应用程序标记表示的。 您能否帮助说明是否以及如何使用通用标签将值转换为以下18个字节
30 10
02 01 01
30 06
02 01 02
01 01 FF
0C 03 414243
由CyberChef解析后,可以得到以下更好的ASN.1树
SEQUENCE
INTEGER 01..(total 1bytes)..01
SEQUENCE
INTEGER 02..(total 1bytes)..02
BOOLEAN TRUE
UNKNOWN(0C) 414243
非常感谢您的努力!
看来原因是在模块的开头使用了“ AUTOMATIC TAGS”,对所有SEQUENCE,SET和CHOICE类型的组件强制执行上下文特定的标签。 如果将“ AUTOMATIC”更改为“ EXPLICIT”,则该值可以用通用标签表示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.