2013-08-19 39 views
0

有关原语类型的ASN.1编码机制的问题。 例如,我在test.asn1以下类型定义:类型长度限制如何适用于ASN.1定义

节点ID :: = IA5String(SIZE(1..20))

这里的NodeId可以与最大字符串长度20. 我的问题是:如果分配给NodeID的值超过最大长度20? 它可以通过编码功能(使用BER)吗?谢谢!

回答

0

BER不考虑约束条件。您肯定可以对无效的NodeID进行BER编码,其中的值违反了大小限制。当然,你的工具可能会阻止你这样做,但从ASN.1的角度来看,这是可能的。

+0

谢谢凯文! – user2641335

+0

奇怪,因为我使用BER,但似乎我的系统使用约束OCTET STRING为例,但不是IA5STRING和INTEGER。 “BER没有考虑到限制”的任何参考? – maiky

+0

@maiky您可以查看X.690了解BER编码的完整说明。当BER编码值时,编码不会根据约束的存在而变化;这与PER存在差异,因为在某些情况下,实际上不可能对某些无效值进行编码。同样,这不会使无效值有效,它只是意味着有人可以创建包含无效值的BER数据。 – Kevin