如何在SEQUENCE OF对象中设置默认值

时间:2018-10-16 21:21:36

标签: pyasn1

我开始使用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}?

谢谢

1 个答案:

答案 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