| # |
| # This file is part of pyasn1-modules software. |
| # |
| # Created by Russ Housley. |
| # |
| # Copyright (c) 2019, Vigil Security, LLC |
| # License: http://snmplabs.com/pyasn1/license.html |
| # |
| # Clearance Sponsor Attribute |
| # |
| # ASN.1 source from: |
| # https://www.rfc-editor.org/rfc/rfc5917.txt |
| # https://www.rfc-editor.org/errata/eid4558 |
| # https://www.rfc-editor.org/errata/eid5883 |
| # |
| |
| from pyasn1.type import char |
| from pyasn1.type import constraint |
| from pyasn1.type import namedtype |
| from pyasn1.type import univ |
| |
| from pyasn1_modules import rfc5280 |
| |
| |
| # DirectoryString is the same as RFC 5280, except for two things: |
| # 1. the length is limited to 64; |
| # 2. only the 'utf8String' choice remains because the ASN.1 |
| # specification says: ( WITH COMPONENTS { utf8String PRESENT } ) |
| |
| class DirectoryString(univ.Choice): |
| componentType = namedtype.NamedTypes( |
| namedtype.NamedType('utf8String', char.UTF8String().subtype( |
| subtypeSpec=constraint.ValueSizeConstraint(1, 64))), |
| ) |
| |
| |
| # Clearance Sponsor Attribute |
| |
| id_clearanceSponsor = univ.ObjectIdentifier((2, 16, 840, 1, 101, 2, 1, 5, 68)) |
| |
| ub_clearance_sponsor = univ.Integer(64) |
| |
| |
| at_clearanceSponsor = rfc5280.Attribute() |
| at_clearanceSponsor['type'] = id_clearanceSponsor |
| at_clearanceSponsor['values'][0] = DirectoryString() |
| |
| |
| # Add to the map of Attribute Type OIDs to Attributes in rfc5280.py. |
| |
| _certificateAttributesMapUpdate = { |
| id_clearanceSponsor: DirectoryString(), |
| } |
| |
| rfc5280.certificateAttributesMap.update(_certificateAttributesMapUpdate) |