Corrected "old-style function definition".
[obnox/wireshark/wip.git] / asn1 / pkixac / PKIXAttributeCertificate.asn
1 PKIXAttributeCertificate {iso(1) identified-organization(3) dod(6)
2           internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
3           id-mod-attribute-cert(12)}
4
5 DEFINITIONS IMPLICIT TAGS ::=
6
7 BEGIN
8
9 -- EXPORTS ALL --
10
11 IMPORTS
12
13       -- IMPORTed module OIDs MAY change if [PKIXPROF] changes
14       -- PKIX Certificate Extensions
15          Attribute, AlgorithmIdentifier, CertificateSerialNumber,
16          Extensions, UniqueIdentifier,
17          id-pkix, id-pe, id-kp, id-ad, id-at
18          FROM PKIX1Explicit88 {iso(1) identified-organization(3)
19                   dod(6) internet(1) security(5) mechanisms(5)
20                   pkix(7) id-mod(0) id-pkix1-explicit-88(1)}
21
22          GeneralName, GeneralNames, id-ce
23          FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1)
24                   certificateExtensions(26) 5} ;
25 --         FROM PKIX1Implicit88 {iso(1) identified-organization(3)
26 --                  dod(6) internet(1) security(5) mechanisms(5)
27 --                  pkix(7) id-mod(0) id-pkix1-implicit-88(2)} ;
28
29 id-pe-ac-auditIdentity       OBJECT IDENTIFIER ::= { id-pe 4 }
30 id-pe-aaControls             OBJECT IDENTIFIER ::= { id-pe 6 }
31 id-pe-ac-proxying            OBJECT IDENTIFIER ::= { id-pe 10 }
32 id-ce-targetInformation      OBJECT IDENTIFIER ::= { id-ce 55 }
33
34 id-aca                       OBJECT IDENTIFIER ::= { id-pkix 10 }
35 id-aca-authenticationInfo    OBJECT IDENTIFIER ::= { id-aca 1 }
36 id-aca-accessIdentity        OBJECT IDENTIFIER ::= { id-aca 2 }
37 id-aca-chargingIdentity      OBJECT IDENTIFIER ::= { id-aca 3 }
38 id-aca-group                 OBJECT IDENTIFIER ::= { id-aca 4 }
39 -- { id-aca 5 } is reserved
40 id-aca-encAttrs              OBJECT IDENTIFIER ::= { id-aca 6 }
41
42 id-at-role                   OBJECT IDENTIFIER ::= { id-at 72}
43 id-at-clearance              OBJECT IDENTIFIER ::=
44             { joint-iso-ccitt(2) ds(5) module(1)
45               selected-attribute-types(5) clearance (55) }
46
47        -- Uncomment this if using a 1988 level ASN.1 compiler
48        -- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING
49
50        AttributeCertificate ::= SEQUENCE {
51              acinfo               AttributeCertificateInfo,
52              signatureAlgorithm   AlgorithmIdentifier,
53              signatureValue       BIT STRING
54        }
55
56        AttributeCertificateInfo ::= SEQUENCE {
57           version        AttCertVersion,  -- version is v2
58           holder         Holder,
59           issuer         AttCertIssuer,
60           signature      AlgorithmIdentifier,
61           serialNumber   CertificateSerialNumber,
62           attrCertValidityPeriod   AttCertValidityPeriod,
63           attributes     SEQUENCE OF Attribute,
64           issuerUniqueID UniqueIdentifier OPTIONAL,
65           extensions     Extensions     OPTIONAL
66        }
67
68        AttCertVersion ::= INTEGER { v2(1) }
69
70        Holder ::= SEQUENCE {
71              baseCertificateID   [0] IssuerSerial OPTIONAL,
72                        -- the issuer and serial number of
73                        -- the holder's Public Key Certificate
74              entityName          [1] GeneralNames OPTIONAL,
75                        -- the name of the claimant or role
76              objectDigestInfo    [2] ObjectDigestInfo OPTIONAL
77                        -- used to directly authenticate the
78                        -- holder, for example, an executable
79        }
80
81        ObjectDigestInfo    ::= SEQUENCE {
82              digestedObjectType  ENUMERATED {
83                   publicKey            (0),
84                   publicKeyCert        (1),
85                   otherObjectTypes     (2) },
86                           -- otherObjectTypes MUST NOT
87                           -- MUST NOT be used in this profile
88              otherObjectTypeID   OBJECT IDENTIFIER  OPTIONAL,
89              digestAlgorithm     AlgorithmIdentifier,
90              objectDigest        BIT STRING
91        }
92
93        AttCertIssuer ::= CHOICE {
94              v1Form   GeneralNames,  -- MUST NOT be used in this
95                                      -- profile
96              v2Form   [0] V2Form     -- v2 only
97        }
98
99        V2Form ::= SEQUENCE {
100              issuerName            GeneralNames  OPTIONAL,
101              baseCertificateID     [0] IssuerSerial  OPTIONAL,
102              objectDigestInfo      [1] ObjectDigestInfo  OPTIONAL
103                 -- issuerName MUST be present in this profile
104                 -- baseCertificateID and objectDigestInfo MUST
105                 -- NOT be present in this profile
106        }
107
108        IssuerSerial  ::=  SEQUENCE {
109              issuer         GeneralNames,
110              serial         CertificateSerialNumber,
111              issuerUID      UniqueIdentifier OPTIONAL
112        }
113
114        AttCertValidityPeriod  ::= SEQUENCE {
115              notBeforeTime  GeneralizedTime,
116              notAfterTime   GeneralizedTime
117        }
118
119        Targets ::= SEQUENCE OF Target
120
121        Target  ::= CHOICE {
122              targetName     [0] GeneralName,
123              targetGroup    [1] GeneralName,
124              targetCert     [2] TargetCert
125        }
126
127        TargetCert  ::= SEQUENCE {
128              targetCertificate  IssuerSerial,
129              targetName         GeneralName OPTIONAL,
130              certDigestInfo     ObjectDigestInfo OPTIONAL
131        }
132
133        IetfAttrSyntax ::= SEQUENCE {
134             policyAuthority[0] GeneralNames    OPTIONAL,
135             values         SEQUENCE OF CHOICE {
136                            octets    OCTET STRING,
137                            oid       OBJECT IDENTIFIER,
138                            string    UTF8String
139            }
140        }
141
142        SvceAuthInfo ::=    SEQUENCE {
143              service       GeneralName,
144              ident         GeneralName,
145              authInfo      OCTET STRING OPTIONAL
146        }
147
148        RoleSyntax ::= SEQUENCE {
149              roleAuthority  [0] GeneralNames OPTIONAL,
150              roleName       [1] GeneralName
151        }
152
153        Clearance  ::=  SEQUENCE {
154              policyId       [0] OBJECT IDENTIFIER,
155              classList      [1] ClassList DEFAULT {unclassified},
156              securityCategories
157                             [2] SET OF SecurityCategory  OPTIONAL
158        }
159
160        ClassList  ::=  BIT STRING {
161              unmarked       (0),
162              unclassified   (1),
163              restricted     (2),
164              confidential   (3),
165              secret         (4),
166              topSecret      (5)
167        }
168
169        SecurityCategory ::= SEQUENCE {
170              type      [0]  IMPLICIT OBJECT IDENTIFIER,
171              value     [1]  ANY DEFINED BY type
172        }
173
174        AAControls ::= SEQUENCE {
175              pathLenConstraint INTEGER (0..MAX) OPTIONAL,
176              permittedAttrs    [0] AttrSpec OPTIONAL,
177              excludedAttrs     [1] AttrSpec OPTIONAL,
178              permitUnSpecified BOOLEAN DEFAULT TRUE
179        }
180
181        AttrSpec::= SEQUENCE OF OBJECT IDENTIFIER
182
183        ACClearAttrs ::= SEQUENCE {
184              acIssuer          GeneralName,
185              acSerial          INTEGER,
186              attrs             SEQUENCE OF Attribute
187        }
188
189        ProxyInfo ::= SEQUENCE OF Targets
190
191 END
192