OpenDDS  Snapshot(2023/04/28-20:55)
DdsSecurityParams.idl
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  *
7  * This file contains common functionality shared between RtpsCore.idl and
8  * DdsSecurityCore.idl. In particular, dependencies for the Parameter types
9  * added by the DDS Security Spec.
10  *
11  */
12 
13 #ifdef OPENDDS_SECURITY
14 #ifndef OPENDDS_DDS_SECURITY_PARAMS_IDL
15 #define OPENDDS_DDS_SECURITY_PARAMS_IDL
16 
17 #include "DdsDcpsCore.idl"
18 
19 module DDS {
20  module Security {
21 
22  typedef unsigned short ParameterId_t;
23 
24  // Security-specific parameters
25  // The DDS Security specification reserves ParameterIDs in the range: 0x1000 to
26  // 0x1FFF and 0x5000 to 0x5FFF.
27  const ParameterId_t PID_IDENTITY_TOKEN = 0x1001;
28  const ParameterId_t PID_PERMISSIONS_TOKEN = 0x1002;
29  const ParameterId_t PID_DATA_TAGS = 0x1003;
30  const ParameterId_t PID_ENDPOINT_SECURITY_INFO = 0x1004;
31  const ParameterId_t PID_PARTICIPANT_SECURITY_INFO = 0x1005;
32  const ParameterId_t PID_IDENTITY_STATUS_TOKEN = 0x1006;
33  // https://issues.omg.org/browse/DDSSEC12-87
34  const ParameterId_t PID_EXTENDED_BUILTIN_ENDPOINTS = 0x1007;
35 
36  struct DataHolder {
37  string class_id;
40  };
41  typedef sequence<DataHolder> DataHolderSeq;
42 
43  typedef DataHolder Token;
44  typedef Token IdentityToken;
45  typedef Token PermissionsToken;
46  typedef Token IdentityStatusToken;
47 
48  struct Tag {
49  string name;
50  string value;
51  };
52 
53  typedef sequence<Tag> TagSeq;
54  struct DataTags {
55  TagSeq tags;
56  };
57 
58  typedef unsigned long ParticipantSecurityAttributesMask;
59 
60  const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_PROTECTED = 1 << 0;
61  const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED = 1 << 1;
62  const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED = 1 << 2;
63  const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31;
64 
66 
67  const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ENCRYPTED = 1 << 0;
68  const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_BUILTIN_IS_DISCOVERY_ENCRYPTED = 1 << 1;
69  const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_ENCRYPTED = 1 << 2;
70  const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ORIGIN_AUTHENTICATED = 1 << 3;
73  const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31;
74 
75  //@extensibility(APPENDABLE)
77  ParticipantSecurityAttributesMask participant_security_attributes;
78  PluginParticipantSecurityAttributesMask plugin_participant_security_attributes;
79  };
80 
81  typedef unsigned long EndpointSecurityAttributesMask;
82  typedef unsigned long PluginEndpointSecurityAttributesMask;
83 
84  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_READ_PROTECTED = 1 << 0;
85  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_WRITE_PROTECTED = 1 << 1;
86  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED = 1 << 2;
87  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_PROTECTED = 1 << 3;
88  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_PROTECTED = 1 << 4;
89  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_KEY_PROTECTED = 1 << 5;
90  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED = 1 << 6;
91  const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID = 1 << 31;
92 
93  const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ENCRYPTED = 1 << 0;
94  const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_ENCRYPTED = 1 << 1;
95  const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ORIGIN_AUTHENTICATED = 1 << 2;
96 
97  //@extensibility(APPENDABLE)
99  EndpointSecurityAttributesMask endpoint_security_attributes;
100  PluginEndpointSecurityAttributesMask plugin_endpoint_security_attributes;
101  };
102 
103  typedef unsigned long BuiltinEndpointSet_t;
104  const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_WRITER = 1 << 16;
105  const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_READER = 1 << 17;
106  const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_WRITER = 1 << 18;
107  const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_READER = 1 << 19;
108  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_WRITER = 1 << 20;
109  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_READER = 1 << 21;
110  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_WRITER = 1 << 22;
111  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_READER = 1 << 23;
112  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_WRITER = 1 << 24;
113  const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_READER = 1 << 25;
114  const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_WRITER = 1 << 26;
115  const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_READER = 1 << 27;
116 
117  // https://issues.omg.org/browse/DDSSEC12-87
118  typedef unsigned long ExtendedBuiltinEndpointSet_t;
119  const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REQUEST_WRITER_SECURE = 1 << 0;
120  const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REQUEST_READER_SECURE = 1 << 1;
121  const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REPLY_WRITER_SECURE = 1 << 2;
122  const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REPLY_READER_SECURE = 1 << 3;
123  };
124 };
125 
126 #endif /* DDS_SECURITY_PARAMS_IDL */
127 #endif
sequence< Tag > TagSeq
BinaryPropertySeq binary_properties
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_ORIGIN_AUTHENTICATED
const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REPLY_READER_SECURE
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_PROTECTED
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_PROTECTED
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_PROTECTED
DDS::PropertySeq PropertySeq
const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_READER
const ParameterId_t PID_EXTENDED_BUILTIN_ENDPOINTS
unsigned long ExtendedBuiltinEndpointSet_t
PluginParticipantSecurityAttributesMask plugin_participant_security_attributes
unsigned long PluginEndpointSecurityAttributesMask
const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REPLY_WRITER_SECURE
PluginEndpointSecurityAttributesMask plugin_endpoint_security_attributes
sequence< DataHolder > DataHolderSeq
unsigned short ParameterId_t
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID
EndpointSecurityAttributesMask endpoint_security_attributes
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_VALID
const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_READER
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_PROTECTED
const ParameterId_t PID_DATA_TAGS
ParticipantSecurityAttributesMask participant_security_attributes
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_WRITE_PROTECTED
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_ENCRYPTED
const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ORIGIN_AUTHENTICATED
const ParameterId_t PID_PERMISSIONS_TOKEN
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_BUILTIN_IS_DISCOVERY_ENCRYPTED
const ParameterId_t PID_IDENTITY_TOKEN
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_WRITER
unsigned long EndpointSecurityAttributesMask
unsigned long PluginParticipantSecurityAttributesMask
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID
DDS::BinaryPropertySeq BinaryPropertySeq
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_WRITER
const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REQUEST_READER_SECURE
The End User API.
const ParameterId_t PID_IDENTITY_STATUS_TOKEN
const BuiltinEndpointSet_t SPDP_BUILTIN_PARTICIPANT_SECURE_WRITER
const BuiltinEndpointSet_t SEDP_BUILTIN_PUBLICATIONS_SECURE_WRITER
unsigned long ParticipantSecurityAttributesMask
const ParameterId_t PID_ENDPOINT_SECURITY_INFO
const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_READER
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_LIVELINESS_ORIGIN_AUTHENTICATED
const ExtendedBuiltinEndpointSet_t TYPE_LOOKUP_SERVICE_REQUEST_WRITER_SECURE
unsigned long BuiltinEndpointSet_t
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_VOLATILE_MESSAGE_SECURE_READER
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_STATELESS_MESSAGE_READER
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ORIGIN_AUTHENTICATED
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_READER
const BuiltinEndpointSet_t SEDP_BUILTIN_SUBSCRIPTIONS_SECURE_WRITER
const ParticipantSecurityAttributesMask PLUGIN_PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_RTPS_ENCRYPTED
const ParticipantSecurityAttributesMask PARTICIPANT_SECURITY_ATTRIBUTES_FLAG_IS_DISCOVERY_PROTECTED
const ParameterId_t PID_PARTICIPANT_SECURITY_INFO
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_READ_PROTECTED
const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_PAYLOAD_ENCRYPTED
const PluginEndpointSecurityAttributesMask PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ENCRYPTED
const BuiltinEndpointSet_t BUILTIN_PARTICIPANT_MESSAGE_SECURE_WRITER
const EndpointSecurityAttributesMask ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_KEY_PROTECTED