00001 /* 00002 * 00003 * 00004 * Distributed under the OpenDDS License. 00005 * See: http://www.opendds.org/license.html 00006 * 00007 * This file contains common functionality shared between RtpsCore.idl and 00008 * DdsSecurityCore.idl. In particular, dependencies for the Parameter types 00009 * added by the DDS Security Spec. 00010 * 00011 */ 00012 00013 #ifndef DDS_SECURITY_PARAMS_IDL 00014 #define DDS_SECURITY_PARAMS_IDL 00015 00016 #include "DdsDcpsCore.idl" 00017 00018 module DDS { 00019 module Security { 00020 00021 typedef unsigned short ParameterId_t; 00022 00023 // Security-specific parameters 00024 // The DDS Security specification reserves ParameterIDs in the range: 0x1000 to 00025 // 0x1FFF and 0x5000 to 0x5FFF. 00026 const ParameterId_t PID_IDENTITY_TOKEN = 0x1001; 00027 const ParameterId_t PID_PERMISSIONS_TOKEN = 0x1002; 00028 const ParameterId_t PID_DATA_TAGS = 0x1003; 00029 const ParameterId_t PID_ENDPOINT_SECURITY_INFO = 0x1004; 00030 const ParameterId_t PID_PARTICIPANT_SECURITY_INFO = 0x1005; 00031 const ParameterId_t PID_IDENTITY_STATUS_TOKEN = 0x1006; 00032 00033 struct DataHolder { 00034 string class_id; 00035 PropertySeq properties; 00036 BinaryPropertySeq binary_properties; 00037 }; 00038 typedef sequence<DataHolder> DataHolderSeq; 00039 00040 typedef DataHolder Token; 00041 typedef Token IdentityToken; 00042 typedef Token PermissionsToken; 00043 typedef Token IdentityStatusToken; 00044 00045 struct Tag { 00046 string name; 00047 string value; 00048 }; 00049 00050 typedef sequence<Tag> TagSeq; 00051 struct DataTags { 00052 TagSeq tags; 00053 }; 00054 00055 typedef unsigned long ParticipantSecurityAttributesMask; 00056 00057 const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_PROTECTED = 1 << 0; 00058 const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED = 1 << 1; 00059 const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED = 1 << 2; 00060 const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31; 00061 00062 typedef unsigned long PluginParticipantSecurityAttributesMask; 00063 00064 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ENCRYPTED = 1 << 0; 00065 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_BUILTIN_IS_DISCOVERY_ENCRYPTED = 1 << 1; 00066 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_ENCRYPTED = 1 << 2; 00067 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ORIGIN_AUTHENTICATED = 1 << 3; 00068 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_ORIGIN_AUTHENTICATED = 1 << 4; 00069 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_ORIGIN_AUTHENTICATED = 1 << 5; 00070 const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31; 00071 00072 //@extensibility(APPENDABLE) 00073 struct ParticipantSecurityInfo { 00074 ParticipantSecurityAttributesMask participant_security_attributes; 00075 PluginParticipantSecurityAttributesMask plugin_participant_security_attributes; 00076 }; 00077 00078 typedef unsigned long EndpointSecurityAttributesMask; 00079 typedef unsigned long PluginEndpointSecurityAttributesMask; 00080 00081 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_READ_PROTECTED = 1 << 0; 00082 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_WRITE_PROTECTED = 1 << 1; 00083 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED = 1 << 2; 00084 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_PROTECTED = 1 << 3; 00085 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_PROTECTED = 1 << 4; 00086 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_KEY_PROTECTED = 1 << 5; 00087 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED = 1 << 6; 00088 const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31; 00089 00090 const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ENCRYPTED = 1 << 0; 00091 const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_ENCRYPTED = 1 << 1; 00092 const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ORIGIN_AUTHENTICATED = 1 << 2; 00093 00094 //@extensibility(APPENDABLE) 00095 struct EndpointSecurityInfo { 00096 EndpointSecurityAttributesMask endpoint_security_attributes; 00097 PluginEndpointSecurityAttributesMask plugin_endpoint_security_attributes; 00098 }; 00099 00100 typedef unsigned long BuiltinEndpointSet_t; 00101 const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_WRITER = 1 << 16; 00102 const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_READER = 1 << 17; 00103 const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_WRITER = 1 << 18; 00104 const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_READER = 1 << 19; 00105 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_WRITER = 1 << 20; 00106 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_READER = 1 << 21; 00107 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_WRITER = 1 << 22; 00108 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_READER = 1 << 23; 00109 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_WRITER = 1 << 24; 00110 const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_READER = 1 << 25; 00111 const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_WRITER = 1 << 26; 00112 const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_READER = 1 << 27; 00113 }; 00114 }; 00115 00116 #endif /* DDS_SECURITY_PARAMS_IDL */