我开始使用pyasn1库,我对如何在SEQUENCE OF对象中设置默认值有疑问。我的ASN1结构如下:
Asn1Def DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
CasinoPlayer ::= SEQUENCE
{
name UTF8String (SIZE(1..16)),
luckyNumbers SEQUENCE (SIZE(3)) OF INTEGER DEFAULT {7,7,7}
}
END
我了解了如何使用CasinoPlayer
对象在namedtype.DefaultedNamedType
SEQUENCE中创建DEFAULT字段,并使用子类型添加了SIZE
约束,但是如何初始化默认值{7,7, 7}?
谢谢
答案 0 :(得分:0)
我认为它应该像这样:
_parseDimensions()
此外,您可能需要将标签分配给每种ASN.1类型(如 AUTOMATIC TAGS 子句所隐含)。
更新:
实际上,这应该可以,但是不能!幸运的是,the fix应当使默认值class CasinoPlayer(Sequence):
componentType = NamedTypes(
NamedType(
'name',
UTF8String(
ConstraintsIntersection(
ValueSizeConstraint(1, 16)
)
)
),
DefaultedNamedType(
'luckyNumbers',
SequenceOf(
componentType=Integer(),
sizeSpec=ConstraintsIntersection(
ValueSizeConstraint(3, 3)
)
).setComponentByPosition(0, 7)
.setComponentByPosition(1, 7)
.setComponentByPosition(2, 7)
)
)
传播到SequenceOf
字段,只要它是Sequence
。