rfc2459.py (42214B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\pyasn1_modules\rfc2459.py 2 from pyasn1.type import tag, namedtype, namedval, univ, constraint, char, useful 3 MAX = 64 4 ub_name = univ.Integer(32768) 5 ub_common_name = univ.Integer(64) 6 ub_locality_name = univ.Integer(128) 7 ub_state_name = univ.Integer(128) 8 ub_organization_name = univ.Integer(64) 9 ub_organizational_unit_name = univ.Integer(64) 10 ub_title = univ.Integer(64) 11 ub_match = univ.Integer(128) 12 ub_emailaddress_length = univ.Integer(128) 13 ub_common_name_length = univ.Integer(64) 14 ub_country_name_alpha_length = univ.Integer(2) 15 ub_country_name_numeric_length = univ.Integer(3) 16 ub_domain_defined_attributes = univ.Integer(4) 17 ub_domain_defined_attribute_type_length = univ.Integer(8) 18 ub_domain_defined_attribute_value_length = univ.Integer(128) 19 ub_domain_name_length = univ.Integer(16) 20 ub_extension_attributes = univ.Integer(256) 21 ub_e163_4_number_length = univ.Integer(15) 22 ub_e163_4_sub_address_length = univ.Integer(40) 23 ub_generation_qualifier_length = univ.Integer(3) 24 ub_given_name_length = univ.Integer(16) 25 ub_initials_length = univ.Integer(5) 26 ub_integer_options = univ.Integer(256) 27 ub_numeric_user_id_length = univ.Integer(32) 28 ub_organization_name_length = univ.Integer(64) 29 ub_organizational_unit_name_length = univ.Integer(32) 30 ub_organizational_units = univ.Integer(4) 31 ub_pds_name_length = univ.Integer(16) 32 ub_pds_parameter_length = univ.Integer(30) 33 ub_pds_physical_address_lines = univ.Integer(6) 34 ub_postal_code_length = univ.Integer(16) 35 ub_surname_length = univ.Integer(40) 36 ub_terminal_id_length = univ.Integer(24) 37 ub_unformatted_address_length = univ.Integer(180) 38 ub_x121_address_length = univ.Integer(16) 39 40 class UniversalString(char.UniversalString): 41 pass 42 43 44 class BMPString(char.BMPString): 45 pass 46 47 48 class UTF8String(char.UTF8String): 49 pass 50 51 52 id_pkix = univ.ObjectIdentifier('1.3.6.1.5.5.7') 53 id_pe = univ.ObjectIdentifier('1.3.6.1.5.5.7.1') 54 id_qt = univ.ObjectIdentifier('1.3.6.1.5.5.7.2') 55 id_kp = univ.ObjectIdentifier('1.3.6.1.5.5.7.3') 56 id_ad = univ.ObjectIdentifier('1.3.6.1.5.5.7.48') 57 id_qt_cps = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.1') 58 id_qt_unotice = univ.ObjectIdentifier('1.3.6.1.5.5.7.2.2') 59 id_ad_ocsp = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.1') 60 id_ad_caIssuers = univ.ObjectIdentifier('1.3.6.1.5.5.7.48.2') 61 62 class AttributeValue(univ.Any): 63 pass 64 65 66 class AttributeType(univ.ObjectIdentifier): 67 pass 68 69 70 class AttributeTypeAndValue(univ.Sequence): 71 componentType = namedtype.NamedTypes(namedtype.NamedType('type', AttributeType()), namedtype.NamedType('value', AttributeValue())) 72 73 74 class Attribute(univ.Sequence): 75 componentType = namedtype.NamedTypes(namedtype.NamedType('type', AttributeType()), namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))) 76 77 78 id_at = univ.ObjectIdentifier('2.5.4') 79 id_at_name = univ.ObjectIdentifier('2.5.4.41') 80 id_at_sutname = id_at_surname = univ.ObjectIdentifier('2.5.4.4') 81 id_at_givenName = univ.ObjectIdentifier('2.5.4.42') 82 id_at_initials = univ.ObjectIdentifier('2.5.4.43') 83 id_at_generationQualifier = univ.ObjectIdentifier('2.5.4.44') 84 85 class X520name(univ.Choice): 86 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_name)))) 87 88 89 id_at_commonName = univ.ObjectIdentifier('2.5.4.3') 90 91 class X520CommonName(univ.Choice): 92 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_common_name)))) 93 94 95 id_at_localityName = univ.ObjectIdentifier('2.5.4.7') 96 97 class X520LocalityName(univ.Choice): 98 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_locality_name)))) 99 100 101 id_at_stateOrProvinceName = univ.ObjectIdentifier('2.5.4.8') 102 103 class X520StateOrProvinceName(univ.Choice): 104 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_state_name)))) 105 106 107 id_at_organizationName = univ.ObjectIdentifier('2.5.4.10') 108 109 class X520OrganizationName(univ.Choice): 110 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organization_name)))) 111 112 113 id_at_organizationalUnitName = univ.ObjectIdentifier('2.5.4.11') 114 115 class X520OrganizationalUnitName(univ.Choice): 116 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_organizational_unit_name)))) 117 118 119 id_at_title = univ.ObjectIdentifier('2.5.4.12') 120 121 class X520Title(univ.Choice): 122 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_title)))) 123 124 125 id_at_dnQualifier = univ.ObjectIdentifier('2.5.4.46') 126 127 class X520dnQualifier(char.PrintableString): 128 pass 129 130 131 id_at_countryName = univ.ObjectIdentifier('2.5.4.6') 132 133 class X520countryName(char.PrintableString): 134 subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(2, 2) 135 136 137 pkcs_9 = univ.ObjectIdentifier('1.2.840.113549.1.9') 138 emailAddress = univ.ObjectIdentifier('1.2.840.113549.1.9.1') 139 140 class Pkcs9email(char.IA5String): 141 subtypeSpec = char.IA5String.subtypeSpec + constraint.ValueSizeConstraint(1, ub_emailaddress_length) 142 143 144 class DSAPrivateKey(univ.Sequence): 145 componentType = namedtype.NamedTypes(namedtype.NamedType('version', univ.Integer(namedValues=namedval.NamedValues(('v1', 0)))), namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('g', univ.Integer()), namedtype.NamedType('public', univ.Integer()), namedtype.NamedType('private', univ.Integer())) 146 147 148 class RelativeDistinguishedName(univ.SetOf): 149 componentType = AttributeTypeAndValue() 150 151 152 class RDNSequence(univ.SequenceOf): 153 componentType = RelativeDistinguishedName() 154 155 156 class Name(univ.Choice): 157 componentType = namedtype.NamedTypes(namedtype.NamedType('', RDNSequence())) 158 159 160 class DirectoryString(univ.Choice): 161 componentType = namedtype.NamedTypes(namedtype.NamedType('teletexString', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.NamedType('printableString', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.NamedType('universalString', char.UniversalString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX))), namedtype.NamedType('ia5String', char.IA5String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))) 162 163 164 class AlgorithmIdentifier(univ.Sequence): 165 componentType = namedtype.NamedTypes(namedtype.NamedType('algorithm', univ.ObjectIdentifier()), namedtype.OptionalNamedType('parameters', univ.Any())) 166 167 168 class Extension(univ.Sequence): 169 componentType = namedtype.NamedTypes(namedtype.NamedType('extnID', univ.ObjectIdentifier()), namedtype.DefaultedNamedType('critical', univ.Boolean('False')), namedtype.NamedType('extnValue', univ.Any())) 170 171 172 class Extensions(univ.SequenceOf): 173 componentType = Extension() 174 sizeSpec = univ.SequenceOf.sizeSpec + constraint.ValueSizeConstraint(1, MAX) 175 176 177 class SubjectPublicKeyInfo(univ.Sequence): 178 componentType = namedtype.NamedTypes(namedtype.NamedType('algorithm', AlgorithmIdentifier()), namedtype.NamedType('subjectPublicKey', univ.BitString())) 179 180 181 class UniqueIdentifier(univ.BitString): 182 pass 183 184 185 class Time(univ.Choice): 186 componentType = namedtype.NamedTypes(namedtype.NamedType('utcTime', useful.UTCTime()), namedtype.NamedType('generalTime', useful.GeneralizedTime())) 187 188 189 class Validity(univ.Sequence): 190 componentType = namedtype.NamedTypes(namedtype.NamedType('notBefore', Time()), namedtype.NamedType('notAfter', Time())) 191 192 193 class CertificateSerialNumber(univ.Integer): 194 pass 195 196 197 class Version(univ.Integer): 198 namedValues = namedval.NamedValues(('v1', 0), ('v2', 1), ('v3', 2)) 199 200 201 class TBSCertificate(univ.Sequence): 202 componentType = namedtype.NamedTypes(namedtype.DefaultedNamedType('version', Version('v1').subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('serialNumber', CertificateSerialNumber()), namedtype.NamedType('signature', AlgorithmIdentifier()), namedtype.NamedType('issuer', Name()), namedtype.NamedType('validity', Validity()), namedtype.NamedType('subject', Name()), namedtype.NamedType('subjectPublicKeyInfo', SubjectPublicKeyInfo()), namedtype.OptionalNamedType('issuerUniqueID', UniqueIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('subjectUniqueID', UniqueIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('extensions', Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))) 203 204 205 class Certificate(univ.Sequence): 206 componentType = namedtype.NamedTypes(namedtype.NamedType('tbsCertificate', TBSCertificate()), namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), namedtype.NamedType('signatureValue', univ.BitString())) 207 208 209 class RevokedCertificate(univ.Sequence): 210 componentType = namedtype.NamedTypes(namedtype.NamedType('userCertificate', CertificateSerialNumber()), namedtype.NamedType('revocationDate', Time()), namedtype.OptionalNamedType('crlEntryExtensions', Extensions())) 211 212 213 class TBSCertList(univ.Sequence): 214 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('version', Version()), namedtype.NamedType('signature', AlgorithmIdentifier()), namedtype.NamedType('issuer', Name()), namedtype.NamedType('thisUpdate', Time()), namedtype.OptionalNamedType('nextUpdate', Time()), namedtype.OptionalNamedType('revokedCertificates', univ.SequenceOf(componentType=RevokedCertificate())), namedtype.OptionalNamedType('crlExtensions', Extensions().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))) 215 216 217 class CertificateList(univ.Sequence): 218 componentType = namedtype.NamedTypes(namedtype.NamedType('tbsCertList', TBSCertList()), namedtype.NamedType('signatureAlgorithm', AlgorithmIdentifier()), namedtype.NamedType('signature', univ.BitString())) 219 220 221 pkcs_1 = univ.ObjectIdentifier('1.2.840.113549.1.1') 222 rsaEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.1') 223 md2WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.2') 224 md5WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.4') 225 sha1WithRSAEncryption = univ.ObjectIdentifier('1.2.840.113549.1.1.5') 226 id_dsa_with_sha1 = univ.ObjectIdentifier('1.2.840.10040.4.3') 227 228 class Dss_Sig_Value(univ.Sequence): 229 componentType = namedtype.NamedTypes(namedtype.NamedType('r', univ.Integer()), namedtype.NamedType('s', univ.Integer())) 230 231 232 dhpublicnumber = univ.ObjectIdentifier('1.2.840.10046.2.1') 233 234 class ValidationParms(univ.Sequence): 235 componentType = namedtype.NamedTypes(namedtype.NamedType('seed', univ.BitString()), namedtype.NamedType('pgenCounter', univ.Integer())) 236 237 238 class DomainParameters(univ.Sequence): 239 componentType = namedtype.NamedTypes(namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('g', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('j', univ.Integer()), namedtype.OptionalNamedType('validationParms', ValidationParms())) 240 241 242 id_dsa = univ.ObjectIdentifier('1.2.840.10040.4.1') 243 244 class Dss_Parms(univ.Sequence): 245 componentType = namedtype.NamedTypes(namedtype.NamedType('p', univ.Integer()), namedtype.NamedType('q', univ.Integer()), namedtype.NamedType('g', univ.Integer())) 246 247 248 teletex_domain_defined_attributes = univ.Integer(6) 249 250 class TeletexDomainDefinedAttribute(univ.Sequence): 251 componentType = namedtype.NamedTypes(namedtype.NamedType('type', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))), namedtype.NamedType('value', char.TeletexString())) 252 253 254 class TeletexDomainDefinedAttributes(univ.SequenceOf): 255 componentType = TeletexDomainDefinedAttribute() 256 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) 257 258 259 terminal_type = univ.Integer(23) 260 261 class TerminalType(univ.Integer): 262 subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, ub_integer_options) 263 namedValues = namedval.NamedValues(('telex', 3), ('teletelex', 4), ('g3-facsimile', 5), ('g4-facsimile', 6), ('ia5-terminal', 7), ('videotex', 8)) 264 265 266 class PresentationAddress(univ.Sequence): 267 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('pSelector', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('sSelector', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('tSelector', univ.OctetString().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('nAddresses', univ.SetOf(componentType=univ.OctetString()).subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3), subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))) 268 269 270 extended_network_address = univ.Integer(22) 271 272 class E163_4_address(univ.Sequence): 273 componentType = namedtype.NamedTypes(namedtype.NamedType('number', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_number_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('sub-address', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_e163_4_sub_address_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))) 274 275 276 class ExtendedNetworkAddress(univ.Choice): 277 componentType = namedtype.NamedTypes(namedtype.NamedType('e163-4-address', E163_4_address()), namedtype.NamedType('psap-address', PresentationAddress().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))) 278 279 280 class PDSParameter(univ.Set): 281 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('printable-string', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length))), namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)))) 282 283 284 local_postal_attributes = univ.Integer(21) 285 286 class LocalPostalAttributes(PDSParameter): 287 pass 288 289 290 class UniquePostalName(PDSParameter): 291 pass 292 293 294 unique_postal_name = univ.Integer(20) 295 poste_restante_address = univ.Integer(19) 296 297 class PosteRestanteAddress(PDSParameter): 298 pass 299 300 301 post_office_box_address = univ.Integer(18) 302 303 class PostOfficeBoxAddress(PDSParameter): 304 pass 305 306 307 street_address = univ.Integer(17) 308 309 class StreetAddress(PDSParameter): 310 pass 311 312 313 class UnformattedPostalAddress(univ.Set): 314 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('printable-address', univ.SequenceOf(componentType=char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_parameter_length)).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_pds_physical_address_lines)))), namedtype.OptionalNamedType('teletex-string', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_unformatted_address_length)))) 315 316 317 physical_delivery_office_name = univ.Integer(10) 318 319 class PhysicalDeliveryOfficeName(PDSParameter): 320 pass 321 322 323 physical_delivery_office_number = univ.Integer(11) 324 325 class PhysicalDeliveryOfficeNumber(PDSParameter): 326 pass 327 328 329 extension_OR_address_components = univ.Integer(12) 330 331 class ExtensionORAddressComponents(PDSParameter): 332 pass 333 334 335 physical_delivery_personal_name = univ.Integer(13) 336 337 class PhysicalDeliveryPersonalName(PDSParameter): 338 pass 339 340 341 physical_delivery_organization_name = univ.Integer(14) 342 343 class PhysicalDeliveryOrganizationName(PDSParameter): 344 pass 345 346 347 extension_physical_delivery_address_components = univ.Integer(15) 348 349 class ExtensionPhysicalDeliveryAddressComponents(PDSParameter): 350 pass 351 352 353 unformatted_postal_address = univ.Integer(16) 354 postal_code = univ.Integer(9) 355 356 class PostalCode(univ.Choice): 357 componentType = namedtype.NamedTypes(namedtype.NamedType('numeric-code', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length))), namedtype.NamedType('printable-code', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_postal_code_length)))) 358 359 360 class PhysicalDeliveryCountryName(univ.Choice): 361 componentType = namedtype.NamedTypes(namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))), namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))) 362 363 364 class PDSName(char.PrintableString): 365 subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_pds_name_length) 366 367 368 physical_delivery_country_name = univ.Integer(8) 369 370 class TeletexOrganizationalUnitName(char.TeletexString): 371 subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) 372 373 374 pds_name = univ.Integer(7) 375 teletex_organizational_unit_names = univ.Integer(5) 376 377 class TeletexOrganizationalUnitNames(univ.SequenceOf): 378 componentType = TeletexOrganizationalUnitName() 379 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units) 380 381 382 teletex_personal_name = univ.Integer(4) 383 384 class TeletexPersonalName(univ.Set): 385 componentType = namedtype.NamedTypes(namedtype.NamedType('surname', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('given-name', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('initials', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('generation-qualifier', char.TeletexString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))) 386 387 388 teletex_organization_name = univ.Integer(3) 389 390 class TeletexOrganizationName(char.TeletexString): 391 subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length) 392 393 394 teletex_common_name = univ.Integer(2) 395 396 class TeletexCommonName(char.TeletexString): 397 subtypeSpec = char.TeletexString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length) 398 399 400 class CommonName(char.PrintableString): 401 subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_common_name_length) 402 403 404 common_name = univ.Integer(1) 405 406 class ExtensionAttribute(univ.Sequence): 407 componentType = namedtype.NamedTypes(namedtype.NamedType('extension-attribute-type', univ.Integer().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, ub_extension_attributes), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('extension-attribute-value', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))) 408 409 410 class ExtensionAttributes(univ.SetOf): 411 componentType = ExtensionAttribute() 412 subtypeSpec = univ.SetOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_extension_attributes) 413 414 415 class BuiltInDomainDefinedAttribute(univ.Sequence): 416 componentType = namedtype.NamedTypes(namedtype.NamedType('type', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_type_length))), namedtype.NamedType('value', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_defined_attribute_value_length)))) 417 418 419 class BuiltInDomainDefinedAttributes(univ.SequenceOf): 420 componentType = BuiltInDomainDefinedAttribute() 421 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_domain_defined_attributes) 422 423 424 class OrganizationalUnitName(char.PrintableString): 425 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_unit_name_length) 426 427 428 class OrganizationalUnitNames(univ.SequenceOf): 429 componentType = OrganizationalUnitName() 430 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organizational_units) 431 432 433 class PersonalName(univ.Set): 434 componentType = namedtype.NamedTypes(namedtype.NamedType('surname', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_surname_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('given-name', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_given_name_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('initials', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_initials_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('generation-qualifier', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_generation_qualifier_length), explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))) 435 436 437 class NumericUserIdentifier(char.NumericString): 438 subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_numeric_user_id_length) 439 440 441 class OrganizationName(char.PrintableString): 442 subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_organization_name_length) 443 444 445 class PrivateDomainName(univ.Choice): 446 componentType = namedtype.NamedTypes(namedtype.NamedType('numeric', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length))), namedtype.NamedType('printable', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, ub_domain_name_length)))) 447 448 449 class TerminalIdentifier(char.PrintableString): 450 subtypeSpec = char.PrintableString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_terminal_id_length) 451 452 453 class X121Address(char.NumericString): 454 subtypeSpec = char.NumericString.subtypeSpec + constraint.ValueSizeConstraint(1, ub_x121_address_length) 455 456 457 class NetworkAddress(X121Address): 458 pass 459 460 461 class AdministrationDomainName(univ.Choice): 462 tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 2)) 463 componentType = namedtype.NamedTypes(namedtype.NamedType('numeric', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length))), namedtype.NamedType('printable', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(0, ub_domain_name_length)))) 464 465 466 class CountryName(univ.Choice): 467 tagSet = univ.Choice.tagSet.tagExplicitly(tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1)) 468 componentType = namedtype.NamedTypes(namedtype.NamedType('x121-dcc-code', char.NumericString().subtype(subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_numeric_length, ub_country_name_numeric_length))), namedtype.NamedType('iso-3166-alpha2-code', char.PrintableString().subtype(subtypeSpec=constraint.ValueSizeConstraint(ub_country_name_alpha_length, ub_country_name_alpha_length)))) 469 470 471 class BuiltInStandardAttributes(univ.Sequence): 472 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('country-name', CountryName()), namedtype.OptionalNamedType('administration-domain-name', AdministrationDomainName()), namedtype.OptionalNamedType('network-address', NetworkAddress().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('terminal-identifier', TerminalIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('private-domain-name', PrivateDomainName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('organization-name', OrganizationName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.OptionalNamedType('numeric-user-identifier', NumericUserIdentifier().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))), namedtype.OptionalNamedType('personal-name', PersonalName().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))), namedtype.OptionalNamedType('organizational-unit-names', OrganizationalUnitNames().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6)))) 473 474 475 class ORAddress(univ.Sequence): 476 componentType = namedtype.NamedTypes(namedtype.NamedType('built-in-standard-attributes', BuiltInStandardAttributes()), namedtype.OptionalNamedType('built-in-domain-defined-attributes', BuiltInDomainDefinedAttributes()), namedtype.OptionalNamedType('extension-attributes', ExtensionAttributes())) 477 478 479 id_ce_invalidityDate = univ.ObjectIdentifier('2.5.29.24') 480 481 class InvalidityDate(useful.GeneralizedTime): 482 pass 483 484 485 id_holdinstruction_none = univ.ObjectIdentifier('2.2.840.10040.2.1') 486 id_holdinstruction_callissuer = univ.ObjectIdentifier('2.2.840.10040.2.2') 487 id_holdinstruction_reject = univ.ObjectIdentifier('2.2.840.10040.2.3') 488 holdInstruction = univ.ObjectIdentifier('2.2.840.10040.2') 489 id_ce_holdInstructionCode = univ.ObjectIdentifier('2.5.29.23') 490 491 class HoldInstructionCode(univ.ObjectIdentifier): 492 pass 493 494 495 id_ce_cRLReasons = univ.ObjectIdentifier('2.5.29.21') 496 497 class CRLReason(univ.Enumerated): 498 namedValues = namedval.NamedValues(('unspecified', 0), ('keyCompromise', 1), ('cACompromise', 2), ('affiliationChanged', 3), ('superseded', 4), ('cessationOfOperation', 5), ('certificateHold', 6), ('removeFromCRL', 8)) 499 500 501 id_ce_cRLNumber = univ.ObjectIdentifier('2.5.29.20') 502 503 class CRLNumber(univ.Integer): 504 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(0, MAX) 505 506 507 class BaseCRLNumber(CRLNumber): 508 pass 509 510 511 id_kp_serverAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.1') 512 id_kp_clientAuth = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.2') 513 id_kp_codeSigning = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.3') 514 id_kp_emailProtection = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.4') 515 id_kp_ipsecEndSystem = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.5') 516 id_kp_ipsecTunnel = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.6') 517 id_kp_ipsecUser = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.7') 518 id_kp_timeStamping = univ.ObjectIdentifier('1.3.6.1.5.5.7.3.8') 519 id_pe_authorityInfoAccess = univ.ObjectIdentifier('1.3.6.1.5.5.7.1.1') 520 id_ce_extKeyUsage = univ.ObjectIdentifier('2.5.29.37') 521 522 class KeyPurposeId(univ.ObjectIdentifier): 523 pass 524 525 526 class ExtKeyUsageSyntax(univ.SequenceOf): 527 componentType = KeyPurposeId() 528 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 529 530 531 class ReasonFlags(univ.BitString): 532 namedValues = namedval.NamedValues(('unused', 0), ('keyCompromise', 1), ('cACompromise', 2), ('affiliationChanged', 3), ('superseded', 4), ('cessationOfOperation', 5), ('certificateHold', 6)) 533 534 535 class SkipCerts(univ.Integer): 536 subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(0, MAX) 537 538 539 id_ce_policyConstraints = univ.ObjectIdentifier('2.5.29.36') 540 541 class PolicyConstraints(univ.Sequence): 542 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('requireExplicitPolicy', SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('inhibitPolicyMapping', SkipCerts().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))) 543 544 545 id_ce_basicConstraints = univ.ObjectIdentifier('2.5.29.19') 546 547 class BasicConstraints(univ.Sequence): 548 componentType = namedtype.NamedTypes(namedtype.DefaultedNamedType('cA', univ.Boolean(False)), namedtype.OptionalNamedType('pathLenConstraint', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, MAX)))) 549 550 551 id_ce_subjectDirectoryAttributes = univ.ObjectIdentifier('2.5.29.9') 552 553 class SubjectDirectoryAttributes(univ.SequenceOf): 554 componentType = Attribute() 555 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 556 557 558 class EDIPartyName(univ.Sequence): 559 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('nameAssigner', DirectoryString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('partyName', DirectoryString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))) 560 561 562 class AnotherName(univ.Sequence): 563 componentType = namedtype.NamedTypes(namedtype.NamedType('type-id', univ.ObjectIdentifier()), namedtype.NamedType('value', univ.Any().subtype(explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))) 564 565 566 class GeneralName(univ.Choice): 567 componentType = namedtype.NamedTypes(namedtype.NamedType('otherName', AnotherName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.NamedType('rfc822Name', char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('dNSName', char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.NamedType('x400Address', ORAddress().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.NamedType('directoryName', Name().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4))), namedtype.NamedType('ediPartyName', EDIPartyName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 5))), namedtype.NamedType('uniformResourceIdentifier', char.IA5String().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 6))), namedtype.NamedType('iPAddress', univ.OctetString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))), namedtype.NamedType('registeredID', univ.ObjectIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 8)))) 568 569 570 class GeneralNames(univ.SequenceOf): 571 componentType = GeneralName() 572 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 573 574 575 class AccessDescription(univ.Sequence): 576 componentType = namedtype.NamedTypes(namedtype.NamedType('accessMethod', univ.ObjectIdentifier()), namedtype.NamedType('accessLocation', GeneralName())) 577 578 579 class AuthorityInfoAccessSyntax(univ.SequenceOf): 580 componentType = AccessDescription() 581 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 582 583 584 id_ce_deltaCRLIndicator = univ.ObjectIdentifier('2.5.29.27') 585 586 class DistributionPointName(univ.Choice): 587 componentType = namedtype.NamedTypes(namedtype.NamedType('fullName', GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('nameRelativeToCRLIssuer', RelativeDistinguishedName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))) 588 589 590 class DistributionPoint(univ.Sequence): 591 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('reasons', ReasonFlags().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('cRLIssuer', GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2)))) 592 593 594 class BaseDistance(univ.Integer): 595 subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(0, MAX) 596 597 598 id_ce_cRLDistributionPoints = univ.ObjectIdentifier('2.5.29.31') 599 600 class CRLDistPointsSyntax(univ.SequenceOf): 601 componentType = DistributionPoint() 602 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 603 604 605 id_ce_issuingDistributionPoint = univ.ObjectIdentifier('2.5.29.28') 606 607 class IssuingDistributionPoint(univ.Sequence): 608 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('distributionPoint', DistributionPointName().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.NamedType('onlyContainsUserCerts', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.NamedType('onlyContainsCACerts', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))), namedtype.OptionalNamedType('onlySomeReasons', ReasonFlags().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))), namedtype.NamedType('indirectCRL', univ.Boolean(False).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)))) 609 610 611 class GeneralSubtree(univ.Sequence): 612 componentType = namedtype.NamedTypes(namedtype.NamedType('base', GeneralName()), namedtype.DefaultedNamedType('minimum', BaseDistance(0).subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('maximum', BaseDistance().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))) 613 614 615 class GeneralSubtrees(univ.SequenceOf): 616 componentType = GeneralSubtree() 617 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 618 619 620 id_ce_nameConstraints = univ.ObjectIdentifier('2.5.29.30') 621 622 class NameConstraints(univ.Sequence): 623 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('permittedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))), namedtype.OptionalNamedType('excludedSubtrees', GeneralSubtrees().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1)))) 624 625 626 class DisplayText(univ.Choice): 627 componentType = namedtype.NamedTypes(namedtype.NamedType('visibleString', char.VisibleString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))), namedtype.NamedType('bmpString', char.BMPString().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200))), namedtype.NamedType('utf8String', char.UTF8String().subtype(subtypeSpec=constraint.ValueSizeConstraint(1, 200)))) 628 629 630 class NoticeReference(univ.Sequence): 631 componentType = namedtype.NamedTypes(namedtype.NamedType('organization', DisplayText()), namedtype.NamedType('noticeNumbers', univ.SequenceOf(componentType=univ.Integer()))) 632 633 634 class UserNotice(univ.Sequence): 635 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('noticeRef', NoticeReference()), namedtype.OptionalNamedType('explicitText', DisplayText())) 636 637 638 class CPSuri(char.IA5String): 639 pass 640 641 642 class PolicyQualifierId(univ.ObjectIdentifier): 643 subtypeSpec = univ.ObjectIdentifier.subtypeSpec + constraint.SingleValueConstraint(id_qt_cps, id_qt_unotice) 644 645 646 class CertPolicyId(univ.ObjectIdentifier): 647 pass 648 649 650 class PolicyQualifierInfo(univ.Sequence): 651 componentType = namedtype.NamedTypes(namedtype.NamedType('policyQualifierId', PolicyQualifierId()), namedtype.NamedType('qualifier', univ.Any())) 652 653 654 id_ce_certificatePolicies = univ.ObjectIdentifier('2.5.29.32') 655 656 class PolicyInformation(univ.Sequence): 657 componentType = namedtype.NamedTypes(namedtype.NamedType('policyIdentifier', CertPolicyId()), namedtype.OptionalNamedType('policyQualifiers', univ.SequenceOf(componentType=PolicyQualifierInfo()).subtype(subtypeSpec=constraint.ValueSizeConstraint(1, MAX)))) 658 659 660 class CertificatePolicies(univ.SequenceOf): 661 componentType = PolicyInformation() 662 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 663 664 665 id_ce_policyMappings = univ.ObjectIdentifier('2.5.29.33') 666 667 class PolicyMapping(univ.Sequence): 668 componentType = namedtype.NamedTypes(namedtype.NamedType('issuerDomainPolicy', CertPolicyId()), namedtype.NamedType('subjectDomainPolicy', CertPolicyId())) 669 670 671 class PolicyMappings(univ.SequenceOf): 672 componentType = PolicyMapping() 673 subtypeSpec = univ.SequenceOf.subtypeSpec + constraint.ValueSizeConstraint(1, MAX) 674 675 676 id_ce_privateKeyUsagePeriod = univ.ObjectIdentifier('2.5.29.16') 677 678 class PrivateKeyUsagePeriod(univ.Sequence): 679 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('notBefore', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('notAfter', useful.GeneralizedTime().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))) 680 681 682 id_ce_keyUsage = univ.ObjectIdentifier('2.5.29.15') 683 684 class KeyUsage(univ.BitString): 685 namedValues = namedval.NamedValues(('digitalSignature', 0), ('nonRepudiation', 1), ('keyEncipherment', 2), ('dataEncipherment', 3), ('keyAgreement', 4), ('keyCertSign', 5), ('cRLSign', 6), ('encipherOnly', 7), ('decipherOnly', 8)) 686 687 688 id_ce = univ.ObjectIdentifier('2.5.29') 689 id_ce_authorityKeyIdentifier = univ.ObjectIdentifier('2.5.29.35') 690 691 class KeyIdentifier(univ.OctetString): 692 pass 693 694 695 id_ce_subjectKeyIdentifier = univ.ObjectIdentifier('2.5.29.14') 696 697 class SubjectKeyIdentifier(KeyIdentifier): 698 pass 699 700 701 class AuthorityKeyIdentifier(univ.Sequence): 702 componentType = namedtype.NamedTypes(namedtype.OptionalNamedType('keyIdentifier', KeyIdentifier().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))), namedtype.OptionalNamedType('authorityCertIssuer', GeneralNames().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))), namedtype.OptionalNamedType('authorityCertSerialNumber', CertificateSerialNumber().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2)))) 703 704 705 id_ce_certificateIssuer = univ.ObjectIdentifier('2.5.29.29') 706 707 class CertificateIssuer(GeneralNames): 708 pass 709 710 711 id_ce_subjectAltName = univ.ObjectIdentifier('2.5.29.17') 712 713 class SubjectAltName(GeneralNames): 714 pass 715 716 717 id_ce_issuerAltName = univ.ObjectIdentifier('2.5.29.18') 718 719 class IssuerAltName(GeneralNames): 720 pass