// // File: CSIIOP.idl // CORBA 3.0, Chapter 22 #ifndef _CSIIOP_IDL_ #define _CSIIOP_IDL_ #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #include #include #else import ::IOP; import ::CSI; #endif // _PRE_3_0_COMPILER_ module CSIIOP { #ifndef _PRE_3_0_COMPILER_ typeprefix CSIIOP "omg.org"; #endif // _PRE_3_0_COMPILER_ // Association options typedef unsigned short AssociationOptions; const AssociationOptions NoProtection = 1; const AssociationOptions Integrity = 2; const AssociationOptions Confidentiality = 4; const AssociationOptions DetectReplay = 8; const AssociationOptions DetectMisordering = 16; const AssociationOptions EstablishTrustInTarget = 32; const AssociationOptions EstablishTrustInClient = 64; const AssociationOptions NoDelegation = 128; const AssociationOptions SimpleDelegation = 256; const AssociationOptions CompositeDelegation = 512; const AssociationOptions IdentityAssertion = 1024; const AssociationOptions DelegationByClient = 2048; // The high order 20-bits of each ServiceConfigurationSyntax constant // shall contain the Vendor Minor Codeset ID (VMCID) of the // organization that defined the syntax. The low order 12 bits shall // contain the organization-scoped syntax identifier. The high-order 20 // bits of all syntaxes defined by the OMG shall contain the VMCID // allocated to the OMG (that is, 0x4F4D0). typedef unsigned long ServiceConfigurationSyntax; const ServiceConfigurationSyntax SCS_GeneralNames = CSI::OMGVMCID | 0; const ServiceConfigurationSyntax SCS_GSSExportedName = CSI::OMGVMCID | 1; typedef sequence ServiceSpecificName; // The name field of the ServiceConfiguration structure identifies a // privilege authority in the format identified in the syntax field. If the // syntax is SCS_GeneralNames, the name field contains an ASN.1 (BER) // SEQUENCE [1..MAX] OF GeneralName, as defined by the type GeneralNames in // [IETF RFC 2459]. If the syntax is SCS_GSSExportedName, the name field // contains a GSS exported name encoded according to the rules in // [IETF RFC 2743] Section 3.2, "Mechanism-Independent Exported Name // Object Format," p. 84. struct ServiceConfiguration { ServiceConfigurationSyntax syntax; ServiceSpecificName name; }; typedef sequence ServiceConfigurationList; // The body of the TAG_NULL_TAG component is a sequence of octets of // length 0. // type used to define AS layer functionality within a compound mechanism // definition struct AS_ContextSec { AssociationOptions target_supports; AssociationOptions target_requires; CSI::OID client_authentication_mech; CSI::GSS_NT_ExportedName target_name; }; // type used to define SAS layer functionality within a compound mechanism // definition struct SAS_ContextSec { AssociationOptions target_supports; AssociationOptions target_requires; ServiceConfigurationList privilege_authorities; CSI::OIDList supported_naming_mechanisms; CSI::IdentityTokenType supported_identity_types; }; // type used in the body of a TAG_CSI_SEC_MECH_LIST component to // describe a compound mechanism struct CompoundSecMech { AssociationOptions target_requires; IOP::TaggedComponent transport_mech; AS_ContextSec as_context_mech; SAS_ContextSec sas_context_mech; }; typedef sequence CompoundSecMechanisms; // type corresponding to the body of a TAG_CSI_SEC_MECH_LIST // component struct CompoundSecMechList { boolean stateful; CompoundSecMechanisms mechanism_list; }; struct TransportAddress { string host_name; unsigned short port; }; typedef sequence TransportAddressList; // Tagged component for configuring SECIOP as a CSIv2 transport mechanism const IOP::ComponentId TAG_SECIOP_SEC_TRANS = 35; struct SECIOP_SEC_TRANS { AssociationOptions target_supports; AssociationOptions target_requires; CSI::OID mech_oid; CSI::GSS_NT_ExportedName target_name; TransportAddressList addresses; }; // tagged component for configuring TLS/SSL as a CSIv2 transport mechanism const IOP::ComponentId TAG_TLS_SEC_TRANS = 36; struct TLS_SEC_TRANS { AssociationOptions target_supports; AssociationOptions target_requires; TransportAddressList addresses; }; }; //CSIIOP #endif // _CSIIOP_IDL_