00001
00002
00003
00004
00005
00006 #ifndef _SECURITY_IDL_
00007 #define _SECURITY_IDL_
00008
00009 #include "tao/TimeBase.pidl"
00010 #include <orb.idl>
00011
00012 #pragma prefix "omg.org"
00013
00014 module Security {
00015
00016 #pragma version Security 1.8
00017
00018 typedef string SecurityName;
00019 typedef sequence<octet> Opaque;
00020
00021
00022 const CORBA::ServiceOption SecurityLevel1 = 1;
00023 const CORBA::ServiceOption SecurityLevel2 = 2;
00024 const CORBA::ServiceOption NonRepudiation = 3;
00025 const CORBA::ServiceOption SecurityORBServiceReady = 4;
00026 const CORBA::ServiceOption SecurityServiceReady = 5;
00027 const CORBA::ServiceOption ReplaceORBServices = 6;
00028 const CORBA::ServiceOption ReplaceSecurityServices = 7;
00029 const CORBA::ServiceOption StandardSecureInteroperability = 8;
00030 const CORBA::ServiceOption DCESecureInteroperability = 9;
00031
00032
00033 const CORBA::ServiceOption CommonInteroperabilityLevel0 = 10;
00034 const CORBA::ServiceOption CommonInteroperabilityLevel1 = 11;
00035 const CORBA::ServiceOption CommonInteroperabilityLevel2 = 12;
00036
00037
00038 const CORBA::ServiceDetailType SecurityMechanismType = 1;
00039
00040
00041 const CORBA::ServiceDetailType SecurityAttribute = 2;
00042
00043
00044 struct ExtensibleFamily {
00045 unsigned short family_definer;
00046 unsigned short family;
00047 };
00048
00049 typedef sequence<octet> OID;
00050
00051 typedef sequence<OID> OIDList;
00052
00053
00054 typedef unsigned long SecurityAttributeType;
00055
00056
00057
00058 const SecurityAttributeType AuditId = 1;
00059 const SecurityAttributeType AccountingId = 2;
00060 const SecurityAttributeType NonRepudiationId = 3;
00061
00062
00063
00064 const SecurityAttributeType _Public = 1;
00065 const SecurityAttributeType AccessId = 2;
00066 const SecurityAttributeType PrimaryGroupId = 3;
00067 const SecurityAttributeType GroupId = 4;
00068 const SecurityAttributeType Role = 5;
00069 const SecurityAttributeType AttributeSet = 6;
00070 const SecurityAttributeType Clearance = 7;
00071 const SecurityAttributeType Capability = 8;
00072
00073 struct AttributeType {
00074 ExtensibleFamily attribute_family;
00075 SecurityAttributeType attribute_type;
00076 };
00077
00078 typedef sequence<AttributeType> AttributeTypeList;
00079
00080 struct SecAttribute {
00081 AttributeType attribute_type;
00082 OID defining_authority;
00083 Opaque value;
00084
00085
00086 };
00087
00088 typedef sequence <SecAttribute> AttributeList;
00089
00090
00091 enum AuthenticationStatus {
00092 SecAuthSuccess,
00093 SecAuthFailure,
00094 SecAuthContinue,
00095 SecAuthExpired
00096 };
00097
00098
00099 enum AssociationStatus {
00100 SecAssocSuccess,
00101 SecAssocFailure,
00102 SecAssocContinue
00103 };
00104
00105
00106 typedef unsigned long AuthenticationMethod;
00107
00108 typedef sequence<AuthenticationMethod> AuthenticationMethodList;
00109
00110
00111
00112 enum InvocationCredentialsType {
00113 SecOwnCredentials,
00114 SecReceivedCredentials,
00115 SecTargetCredentials
00116 };
00117
00118
00119
00120 struct Right {
00121 ExtensibleFamily rights_family;
00122 string the_right;
00123 };
00124
00125 typedef sequence <Right> RightsList;
00126
00127 enum RightsCombinator {
00128 SecAllRights,
00129 SecAnyRight
00130 };
00131
00132
00133
00134 enum DelegationState {
00135 SecInitiator,
00136 SecDelegate
00137 };
00138
00139 enum DelegationDirective {
00140 Delegate,
00141 NoDelegate
00142 };
00143
00144
00145
00146 typedef TimeBase::UtcT UtcT;
00147 typedef TimeBase::IntervalT IntervalT;
00148 typedef TimeBase::TimeT TimeT;
00149
00150
00151
00152 enum SecurityFeature {
00153 SecNoDelegation,
00154 SecSimpleDelegation,
00155 SecCompositeDelegation,
00156 SecNoProtection,
00157 SecIntegrity,
00158 SecConfidentiality,
00159 SecIntegrityAndConfidentiality,
00160 SecDetectReplay,
00161 SecDetectMisordering,
00162 SecEstablishTrustInTarget,
00163 SecEstablishTrustInClient
00164 };
00165
00166
00167
00168 enum QOP {
00169 SecQOPNoProtection,
00170 SecQOPIntegrity,
00171 SecQOPConfidentiality,
00172 SecQOPIntegrityAndConfidentiality
00173 };
00174
00175
00176 enum SecurityContextType {
00177 SecClientSecurityContext,
00178 SecServerSecurityContext
00179 };
00180
00181
00182 enum SecurityContextState {
00183 SecContextInitialized,
00184 SecContextContinued,
00185 SecContextClientEstablished,
00186 SecContextEstablished,
00187 SecContextEstablishExpired,
00188 SecContextExpired,
00189 SecContextInvalid
00190 };
00191
00192 struct ChannelBindings {
00193 unsigned long initiator_addrtype;
00194 CORBA::OctetSeq initiator_address;
00195 unsigned long acceptor_addrtype;
00196 CORBA::OctetSeq acceptor_address;
00197 CORBA::OctetSeq application_data;
00198 };
00199
00200
00201 struct OpaqueBuffer {
00202 Opaque buffer;
00203 unsigned long startpos;
00204 unsigned long endpos;
00205
00206
00207 };
00208
00209
00210
00211
00212 typedef unsigned short AssociationOptions;
00213
00214 const AssociationOptions NoProtection = 1;
00215 const AssociationOptions Integrity = 2;
00216 const AssociationOptions Confidentiality = 4;
00217 const AssociationOptions DetectReplay = 8;
00218 const AssociationOptions DetectMisordering = 16;
00219 const AssociationOptions EstablishTrustInTarget = 32;
00220 const AssociationOptions EstablishTrustInClient = 64;
00221 const AssociationOptions NoDelegation = 128;
00222 const AssociationOptions SimpleDelegation = 256;
00223 const AssociationOptions CompositeDelegation = 512;
00224
00225
00226
00227 enum RequiresSupports {
00228 SecRequires,
00229 SecSupports
00230 };
00231
00232
00233
00234 enum CommunicationDirection {
00235 SecDirectionBoth,
00236 SecDirectionRequest,
00237 SecDirectionReply
00238 };
00239
00240
00241 typedef string MechanismType;
00242 typedef sequence<MechanismType> MechanismTypeList;
00243
00244
00245 struct OptionsDirectionPair {
00246 AssociationOptions options;
00247 CommunicationDirection direction;
00248 };
00249
00250 typedef sequence <OptionsDirectionPair> OptionsDirectionPairList;
00251
00252
00253 enum DelegationMode {
00254 SecDelModeNoDelegation,
00255 SecDelModeSimpleDelegation,
00256 SecDelModeCompositeDelegation
00257 };
00258
00259
00260 struct MechandOptions {
00261 MechanismType mechanism_type;
00262 AssociationOptions options_supported;
00263 };
00264
00265 typedef sequence <MechandOptions> MechandOptionsList;
00266
00267
00268 struct EstablishTrust {
00269 boolean trust_in_client;
00270 boolean trust_in_target;
00271 };
00272
00273
00274 typedef unsigned long AuditChannelId;
00275 typedef unsigned short _EventType;
00276
00277 const _EventType AuditAll = 0;
00278 const _EventType AuditPrincipalAuth = 1;
00279 const _EventType AuditSessionAuth = 2;
00280 const _EventType AuditAuthorization = 3;
00281 const _EventType AuditInvocation = 4;
00282 const _EventType AuditSecEnvChange = 5;
00283 const _EventType AuditPolicyChange = 6;
00284 const _EventType AuditObjectCreation = 7;
00285 const _EventType AuditObjectDestruction = 8;
00286 const _EventType AuditNonRepudiation = 9;
00287
00288 enum DayOfTheWeek {
00289 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
00290 };
00291
00292 enum AuditCombinator {
00293 SecAllSelectors,
00294 SecAnySelector
00295 };
00296
00297 struct AuditEventType {
00298 ExtensibleFamily event_family;
00299 _EventType event_type;
00300 };
00301
00302 typedef sequence <AuditEventType> AuditEventTypeList;
00303
00304 typedef unsigned long SelectorType;
00305
00306 const SelectorType InterfaceName = 1;
00307 const SelectorType ObjectRef = 2;
00308 const SelectorType Operation = 3;
00309 const SelectorType Initiator = 4;
00310 const SelectorType SuccessFailure = 5;
00311 const SelectorType Time = 6;
00312 const SelectorType DayOfWeek = 7;
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324 struct SelectorValue {
00325 SelectorType selector;
00326 any value;
00327 };
00328
00329 typedef sequence <SelectorValue> SelectorValueList;
00330
00331
00332
00333
00334 const CORBA::PolicyType SecClientInvocationAccess = 1;
00335 const CORBA::PolicyType SecTargetInvocationAccess = 2;
00336 const CORBA::PolicyType SecApplicationAccess = 3;
00337 const CORBA::PolicyType SecClientInvocationAudit = 4;
00338 const CORBA::PolicyType SecTargetInvocationAudit = 5;
00339 const CORBA::PolicyType SecApplicationAudit = 6;
00340 const CORBA::PolicyType SecDelegation = 7;
00341 const CORBA::PolicyType SecClientSecureInvocation = 8;
00342 const CORBA::PolicyType SecTargetSecureInvocation = 9;
00343 const CORBA::PolicyType SecNonRepudiation = 10;
00344
00345
00346
00347 const CORBA::PolicyType SecMechanismsPolicy = 12;
00348 const CORBA::PolicyType SecInvocationCredentialsPolicy = 13;
00349 const CORBA::PolicyType SecFeaturePolicy = 14;
00350 const CORBA::PolicyType SecQOPPolicy = 15;
00351
00352 const CORBA::PolicyType SecDelegationDirectivePolicy = 38;
00353 const CORBA::PolicyType SecEstablishTrustPolicy = 39;
00354 };
00355
00356 #pragma prefix ""
00357
00358 #endif