source: trunk/ORBit2-2.14.0/src/idl/interop/CSI.idl

Last change on this file was 92, checked in by cinc, 19 years ago

Orbit2 modified for use with NOM

File size: 7.8 KB
Line 
1//
2// CSI.idl
3// CORBA Core 3.0 Chapter 24
4
5#ifndef _CSI_IDL_
6#define _CSI_IDL_
7
8#ifdef _PRE_3_0_COMPILER_
9#pragma prefix "omg.org"
10#else
11#endif // _PRE_3_0_COMPILER_
12
13module CSI {
14
15#ifndef _PRE_3_0_COMPILER_
16 typeprefix CSI "omg.org";
17#endif // _PRE_3_0_COMPILER_
18
19 // The OMG VMCID; same value as CORBA::OMGVMCID. Do not change ever.
20
21 const unsigned long OMGVMCID = 0x4F4D0;
22
23 // An X509CertificateChain contains an ASN.1 BER encoded SEQUENCE
24 // [1..MAX] OF X.509 certificates encapsulated in a sequence of octets. The
25 // subject's certificate shall come first in the list. Each following
26 // certificate shall directly certify the one preceding it. The ASN.1
27 // representation of Certificate is as defined in [IETF RFC 2459].
28
29 typedef sequence <octet> X509CertificateChain;
30
31 // an X.501 type name or Distinguished Name encapsulated in a sequence of
32 // octets containing the ASN.1 encoding.
33
34 typedef sequence <octet> X501DistinguishedName;
35
36 // UTF-8 Encoding of String
37
38 typedef sequence <octet> UTF8String;
39
40 // ASN.1 Encoding of an OBJECT IDENTIFIER
41
42 typedef sequence <octet> OID;
43
44 typedef sequence <OID> OIDList;
45
46 // A sequence of octets containing a GSStoken. Initial context tokens are
47 // ASN.1 encoded as defined in [IETF RFC 2743] Section 3.1,
48 // "Mechanism-Independent token Format", pp. 81-82. Initial context tokens
49 // contain an ASN.1 tag followed by a token length, a mechanism identifier,
50 // and a mechanism-specific token (i.e. a GSSUP::InitialContextToken). The
51 // encoding of all other GSS tokens (e.g. error tokens and final context
52 // tokens) is mechanism dependent.
53
54 typedef sequence <octet> GSSToken;
55
56 // An encoding of a GSS Mechanism-Independent Exported Name Object as
57 // defined in [IETF RFC 2743] Section 3.2, "GSS Mechanism-Independent
58 // Exported Name Object Format," p. 84.
59
60 typedef sequence <octet> GSS_NT_ExportedName;
61
62 typedef sequence <GSS_NT_ExportedName> GSS_NT_ExportedNameList;
63
64 // The MsgType enumeration defines the complete set of service context
65 // message types used by the CSI context management protocols, including
66 // those message types pertaining only to the stateful application of the
67 // protocols (to insure proper alignment of the identifiers between
68 // stateless and stateful implementations). Specifically, the
69 // MTMessageInContext is not sent by stateless clients (although it may
70 // be received by stateless targets).
71
72 typedef short MsgType;
73
74 const MsgType MTEstablishContext = 0;
75 const MsgType MTCompleteEstablishContext = 1;
76 const MsgType MTContextError = 4;
77 const MsgType MTMessageInContext = 5;
78
79 // The ContextId type is used carry session identifiers. A stateless
80 // application of the service context protocol is indicated by a session
81 // identifier value of 0.
82
83 typedef unsigned long long ContextId;
84
85 // The AuthorizationElementType defines the contents and encoding of
86 // the_element field of the AuthorizationElement.
87
88 // The high order 20-bits of each AuthorizationElementType constant
89 // shall contain the Vendor Minor Codeset ID (VMCID) of the
90 // organization that defined the element type. The low order 12 bits
91 // shall contain the organization-scoped element type identifier. The
92 // high-order 20 bits of all element types defined by the OMG shall
93 // contain the VMCID allocated to the OMG (that is, 0x4F4D0).
94
95 typedef unsigned long AuthorizationElementType;
96
97 // An AuthorizationElementType of X509AttributeCertChain indicates that
98 // the_element field of the AuthorizationElement contains an ASN.1 BER
99 // SEQUENCE composed of an (X.509) AttributeCertificate followed by a
100 // SEQUENCE OF (X.509) Certificate. The two-part SEQUENCE is encapsulated
101 // in an octet stream. The chain of identity certificates is provided
102 // to certify the attribute certificate. Each certificate in the chain
103 // shall directly certify the one preceding it. The first certificate
104 // in the chain shall certify the attribute certificate. The ASN.1
105 // representation of (X.509) Certificate is as defined in [IETF RFC 2459].
106 // The ASN.1 representation of (X.509) AtributeCertificate is as defined
107 // in [IETF ID PKIXAC].
108
109 const AuthorizationElementType X509AttributeCertChain = OMGVMCID | 1;
110
111 typedef sequence <octet> AuthorizationElementContents;
112
113 // The AuthorizationElement contains one element of an authorization token.
114 // Each element of an authorization token is logically a PAC.
115
116 struct AuthorizationElement {
117 AuthorizationElementType the_type;
118 AuthorizationElementContents the_element;
119 };
120
121 // The AuthorizationToken is made up of a sequence of
122 // AuthorizationElements
123
124 typedef sequence <AuthorizationElement> AuthorizationToken;
125
126 typedef unsigned long IdentityTokenType;
127
128 // Additional standard identity token types shall only be defined by the
129 // OMG. All IdentityTokenType constants shall be a power of 2.
130
131 const IdentityTokenType ITTAbsent = 0;
132 const IdentityTokenType ITTAnonymous = 1;
133 const IdentityTokenType ITTPrincipalName = 2;
134 const IdentityTokenType ITTX509CertChain = 4;
135 const IdentityTokenType ITTDistinguishedName = 8;
136
137 typedef sequence <octet> IdentityExtension;
138
139 union IdentityToken switch ( IdentityTokenType ) {
140 case ITTAbsent: boolean absent;
141 case ITTAnonymous: boolean anonymous;
142 case ITTPrincipalName: GSS_NT_ExportedName principal_name;
143 case ITTX509CertChain: X509CertificateChain certificate_chain;
144 case ITTDistinguishedName: X501DistinguishedName dn;
145 default: IdentityExtension id;
146 };
147
148 struct EstablishContext {
149 ContextId client_context_id;
150 AuthorizationToken authorization_token;
151 IdentityToken identity_token;
152 GSSToken client_authentication_token;
153 };
154
155 struct CompleteEstablishContext {
156 ContextId client_context_id;
157 boolean context_stateful;
158 GSSToken final_context_token;
159 };
160
161 struct ContextError {
162 ContextId client_context_id;
163 long major_status;
164 long minor_status;
165 GSSToken error_token;
166 };
167
168 // Not sent by stateless clients. If received by a stateless server, a
169 // ContextError message should be returned, indicating the session does
170 // not exist.
171
172 struct MessageInContext {
173 ContextId client_context_id;
174 boolean discard_context;
175 };
176
177 union SASContextBody switch ( MsgType ) {
178 case MTEstablishContext: EstablishContext establish_msg;
179 case MTCompleteEstablishContext: CompleteEstablishContext complete_msg;
180 case MTContextError: ContextError error_msg;
181 case MTMessageInContext: MessageInContext in_context_msg;
182 };
183
184 // The following type represents the string representation of an ASN.1
185 // OBJECT IDENTIFIER (OID). OIDs are represented by the string "oid:"
186 // followed by the integer base 10 representation of the OID separated
187 // by dots. For example, the OID corresponding to the OMG is represented
188 // as: "oid:2.23.130"
189
190 typedef string StringOID;
191
192 // The GSS Object Identifier for the KRB5 mechanism is:
193 // { iso(1) member-body(2) United States(840) mit(113554) infosys(1)
194 // gssapi(2) krb5(2) }
195
196 const StringOID KRB5MechOID = "oid:1.2.840.113554.1.2.2";
197
198 // The GSS Object Identifier for name objects of the Mechanism-idependent
199 // Exported Name Object type is:
200 // { iso(1) org(3) dod(6) internet(1) security(5) nametypes(6)
201 // gss-api-exported-name(4) }
202
203 const StringOID GSS_NT_Export_Name_OID = "oid:1.3.6.1.5.6.4";
204
205 // The GSS Object Identifier for the scoped-username name form is:
206 // { iso-itu-t (2) international-organization (23) omg (130) security (1)
207 // naming (2) scoped-username(1) }
208
209 const StringOID GSS_NT_Scoped_Username_OID = "oid:2.23.130.1.2.1";
210
211}; // CSI
212
213#endif
Note: See TracBrowser for help on using the repository browser.