for x in tuple(components): if isinstance(x, univ.ObjectIdentifier): output.extend(list(x)) else: output.append(int(x)) return univ.ObjectIdentifier(output) class ChangeSubjectName(univ.Sequence): pass ChangeSubjectName.componentType = namedtype.NamedTypes( namedtype.OptionalNamedType('subject', rfc5280.Name()), namedtype.OptionalNamedType('subjectAlt', rfc5280.GeneralNames())) class AttributeValue(univ.Any): pass class CMCStatus(univ.Integer): pass CMCStatus.namedValues = namedval.NamedValues( ('success', 0), ('failed', 2), ('pending', 3), ('noSupport', 4), ('confirmRequired', 5), ('popRequired', 6), ('partial', 7))
AttCertVersionV1.namedValues = namedval.NamedValues( ('v1', 0) ) class AttributeCertificateInfoV1(univ.Sequence): pass AttributeCertificateInfoV1.componentType = namedtype.NamedTypes( namedtype.DefaultedNamedType('version', AttCertVersionV1().subtype(value="v1")), namedtype.NamedType( 'subject', univ.Choice( componentType=namedtype.NamedTypes( namedtype.NamedType('baseCertificateID', rfc3281.IssuerSerial().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('subjectName', rfc5280.GeneralNames().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))) ) ) ), namedtype.NamedType('issuer', rfc5280.GeneralNames()), namedtype.NamedType('signature', rfc5280.AlgorithmIdentifier()), namedtype.NamedType('serialNumber', rfc5280.CertificateSerialNumber()), namedtype.NamedType('attCertValidityPeriod', rfc3281.AttCertValidityPeriod()), namedtype.NamedType('attributes', univ.SequenceOf(componentType=rfc5280.Attribute())), namedtype.OptionalNamedType('issuerUniqueID', rfc5280.UniqueIdentifier()), namedtype.OptionalNamedType('extensions', rfc5280.Extensions()) ) class AttributeCertificateV1(univ.Sequence): pass