| 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
|
|---|
| 13 | import ::IOP;
|
|---|
| 14 | import ::CSI;
|
|---|
| 15 | #endif // _PRE_3_0_COMPILER_
|
|---|
| 16 |
|
|---|
| 17 | module 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_
|
|---|