ASN.1嵌入式PDV的误码率编码
我正在用D编写一个编解码器,我想编码一个嵌入式PDV,它是根据下面的ASN.1定义的。问题是,在编码ASN.1嵌入式PDV的误码率编码,asn.1,ber,Asn.1,Ber,我正在用D编写一个编解码器,我想编码一个嵌入式PDV,它是根据下面的ASN.1定义的。问题是,在编码标识时,我不知道如何在BER编码的二进制文件中清楚地表明,我提供了与语法字段相关联的对象标识符,而不是与传输语法字段相关联的标识符 EmbeddedPDV ::= [UNIVERSAL 11] IMPLICIT SEQUENCE { identification CHOICE { syntaxes SEQUENCE { abstract OBJECT IDENTIFIER,
标识
时,我不知道如何在BER编码的二进制文件中清楚地表明,我提供了与语法
字段相关联的对象标识符
,而不是与传输语法
字段相关联的标识符
EmbeddedPDV ::= [UNIVERSAL 11] IMPLICIT SEQUENCE {
identification CHOICE {
syntaxes SEQUENCE {
abstract OBJECT IDENTIFIER,
transfer OBJECT IDENTIFIER },
syntax OBJECT IDENTIFIER,
presentation-context-id INTEGER,
context-negotiation SEQUENCE {
presentation-context-id INTEGER,
transfer-syntax OBJECT IDENTIFIER },
transfer-syntax OBJECT IDENTIFIER,
fixed NULL },
data-value-descriptor ObjectDescriptor OPTIONAL,
data-value OCTET STRING }
(WITH COMPONENTS { ... , data-value-descriptor ABSENT })
我知道,如果您使用显式标记,则对于
语法
和传输语法
,都会有上下文特定的标识符标记,但是缺少[0]
或[1]
beforesyntax
和transfer syntax
分别使我不清楚应该如何对其进行编码。是否存在与这些字段关联的假定上下文特定标识符?换句话说,我应该用标识符标签0x81
来编码对象标识符
以指定我正在编码语法
,用标识符标签0x82
来指定我正在编码传输语法
?似乎您有不明确的ASN.1表示法。我能想到的唯一处理方法就是显式标记
如果ASN.1模块在模块定义中具有自动
标记子句,则编码器可能应明确标记ASN.1序列中的所有未标记组件,从标记值0开始设置和选择
只有当您试图序列化的构造数据结构定义中没有已标记的组件时,才应应用该自动标记
这是一个。您似乎有不明确的ASN.1符号。我能想到的唯一处理方法就是显式标记 如果ASN.1模块在模块定义中具有
自动
标记子句,则编码器可能应明确标记ASN.1序列中的所有未标记组件,从标记值0开始设置和选择
只有当您试图序列化的构造数据结构定义中没有已标记的组件时,才应应用该自动标记
以下是一个。嵌入式PDV的“相关类型”在ITU-T X.680(2015)第36.5条中给出,并在给出定义之前包括“假设和自动标记环境”。这样做是为了避免文本与每个字段的隐式标记混淆。这意味着在“标识”中,备选“语法”的隐式标记为[1],而“传输语法”的隐式标记为[4]。这是嵌入式PDV内容关联类型的定义,无论“嵌入式PDV”出现在什么标记上下文中。嵌入式PDV的“关联类型”在ITU-T X.680(2015)第36.5条中给出,并在给出定义之前包括“假设和自动标记环境”。这样做是为了避免文本与每个字段的隐式标记混淆。这意味着在“标识”中,备选“语法”的隐式标记为[1],而“传输语法”的隐式标记为[4]。这是嵌入式PDV内容关联类型的定义,无论“嵌入式PDV”出现在什么标记上下文中。非常感谢!这正是我所需要的!非常感谢你!这正是我所需要的!