1 -- This file is based on PKIX1Explicit93 definition in
4 --Appendix F of RFC2459
5 --Appendix F. Full Copyright Statement
7 -- Copyright (C) The Internet Society (1999). All Rights Reserved.
9 -- This document and translations of it may be copied and furnished to
10 -- others, and derivative works that comment on or otherwise explain it
11 -- or assist in its implementation may be prepared, copied, published
12 -- and distributed, in whole or in part, without restriction of any
13 -- kind, provided that the above copyright notice and this paragraph are
14 -- included on all such copies and derivative works. However, this
15 -- document itself may not be modified in any way, such as by removing
16 -- the copyright notice or references to the Internet Society or other
17 -- Internet organizations, except as needed for the purpose of
18 -- developing Internet standards in which case the procedures for
19 -- copyrights defined in the Internet Standards process must be
20 -- followed, or as required to translate it into languages other than
23 -- The limited permissions granted above are perpetual and will not be
24 -- revoked by the Internet Society or its successors or assigns.
26 -- This document and the information contained herein is provided on an
27 -- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
28 -- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
29 -- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
30 -- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
31 -- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
34 --NOTE: This ASN1 definition have been significantly modified from the original
35 --version in RFC2459 in order to accomodate the featuresets available
36 --in the Wireshark projects asn2wrs compiler.
37 --It has also been modified and structures have been commented out that
38 --are already implemented in the X509 dissectors.
39 --Dissectors present already in the X509 dissectors should be implemented in
40 --the template by hand as stubs that will just call the original
41 --dissector functions in X509 in order not to duplicate code.
43 --Structures and constructs in this definition are uncommented and
44 --implemented on-demand when someone needs them.
46 --If you export new types from this file, make sure to update the
47 --pkix1explicit_exp.cnf file with the proper definitions
51 PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1)
52 security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)}
55 DEFINITIONS EXPLICIT TAGS ::=
62 authorityKeyIdentifier, subjectKeyIdentifier, keyUsage,
63 extendedKeyUsage, privateKeyUsagePeriod, certificatePolicies,
64 policyMappings, subjectAltName, issuerAltName,
65 basicConstraints, nameConstraints, policyConstraints,
66 cRLDistributionPoints, subjectDirectoryAttributes,
67 cRLNumber, reasonCode, instructionCode, invalidityDate,
68 issuingDistributionPoint, certificateIssuer,
69 deltaCRLIndicator, authorityInfoAccess, id-ce
70 FROM PKIX1Implicit93 {iso(1) identified-organization(3)
71 dod(6) internet(1) security(5) mechanisms(5) pkix(7)
72 id-mod(0) id-pkix1-implicit-93(4)} ;
75 -- Locally defined OIDs
77 --id-pkix OBJECT IDENTIFIER ::=
78 -- { iso(1) identified-organization(3) dod(6) internet(1)
79 -- security(5) mechanisms(5) pkix(7) }
82 -- arc for private certificate extensions
83 --id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
84 -- arc for policy qualifier types
85 --id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
86 -- arc for extended key purpose OIDS
87 --id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
88 -- arc for access descriptors
89 --id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
91 -- policyQualifierIds for Internet policy qualifiers
92 --id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
93 -- OID for CPS qualifier
95 --id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
96 -- OID for user notice qualifier
98 -- based on excerpts from AuthenticationFramework
99 -- {joint-iso-ccitt ds(5) modules(1) authenticationFramework(7) 2}
101 -- Public Key Certificate
103 --Certificate ::= SIGNED { SEQUENCE {
104 -- version [0] Version DEFAULT v1,
105 -- serialNumber CertificateSerialNumber,
106 -- signature AlgorithmIdentifier,
108 -- validity Validity,
110 -- subjectPublicKeyInfo SubjectPublicKeyInfo,
111 -- issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
112 -- if present, version shall be v2 or v3
113 -- subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
114 -- if present, version shall be v2 or v3
115 -- extensions [3] Extensions OPTIONAL
116 -- if present, version shall be v3
120 UniqueIdentifier ::= BIT STRING
122 Version ::= INTEGER { v1(0), v2(1), v3(2) }
124 -- This one is defined with .NO_EMIT in the conformance file
125 -- and implemented in the template as just a call to the
126 -- corresponding function in x509
127 CertificateSerialNumber ::= INTEGER
129 --Validity ::= SEQUENCE {
135 generalTime GeneralizedTime }
140 -- This one is implemented in the template as just a call to the
141 -- corresponding function in x509
142 --SubjectPublicKeyInfo ::= SEQUENCE{
143 -- algorithm AlgorithmIdentifier,
144 -- subjectPublicKey BIT STRING
149 Extensions ::= SEQUENCE OF Extension
151 Extension ::= SEQUENCE {
152 extnId OBJECT IDENTIFIER,
153 critical BOOLEAN DEFAULT FALSE,
154 extnValue OCTET STRING
157 -- contains a DER encoding of a value of type
159 -- extension object identified by extnId
161 -- The following information object set is defined to constrain the
162 -- set of legal certificate extensions.
164 --ExtensionSet EXTENSION ::= { authorityKeyIdentifier |
165 -- subjectKeyIdentifier |
167 -- extendedKeyUsage |
168 -- privateKeyUsagePeriod |
169 -- certificatePolicies |
173 -- basicConstraints |
175 -- policyConstraints |
176 -- cRLDistributionPoints |
177 -- subjectDirectoryAttributes |
178 -- authorityInfoAccess }
180 --EXTENSION ::= CLASS {
181 -- &id OBJECT IDENTIFIER UNIQUE,
185 -- IDENTIFIED BY &id }
187 -- Certificate Revocation List
189 --CertificateList ::= SIGNED { SEQUENCE {
190 -- version Version OPTIONAL,
191 -- if present, shall be v2
192 -- signature AlgorithmIdentifier,
195 -- nextUpdate Time OPTIONAL,
196 -- revokedCertificates SEQUENCE OF SEQUENCE {
197 -- userCertificate CertificateSerialNumber,
198 -- revocationDate Time,
199 -- crlEntryExtensions EntryExtensions OPTIONAL } OPTIONAL,
200 -- crlExtensions [0] CRLExtensions OPTIONAL }}
202 --CRLExtensions ::= SEQUENCE SIZE (1..MAX) OF CRLExtension
204 --CRLExtension ::= SEQUENCE {
205 -- extnId EXTENSION.&id ({CRLExtensionSet}),
206 -- critical BOOLEAN DEFAULT FALSE,
207 -- extnValue OCTET STRING }
208 -- contains a DER encoding of a value of type
210 -- extension object identified by extnId
212 -- The following information object set is defined to constrain the
213 -- set of legal CRL extensions.
215 --CRLExtensionSet EXTENSION ::= { authorityKeyIdentifier |
218 -- deltaCRLIndicator |
219 -- issuingDistributionPoint }
221 -- EXTENSION defined above for certificates
223 --EntryExtensions ::= SEQUENCE SIZE (1..MAX) OF EntryExtension
225 --EntryExtension ::= SEQUENCE {
226 -- extnId EXTENSION.&id ({EntryExtensionSet}),
227 -- critical BOOLEAN DEFAULT FALSE,
228 -- extnValue OCTET STRING }
229 -- contains a DER encoding of a value of type
231 -- extension object identified by extnId
233 -- The following information object set is defined to constrain the
234 -- set of legal CRL entry extensions.
236 --EntryExtensionSet EXTENSION ::= { reasonCode |
239 -- certificateIssuer }
241 -- information object classes used in the defintion
242 -- of certificates and CRLs
244 -- Parameterized Type SIGNED
246 -- SIGNED { ToBeSigned } ::= SEQUENCE {
247 -- toBeSigned ToBeSigned,
248 -- algorithm AlgorithmIdentifier,
249 -- signature BIT STRING
253 -- This one is implemented in the template as just a call to the
254 -- corresponding function in x509
255 -- Definition of AlgorithmIdentifier
256 -- ISO definition was:
257 --AlgorithmIdentifier ::= SEQUENCE {
258 -- algorithm ALGORITHM.&id({SupportedAlgorithms}),
259 -- parameters ALGORITHM.&Type({SupportedAlgorithms}
260 -- { @algorithm}) OPTIONAL
263 -- Definition of ALGORITHM
264 -- ALGORITHM ::= TYPE-IDENTIFIER
266 -- The following PKIX definition replaces the X.509 definition
269 --AlgorithmIdentifier ::= SEQUENCE {
270 -- algorithm ALGORITHM-ID.&id({SupportedAlgorithms}),
271 -- parameters ALGORITHM-ID.&Type({SupportedAlgorithms}
272 -- { @algorithm}) OPTIONAL }
274 -- Definition of ALGORITHM-ID
276 -- ALGORITHM-ID ::= CLASS {
277 -- &id OBJECT IDENTIFIER UNIQUE,
280 -- WITH SYNTAX { OID &id [PARMS &Type] }
282 -- The definition of SupportedAlgorithms may be modified as this
283 -- document does not specify a mandatory algorithm set. In addition,
284 -- the set is specified as extensible, since additional algorithms
287 --SupportedAlgorithms ALGORITHM-ID ::= { ...,
296 -- OIDs and parameter structures for ALGORITHM-IDs used
297 -- in this specification
299 --rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }
301 --rsaSHA-1 ALGORITHM-ID ::= { OID sha1WithRSAEncryption PARMS NULL }
303 --rsaMD5 ALGORITHM-ID ::= { OID md5WithRSAEncryption PARMS NULL }
305 --rsaMD2 ALGORITHM-ID ::= { OID md2WithRSAEncryption PARMS NULL }
307 --dssPublicKey ALGORITHM-ID ::= { OID id-dsa PARMS Dss-Parms }
309 --dsaSHA-1 ALGORITHM-ID ::= { OID id-dsa-with-sha1 }
311 --dhPublicKey ALGORITHM-ID ::= {OID dhpublicnumber PARMS DomainParameters}
313 -- algorithm identifiers and parameter structures
315 --pkcs-1 OBJECT IDENTIFIER ::= {
316 -- iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
318 --rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
320 --md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
322 --md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
324 --sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
326 --id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
327 -- iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
329 --Dss-Sig-Value ::= SEQUENCE {
333 dhpublicnumber OBJECT IDENTIFIER ::= {
334 iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
336 DomainParameters ::= SEQUENCE {
341 validationParms ValidationParms OPTIONAL }
343 ValidationParms ::= SEQUENCE {
345 pgenCounter INTEGER }
347 --id-dsa OBJECT IDENTIFIER ::= {
348 -- iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
350 --Dss-Parms ::= SEQUENCE {
355 -- The ASN.1 in this section supports the Name type
356 -- and the directoryAttribute extension
358 -- attribute data types
360 --Attribute ::= SEQUENCE {
361 -- type ATTRIBUTE.&id ({SupportedAttributes}),
362 -- values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type
363 -- ({SupportedAttributes}{@type})}
365 Attribute ::= SEQUENCE {
366 type OBJECT IDENTIFIER,
367 values SET SIZE (1 .. MAX) OF ANY
368 -- at least one value is required -- }
370 AttributeTypeAndValue ::= SEQUENCE {
371 type OBJECT IDENTIFIER,
375 -- naming data types --
379 -- This one is implemented in the template as just a call to the
380 -- corresponding function in x509
382 -- rdnSequence RDNSequence
386 RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
388 RelativeDistinguishedName ::= SET OF AttributeTypeAndValue
390 --ID ::= OBJECT IDENTIFIER
392 -- ATTRIBUTE information object class specification
393 -- Note: This has been greatly simplified for PKIX !!
395 --ATTRIBUTE ::= CLASS {
397 -- &id OBJECT IDENTIFIER UNIQUE }
399 -- WITH SYNTAX &Type ID &id }
401 -- suggested naming attributes
402 -- Definition of the following information object set may be
403 -- augmented to meet local requirements. Note that deleting
404 -- members of the set may prevent interoperability with
405 -- conforming implementations.
407 --SupportedAttributes ATTRIBUTE ::= {
408 -- name | commonName | surname | givenName | initials |
409 -- generationQualifier | dnQualifier | countryName |
410 -- localityName | stateOrProvinceName | organizationName |
411 -- organizationalUnitName | title | pkcs9email }
413 --name ATTRIBUTE ::= {
414 -- WITH SYNTAX DirectoryString { ub-name }
417 --commonName ATTRIBUTE ::= {
418 -- WITH SYNTAX DirectoryString {ub-common-name}
419 -- ID id-at-commonName }
421 --surname ATTRIBUTE ::= {
422 -- WITH SYNTAX DirectoryString {ub-name}
423 -- ID id-at-surname }
425 --givenName ATTRIBUTE ::= {
426 -- WITH SYNTAX DirectoryString {ub-name}
427 -- ID id-at-givenName }
429 --initials ATTRIBUTE ::= {
430 -- WITH SYNTAX DirectoryString {ub-name}
431 -- ID id-at-initials }
433 --generationQualifier ATTRIBUTE ::= {
434 -- WITH SYNTAX DirectoryString {ub-name}
435 -- ID id-at-generationQualifier}
437 --dnQualifier ATTRIBUTE ::= {
438 -- WITH SYNTAX PrintableString
439 -- ID id-at-dnQualifier }
442 --countryName ATTRIBUTE ::= {
443 -- WITH SYNTAX PrintableString (SIZE (2))
444 -- ID id-at-countryName }
446 --localityName ATTRIBUTE ::= {
447 -- WITH SYNTAX DirectoryString {ub-locality-name}
448 -- ID id-at-localityName }
450 --stateOrProvinceName ATTRIBUTE ::= {
451 -- WITH SYNTAX DirectoryString {ub-state-name}
452 -- ID id-at-stateOrProvinceName }
454 --organizationName ATTRIBUTE ::= {
455 -- WITH SYNTAX DirectoryString {ub-organization-name}
456 -- ID id-at-organizationName }
458 --organizationalUnitName ATTRIBUTE ::= {
459 -- WITH SYNTAX DirectoryString {ub-organizational-unit-name}
460 -- ID id-at-organizationalUnitName }
462 --title ATTRIBUTE ::= {
463 -- WITH SYNTAX DirectoryString {ub-title}
468 --pkcs9email ATTRIBUTE ::= {
469 -- WITH SYNTAX PHGString,
472 --PHGString ::= IA5String (SIZE(1..ub-emailaddress-length))
474 --pkcs-9 OBJECT IDENTIFIER ::=
475 -- { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
477 --emailAddress OBJECT IDENTIFIER ::= { pkcs-9 1 }
479 -- object identifiers for Name type and directory attribute support
481 -- Object identifier assignments
483 --id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
487 --id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
488 --id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
489 --id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
490 --id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
491 --id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
492 --id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
493 --id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
494 --id-at-title OBJECT IDENTIFIER ::= {id-at 12}
495 --id-at-name OBJECT IDENTIFIER ::= {id-at 41}
496 --id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
497 --id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
498 --id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
499 --id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
501 -- Directory string type, used extensively in Name types
502 --Make it a PrintableString will amke it look prettier
503 DirectoryString ::= PrintableString
504 --DirectoryString { INTEGER:maxSize } ::= CHOICE {
505 -- teletexString TeletexString (SIZE (1..maxSize)),
506 -- printableString PrintableString (SIZE (1..maxSize)),
507 -- universalString UniversalString (SIZE (1..maxSize)),
508 -- bmpString BMPString (SIZE(1..maxSize)),
509 -- utf8String UTF8String (SIZE(1..maxSize))
512 -- End of ASN.1 for Name type and directory attribute support
514 -- The ASN.1 in this section supports X.400 style names
515 -- for implementations that use the x400Address component
518 --ORAddress ::= SEQUENCE {
519 -- built-in-standard-attributes BuiltInStandardAttributes,
520 -- built-in-domain-defined-attributes
521 -- BuiltInDomainDefinedAttributes OPTIONAL,
522 -- see also teletex-domain-defined-attributes
523 -- extension-attributes ExtensionAttributes OPTIONAL }
525 -- The OR-address is semantically absent from the OR-name if the
526 -- built-in-standard-attribute sequence is empty and the
527 -- built-in-domain-defined-attributes and extension-attributes are
530 -- Built-in Standard Attributes
532 --BuiltInStandardAttributes ::= SEQUENCE {
533 -- country-name CountryName OPTIONAL,
534 -- administration-domain-name AdministrationDomainName OPTIONAL,
535 -- network-address [0] NetworkAddress OPTIONAL,
536 -- see also extended-network-address
537 -- terminal-identifier [1] TerminalIdentifier OPTIONAL,
538 -- private-domain-name [2] PrivateDomainName OPTIONAL,
539 -- organization-name [3] OrganizationName OPTIONAL,
540 -- see also teletex-organization-name
541 -- numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
542 -- personal-name [5] PersonalName OPTIONAL,
543 -- see also teletex-personal-name
544 -- organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
545 -- see also teletex-organizational-unit-names
548 --CountryName ::= [APPLICATION 1] CHOICE {
549 -- x121-dcc-code NumericString,
550 -- iso-3166-alpha2-code PrintableString
553 --AdministrationDomainName ::= [APPLICATION 2] CHOICE {
554 -- numeric NumericString (SIZE (0..ub-domain-name-length)),
555 -- printable PrintableString (SIZE (0..ub-domain-name-length)) }
557 --NetworkAddress ::= X121Address
558 -- see also extended-network-address
560 --X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
562 --TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
564 --PrivateDomainName ::= CHOICE {
565 -- numeric NumericString (SIZE (1..ub-domain-name-length)),
566 -- printable PrintableString (SIZE (1..ub-domain-name-length)) }
568 --OrganizationName ::= PrintableString
569 -- (SIZE (1..ub-organization-name-length))
570 -- see also teletex-organization-name
572 --NumericUserIdentifier ::= NumericString
573 -- (SIZE (1..ub-numeric-user-id-length))
575 --PersonalName ::= SET {
576 -- surname [0] PrintableString (SIZE (1..ub-surname-length)),
577 -- given-name [1] PrintableString
578 -- (SIZE (1..ub-given-name-length)) OPTIONAL,
579 -- initials [2] PrintableString
580 -- (SIZE (1..ub-initials-length)) OPTIONAL,
581 -- generation-qualifier [3] PrintableString
582 -- (SIZE (1..ub-generation-qualifier-length)) OPTIONAL}
583 -- see also teletex-personal-name
585 --OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
586 -- OF OrganizationalUnitName
587 -- see also teletex-organizational-unit-names
589 --OrganizationalUnitName ::= PrintableString (SIZE
590 -- (1..ub-organizational-unit-name-length))
592 -- Built-in Domain-defined Attributes
593 --BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
594 -- (1..ub-domain-defined-attributes) OF
595 -- BuiltInDomainDefinedAttribute
597 --BuiltInDomainDefinedAttribute ::= SEQUENCE {
598 -- type PrintableString (SIZE
599 -- (1..ub-domain-defined-attribute-type-length)),
600 -- value PrintableString (SIZE
601 -- (1..ub-domain-defined-attribute-value-length)) }
603 -- Extension Attributes
605 --ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes)
606 -- OF ExtensionAttribute
607 --ExtensionAttribute ::= SEQUENCE {
609 -- extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
610 -- ({ExtensionAttributeTable}),
611 -- extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
612 -- ({ExtensionAttributeTable} {@extension-attribute-type}) }
614 --EXTENSION-ATTRIBUTE ::= CLASS {
615 -- &id INTEGER (0..ub-extension-attributes) UNIQUE,
617 --WITH SYNTAX {&Type IDENTIFIED BY &id}
619 --ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= {
621 -- teletex-common-name |
622 -- teletex-organization-name |
623 -- teletex-personal-name |
624 -- teletex-organizational-unit-names |
625 -- teletex-domain-defined-attributes |
627 -- physical-delivery-country-name |
629 -- physical-delivery-office-name |
630 -- physical-delivery-office-number |
631 -- extension-OR-address-components |
632 -- physical-delivery-personal-name |
633 -- physical-delivery-organization-name |
634 -- extension-physical-delivery-address-components |
635 -- unformatted-postal-address |
637 -- post-office-box-address |
638 -- poste-restante-address |
639 -- unique-postal-name |
640 -- local-postal-attributes |
641 -- extended-network-address |
644 -- Extension Standard Attributes
646 --common-name EXTENSION-ATTRIBUTE ::= {CommonName IDENTIFIED BY 1}
648 --CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
650 --teletex-common-name EXTENSION-ATTRIBUTE ::=
651 -- {TeletexCommonName IDENTIFIED BY 2}
653 --TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
655 --teletex-organization-name EXTENSION-ATTRIBUTE ::=
656 -- {TeletexOrganizationName IDENTIFIED BY 3}
658 --TeletexOrganizationName ::=
659 -- TeletexString (SIZE (1..ub-organization-name-length))
661 --teletex-personal-name EXTENSION-ATTRIBUTE ::=
662 -- {TeletexPersonalName IDENTIFIED BY 4}
664 --TeletexPersonalName ::= SET {
665 -- surname [0] TeletexString (SIZE (1..ub-surname-length)),
666 -- given-name [1] TeletexString
667 -- (SIZE (1..ub-given-name-length)) OPTIONAL,
668 -- initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
669 -- generation-qualifier [3] TeletexString (SIZE
670 -- (1..ub-generation-qualifier-length)) OPTIONAL }
672 --teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::=
673 -- {TeletexOrganizationalUnitNames IDENTIFIED BY 5}
675 --TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
676 -- (1..ub-organizational-units) OF TeletexOrganizationalUnitName
678 --TeletexOrganizationalUnitName ::= TeletexString
679 -- (SIZE (1..ub-organizational-unit-name-length))
681 --pds-name EXTENSION-ATTRIBUTE ::= {PDSName IDENTIFIED BY 7}
683 --PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
685 --physical-delivery-country-name EXTENSION-ATTRIBUTE ::=
686 -- {PhysicalDeliveryCountryName IDENTIFIED BY 8}
688 --PhysicalDeliveryCountryName ::= CHOICE {
689 -- x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
690 -- iso-3166-alpha2-code PrintableString
691 -- (SIZE (ub-country-name-alpha-length)) }
693 --postal-code EXTENSION-ATTRIBUTE ::= {PostalCode IDENTIFIED BY 9}
695 --PostalCode ::= CHOICE {
696 -- numeric-code NumericString (SIZE (1..ub-postal-code-length)),
697 -- printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
699 --physical-delivery-office-name EXTENSION-ATTRIBUTE ::=
700 -- {PhysicalDeliveryOfficeName IDENTIFIED BY 10}
702 --PhysicalDeliveryOfficeName ::= PDSParameter
704 --physical-delivery-office-number EXTENSION-ATTRIBUTE ::=
705 -- {PhysicalDeliveryOfficeNumber IDENTIFIED BY 11}
707 --PhysicalDeliveryOfficeNumber ::= PDSParameter
709 --extension-OR-address-components EXTENSION-ATTRIBUTE ::=
710 -- {ExtensionORAddressComponents IDENTIFIED BY 12}
712 --ExtensionORAddressComponents ::= PDSParameter
714 --physical-delivery-personal-name EXTENSION-ATTRIBUTE ::=
715 -- {PhysicalDeliveryPersonalName IDENTIFIED BY 13}
717 --PhysicalDeliveryPersonalName ::= PDSParameter
719 --physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
720 -- {PhysicalDeliveryOrganizationName IDENTIFIED BY 14}
722 --PhysicalDeliveryOrganizationName ::= PDSParameter
724 --extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
725 -- {ExtensionPhysicalDeliveryAddressComponents IDENTIFIED BY 15}
727 --ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
729 --unformatted-postal-address EXTENSION-ATTRIBUTE ::=
730 -- {UnformattedPostalAddress IDENTIFIED BY 16}
732 --UnformattedPostalAddress ::= SET {
733 -- printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
734 -- PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
735 -- teletex-string TeletexString (SIZE
736 -- (1..ub-unformatted-address-length)) OPTIONAL }
738 --street-address EXTENSION-ATTRIBUTE ::=
739 -- {StreetAddress IDENTIFIED BY 17}
741 --StreetAddress ::= PDSParameter
743 --post-office-box-address EXTENSION-ATTRIBUTE ::=
744 -- {PostOfficeBoxAddress IDENTIFIED BY 18}
746 --PostOfficeBoxAddress ::= PDSParameter
748 --poste-restante-address EXTENSION-ATTRIBUTE ::=
749 -- {PosteRestanteAddress IDENTIFIED BY 19}
751 --PosteRestanteAddress ::= PDSParameter
753 --unique-postal-name EXTENSION-ATTRIBUTE ::=
754 -- {UniquePostalName IDENTIFIED BY 20}
756 --UniquePostalName ::= PDSParameter
758 --local-postal-attributes EXTENSION-ATTRIBUTE ::=
759 -- {LocalPostalAttributes IDENTIFIED BY 21}
761 --LocalPostalAttributes ::= PDSParameter
763 --PDSParameter ::= SET {
764 -- printable-string PrintableString
765 -- (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
766 -- teletex-string TeletexString
767 -- (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
769 --extended-network-address EXTENSION-ATTRIBUTE ::=
770 -- {ExtendedNetworkAddress IDENTIFIED BY 22}
772 --ExtendedNetworkAddress ::= CHOICE {
773 -- e163-4-address SEQUENCE {
774 -- number [0] NumericString
775 -- (SIZE (1..ub-e163-4-number-length)),
776 -- sub-address [1] NumericString
777 -- (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL},
778 -- psap-address [0] PresentationAddress }
780 --PresentationAddress ::= SEQUENCE {
781 -- pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
782 -- sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
783 -- tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
784 -- nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING}
787 --terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
789 TerminalType ::= INTEGER {
797 -- Extension Domain-defined Attributes
799 --teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::=
800 -- {TeletexDomainDefinedAttributes IDENTIFIED BY 6}
802 --TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
803 -- (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
805 TeletexDomainDefinedAttribute ::= SEQUENCE {
810 -- specifications of Upper Bounds
811 -- shall be regarded as mandatory
812 -- from Annex B of ITU-T X.411
813 -- Reference Definition of MTS Parameter Upper Bounds
816 --ub-name INTEGER ::= 32768
817 --ub-common-name INTEGER ::= 64
818 --ub-locality-name INTEGER ::= 128
819 --ub-state-name INTEGER ::= 128
820 --ub-organization-name INTEGER ::= 64
821 --ub-organizational-unit-name INTEGER ::= 64
822 --ub-title INTEGER ::= 64
823 --ub-match INTEGER ::= 128
825 --ub-emailaddress-length INTEGER ::= 128
827 --ub-common-name-length INTEGER ::= 64
828 --ub-country-name-alpha-length INTEGER ::= 2
829 --ub-country-name-numeric-length INTEGER ::= 3
830 --ub-domain-defined-attributes INTEGER ::= 4
831 --ub-domain-defined-attribute-type-length INTEGER ::= 8
832 --ub-domain-defined-attribute-value-length INTEGER ::= 128
833 --ub-domain-name-length INTEGER ::= 16
834 --ub-extension-attributes INTEGER ::= 256
835 --ub-e163-4-number-length INTEGER ::= 15
836 --ub-e163-4-sub-address-length INTEGER ::= 40
837 --ub-generation-qualifier-length INTEGER ::= 3
838 --ub-given-name-length INTEGER ::= 16
839 --ub-initials-length INTEGER ::= 5
840 --ub-integer-options INTEGER ::= 256
841 --ub-numeric-user-id-length INTEGER ::= 32
842 --ub-organization-name-length INTEGER ::= 64
843 --ub-organizational-unit-name-length INTEGER ::= 32
844 --ub-organizational-units INTEGER ::= 4
845 --ub-pds-name-length INTEGER ::= 16
846 --ub-pds-parameter-length INTEGER ::= 30
847 --ub-pds-physical-address-lines INTEGER ::= 6
848 --ub-postal-code-length INTEGER ::= 16
849 --ub-surname-length INTEGER ::= 40
850 --ub-terminal-id-length INTEGER ::= 24
851 --ub-unformatted-address-length INTEGER ::= 180
853 --ub-x121-address-length INTEGER ::= 16
855 -- Note - upper bounds on TeletexString are measured in characters.
856 -- A significantly greater number of octets will be required to hold
857 -- such a value. As a minimum, 16 octets, or twice the specified upper
858 -- bound, whichever is the larger, should be allowed.