ASN.1嵌入式PDV的误码率编码

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,

我正在用D编写一个编解码器,我想编码一个嵌入式PDV,它是根据下面的ASN.1定义的。问题是,在编码
标识
时,我不知道如何在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]
before
syntax
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”出现在什么标记上下文中。

非常感谢!这正是我所需要的!非常感谢你!这正是我所需要的!