pyasn1 не устанавливается значение тегированного элемента в Sequence
Разбираюсь с библиотекой pyasn1, столкнулся с проблемой присваивания значения элементу с тегом, вложенному в Sequence. ASN структура:
STest ::= [32] SEQUENCE {
seqof [10] SEQUENCE OF OCTET STRING
}
pyasn1:
from pyasn1.type import univ, namedval, constraint, namedtype, tag, char
class STest(univ.Sequence):
tagSet = univ.Sequence.tagSet.tagImplicitly(tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))
componentType = namedtype.NamedTypes(namedtype.NamedType('seqof', univ.SequenceOf(componentType=univ.OctetString()).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))))
stest = STest()
seq = univ.SequenceOf(componentType=univ.OctetString())
octet1 = univ.OctetString(hexValue='10101010')
seq.setComponents(octet1)
stest["seqof"] = seq
print(stest.prettyPrint())
при выполнении выдает ошибку:
> Traceback (most recent call last): File "test_pyasn1.py", line 87, in stest["seqof"] = seq File "/usr/local/lib/python3.6/dist-packages/pyasn1/type/univ.py", line 2250, in setitem raise KeyError(sys.exc_info()[1]) KeyError: PyAsn1Error('Component value is tag-incompatible:
Если у элемента SequenceOf убрать тег:
class STest(univ.Sequence):
tagSet = univ.Sequence.tagSet.tagImplicitly(tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 32))
componentType = namedtype.NamedTypes(namedtype.NamedType('seqof', univ.SequenceOf(componentType=univ.OctetString())))
программа выполняется:
STest:seqof=SequenceOf:0x10101010
python3.8, pyasn1 0.4.8
Подскажите, как заполнить Sequence.
Спасибо!