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

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

Orbit2 modified for use with NOM

File size: 4.5 KB
Line 
1//
2// File: CSIIOP.idl
3// CORBA 3.0, Chapter 22
4
5#ifndef _CSIIOP_IDL_
6#define _CSIIOP_IDL_
7
8#ifdef _PRE_3_0_COMPILER_
9#pragma prefix "omg.org"
10#include <IOP.idl>
11#include <CSI.idl>
12#else
13import ::IOP;
14import ::CSI;
15#endif // _PRE_3_0_COMPILER_
16
17module CSIIOP {
18
19#ifndef _PRE_3_0_COMPILER_
20 typeprefix CSIIOP "omg.org";
21#endif // _PRE_3_0_COMPILER_
22
23 // Association options
24
25 typedef unsigned short AssociationOptions;
26
27 const AssociationOptions NoProtection = 1;
28 const AssociationOptions Integrity = 2;
29 const AssociationOptions Confidentiality = 4;
30 const AssociationOptions DetectReplay = 8;
31 const AssociationOptions DetectMisordering = 16;
32 const AssociationOptions EstablishTrustInTarget = 32;
33 const AssociationOptions EstablishTrustInClient = 64;
34 const AssociationOptions NoDelegation = 128;
35 const AssociationOptions SimpleDelegation = 256;
36 const AssociationOptions CompositeDelegation = 512;
37 const AssociationOptions IdentityAssertion = 1024;
38 const AssociationOptions DelegationByClient = 2048;
39
40 // The high order 20-bits of each ServiceConfigurationSyntax constant
41 // shall contain the Vendor Minor Codeset ID (VMCID) of the
42 // organization that defined the syntax. The low order 12 bits shall
43 // contain the organization-scoped syntax identifier. The high-order 20
44 // bits of all syntaxes defined by the OMG shall contain the VMCID
45 // allocated to the OMG (that is, 0x4F4D0).
46
47 typedef unsigned long ServiceConfigurationSyntax;
48
49 const ServiceConfigurationSyntax SCS_GeneralNames = CSI::OMGVMCID | 0;
50 const ServiceConfigurationSyntax SCS_GSSExportedName = CSI::OMGVMCID | 1;
51
52 typedef sequence <octet> ServiceSpecificName;
53
54 // The name field of the ServiceConfiguration structure identifies a
55 // privilege authority in the format identified in the syntax field. If the
56 // syntax is SCS_GeneralNames, the name field contains an ASN.1 (BER)
57 // SEQUENCE [1..MAX] OF GeneralName, as defined by the type GeneralNames in
58 // [IETF RFC 2459]. If the syntax is SCS_GSSExportedName, the name field
59 // contains a GSS exported name encoded according to the rules in
60 // [IETF RFC 2743] Section 3.2, "Mechanism-Independent Exported Name
61 // Object Format," p. 84.
62
63 struct ServiceConfiguration {
64 ServiceConfigurationSyntax syntax;
65 ServiceSpecificName name;
66 };
67
68 typedef sequence <ServiceConfiguration> ServiceConfigurationList;
69
70 // The body of the TAG_NULL_TAG component is a sequence of octets of
71 // length 0.
72
73 // type used to define AS layer functionality within a compound mechanism
74 // definition
75
76 struct AS_ContextSec {
77 AssociationOptions target_supports;
78 AssociationOptions target_requires;
79 CSI::OID client_authentication_mech;
80 CSI::GSS_NT_ExportedName target_name;
81 };
82
83 // type used to define SAS layer functionality within a compound mechanism
84 // definition
85
86 struct SAS_ContextSec {
87 AssociationOptions target_supports;
88 AssociationOptions target_requires;
89 ServiceConfigurationList privilege_authorities;
90 CSI::OIDList supported_naming_mechanisms;
91 CSI::IdentityTokenType supported_identity_types;
92 };
93
94 // type used in the body of a TAG_CSI_SEC_MECH_LIST component to
95 // describe a compound mechanism
96
97 struct CompoundSecMech {
98 AssociationOptions target_requires;
99 IOP::TaggedComponent transport_mech;
100 AS_ContextSec as_context_mech;
101 SAS_ContextSec sas_context_mech;
102 };
103
104 typedef sequence <CompoundSecMech> CompoundSecMechanisms;
105
106 // type corresponding to the body of a TAG_CSI_SEC_MECH_LIST
107 // component
108
109 struct CompoundSecMechList {
110 boolean stateful;
111 CompoundSecMechanisms mechanism_list;
112 };
113
114 struct TransportAddress {
115 string host_name;
116 unsigned short port;
117 };
118
119 typedef sequence <TransportAddress> TransportAddressList;
120
121 // Tagged component for configuring SECIOP as a CSIv2 transport mechanism
122
123 const IOP::ComponentId TAG_SECIOP_SEC_TRANS = 35;
124
125 struct SECIOP_SEC_TRANS {
126 AssociationOptions target_supports;
127 AssociationOptions target_requires;
128 CSI::OID mech_oid;
129 CSI::GSS_NT_ExportedName target_name;
130 TransportAddressList addresses;
131 };
132
133 // tagged component for configuring TLS/SSL as a CSIv2 transport mechanism
134
135 const IOP::ComponentId TAG_TLS_SEC_TRANS = 36;
136
137 struct TLS_SEC_TRANS {
138 AssociationOptions target_supports;
139 AssociationOptions target_requires;
140 TransportAddressList addresses;
141 };
142
143}; //CSIIOP
144
145#endif // _CSIIOP_IDL_
Note: See TracBrowser for help on using the repository browser.