我在使用 pyasn1 设置组件时遇到了一个奇怪的问题。我构造并清空证书并在其中放入要签名的证书:
empty = rfc2459.Certificate()
empty['tbsCertificate'] = rfc2459.TBSCertificate()
现在我想设置一个版本,该版本因实际版本对象而失败,但通过自动创建类型来工作:
empty['tbsCertificate']['version'] = rfc2459.Version('v3')
# PyAsn1Error: Component type error Version('v1') vs Version('v3')
empty['tbsCertificate']['version'] = 'v3'
# works
鉴于这两个比较相等,这很奇怪:
empty['tbsCertificate']['version'] == rfc2459.Version('v3')
# True
那么为什么第一种方法不起作用呢?