[Python ASN1]:GeneralizedTime pyasn1 实现

[Python ASN1]: GeneralizedTime pyasn1 implementation

这是我的 asn1 语法表示:-

MiepPullWtdr ::= [0] SEQUENCE
{
    timeStamp                   [8]   GeneralizedTime
}

我需要帮助来使用 pyasn1 实现相同的功能。

这是我的代码片段:-

from pyasn1.type import univ, namedtype, tag, char, namedval, useful

class MiepPullWtdr(univ.Sequence):
    componentType = namedtype.NamedTypes(namedtype.NamedType('timeStamp', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))

)

miepPullWtdr = MiepPullWtdr()
miepPullWtdr.setComponentByName('timeStamp', '201103081200Z')
print(miepPullWtdr.prettyPrint())

我也试过了,

componentType  = namedtype.NamedTypes(namedtype.NamedType('timeStamp',useful.GeneralizedTime().tagSet(tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))

两者都不起作用并给出一个奇怪的错误重新分级语法错误:-

miepPullWtdr = MiepPullWtdr()
           ^
SyntaxError: invalid syntax

我检查了逗号和括号。一切似乎都是正确的。

有什么帮助吗?谢谢

这是您的代码,除了固定的 componentType 的悬挂括号。适合我:

from pyasn1.type import univ, namedtype, tag, namedval, useful

class MiepPullWtdr(univ.Sequence):
    componentType = namedtype.NamedTypes(
        namedtype.NamedType('timeStamp', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))
    )

miepPullWtdr = MiepPullWtdr()
miepPullWtdr.setComponentByName('timeStamp', '201103081200Z')

print(miepPullWtdr.prettyPrint())