【发布时间】:2018-05-30 19:42:31
【问题描述】:
以下是 RFC 5280 定义 X.509 扩展字段的方式:
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
-- contains the DER encoding of an ASN.1 value
-- corresponding to the extension type identified
-- by extnID
}
当我使用 pyasn1 解码器时,我会得到一个对象foo,它的foo['extnValue'].asOctets() 可以被进一步解码,并使用适合foo['extnID'] 的架构再次调用解码器。
问题:假设在我的应用程序中有一个特殊的extnID,是否可以在 pyasn1 中定义一个模式:(a) 不接受任何 OBJECT IDENTIFIER,只接受特殊的; (b) 通过 OCTET STRING 包装器的步骤以根据适当的特殊“子模式”解码有效负载?
我可以通过代码中的特殊情况逻辑来做到这一点,但如果支持,我更愿意定义一个特殊情况架构。
【问题讨论】:
标签: pyasn1