00001
00002
00003
00004
00005
00006
00007
00008 #ifndef DDS_SECURITY_CORE_IDL
00009 #define DDS_SECURITY_CORE_IDL
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "DdsDcpsGuid.idl"
00021 #include "DdsDcpsInfrastructure.idl"
00022 #include "DdsDcpsPublication.idl"
00023 #include "DdsDcpsSubscription.idl"
00024 #include "DdsSecurityParams.idl"
00025
00026
00027 module DDS {
00028 module Security {
00029
00030
00031
00032
00033 local interface DynamicData {
00034 };
00035
00036
00037
00038
00039 typedef DDS::Property_t Property_t;
00040 typedef DDS::PropertySeq PropertySeq;
00041 typedef DDS::BinaryProperty_t BinaryProperty_t;
00042 typedef DDS::BinaryPropertySeq BinaryPropertySeq;
00043 typedef DDS::PropertyQosPolicy PropertyQosPolicy;
00044
00045 typedef Token MessageToken;
00046 typedef MessageToken AuthRequestMessageToken;
00047 typedef MessageToken HandshakeMessageToken;
00048
00049 typedef Token AuthenticatedPeerCredentialToken;
00050 typedef Token PermissionsCredentialToken;
00051
00052 typedef Token CryptoToken;
00053 typedef sequence<CryptoToken> CryptoTokenSeq;
00054
00055 typedef Token ParticipantCryptoToken;
00056 typedef Token DatawriterCryptoToken;
00057 typedef Token DatareaderCryptoToken;
00058
00059 typedef CryptoTokenSeq ParticipantCryptoTokenSeq;
00060 typedef CryptoTokenSeq DatawriterCryptoTokenSeq;
00061 typedef CryptoTokenSeq DatareaderCryptoTokenSeq;
00062
00063 struct MessageIdentity {
00064 OpenDDS::DCPS::GUID_t source_guid;
00065 long long sequence_number;
00066 };
00067
00068 typedef string GenericMessageClassId;
00069
00070
00071 struct ParticipantGenericMessage {
00072 MessageIdentity message_identity;
00073 MessageIdentity related_message_identity;
00074 OpenDDS::DCPS::GUID_t destination_participant_guid;
00075 OpenDDS::DCPS::GUID_t destination_endpoint_guid;
00076 OpenDDS::DCPS::GUID_t source_endpoint_guid;
00077 GenericMessageClassId message_class_id;
00078 DataHolderSeq message_data;
00079 };
00080
00081 typedef ParticipantGenericMessage ParticipantStatelessMessage;
00082 typedef ParticipantGenericMessage ParticipantVolatileMessageSecure;
00083
00084 const string GMCLASSID_SECURITY_AUTH_REQUEST = "dds.sec.auth_request";
00085 const string GMCLASSID_SECURITY_AUTH_HANDSHAKE = "dds.sec.auth";
00086 const string GMCLASSID_SECURITY_PARTICIPANT_CRYPTO_TOKENS = "dds.sec.participant_crypto_tokens";
00087 const string GMCLASSID_SECURITY_DATAWRITER_CRYPTO_TOKENS = "dds.sec.datawriter_crypto_tokens";
00088 const string GMCLASSID_SECURITY_DATAREADER_CRYPTO_TOKENS = "dds.sec.datareader_crypto_tokens";
00089
00090 const ReturnCode_t RETCODE_NOT_ALLOWED_BY_SECURITY = 1000;
00091
00092 typedef DataTags DataTagQosPolicy;
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113 struct ParticipantBuiltinTopicData {
00114
00115 DDS::ParticipantBuiltinTopicData base;
00116
00117 IdentityToken identity_token;
00118 PermissionsToken permissions_token;
00119 PropertyQosPolicy property;
00120 ParticipantSecurityInfo security_info;
00121 };
00122
00123
00124 struct ParticipantBuiltinTopicDataSecure {
00125 ParticipantBuiltinTopicData base;
00126
00127 IdentityStatusToken identity_status_token;
00128 };
00129
00130
00131 struct PublicationBuiltinTopicData {
00132 DDS::PublicationBuiltinTopicData base;
00133
00134 EndpointSecurityInfo security_info;
00135 };
00136
00137
00138 struct SubscriptionBuiltinTopicData {
00139 DDS::SubscriptionBuiltinTopicData base;
00140
00141 EndpointSecurityInfo security_info;
00142 };
00143
00144
00145 struct PublicationBuiltinTopicDataSecure {
00146 PublicationBuiltinTopicData base;
00147
00148 DataTags data_tags;
00149 };
00150
00151
00152 struct SubscriptionBuiltinTopicDataSecure {
00153 SubscriptionBuiltinTopicData base;
00154
00155 DataTags data_tags;
00156 };
00157
00158 struct SecurityException {
00159 string message;
00160 long code;
00161 long minor_code;
00162 };
00163
00164 enum ValidationResult_t {
00165 VALIDATION_OK,
00166 VALIDATION_FAILED,
00167 VALIDATION_PENDING_RETRY,
00168 VALIDATION_PENDING_HANDSHAKE_REQUEST,
00169 VALIDATION_PENDING_HANDSHAKE_MESSAGE,
00170 VALIDATION_OK_FINAL_MESSAGE
00171 };
00172
00173 typedef long IdentityHandle;
00174 typedef long HandshakeHandle;
00175 typedef long PermissionsHandle;
00176
00177
00178 local interface SharedSecretHandle {
00179 readonly attribute OctetSeq challenge1, challenge2, sharedSecret;
00180 };
00181
00182 typedef long ParticipantCryptoHandle;
00183 typedef sequence<ParticipantCryptoHandle> ParticipantCryptoHandleSeq;
00184
00185
00186 typedef long NativeCryptoHandle;
00187
00188 typedef NativeCryptoHandle DatawriterCryptoHandle;
00189 typedef sequence<DatawriterCryptoHandle> DatawriterCryptoHandleSeq;
00190
00191 typedef NativeCryptoHandle DatareaderCryptoHandle;
00192 typedef sequence<DatareaderCryptoHandle> DatareaderCryptoHandleSeq;
00193
00194 local interface Authentication;
00195
00196 enum AuthStatusKind {
00197 RESERVED_AUTH_STATUS_KIND_0,
00198
00199 IDENTITY_STATUS
00200 };
00201
00202 local interface AuthenticationListener {
00203 boolean
00204 on_revoke_identity(
00205 in Authentication plugin,
00206 in IdentityHandle handle,
00207 inout SecurityException ex);
00208
00209 boolean
00210 on_status_changed(
00211 in Authentication plugin,
00212 in IdentityHandle handle,
00213 in AuthStatusKind status_kind,
00214 inout SecurityException ex);
00215 };
00216
00217 typedef DDS::DomainId_t DomainId_t;
00218
00219 local interface Authentication {
00220
00221 ValidationResult_t
00222 validate_local_identity(
00223 inout IdentityHandle local_identity_handle,
00224 inout OpenDDS::DCPS::GUID_t adjusted_participant_guid,
00225 in DomainId_t domain_id,
00226 in DomainParticipantQos participant_qos,
00227 in OpenDDS::DCPS::GUID_t candidate_participant_guid,
00228 inout SecurityException ex );
00229
00230 boolean
00231 get_identity_token(
00232 inout IdentityToken identity_token,
00233 in IdentityHandle handle,
00234 inout SecurityException ex );
00235
00236 boolean
00237 get_identity_status_token(
00238 inout IdentityStatusToken identity_status_token,
00239 in IdentityHandle handle,
00240 inout SecurityException ex );
00241
00242 boolean
00243 set_permissions_credential_and_token(
00244 in IdentityHandle handle,
00245 in PermissionsCredentialToken permissions_credential,
00246 in PermissionsToken permissions_token,
00247 inout SecurityException ex );
00248
00249 ValidationResult_t
00250 validate_remote_identity(
00251 inout IdentityHandle remote_identity_handle,
00252 inout AuthRequestMessageToken local_auth_request_token,
00253 in AuthRequestMessageToken remote_auth_request_token,
00254 in IdentityHandle local_identity_handle,
00255 in IdentityToken remote_identity_token,
00256 in OpenDDS::DCPS::GUID_t remote_participant_guid,
00257 inout SecurityException ex );
00258
00259 ValidationResult_t
00260 begin_handshake_request(
00261 inout HandshakeHandle handshake_handle,
00262 inout HandshakeMessageToken handshake_message,
00263 in IdentityHandle initiator_identity_handle,
00264 in IdentityHandle replier_identity_handle,
00265 in OctetSeq serialized_local_participant_data,
00266 inout SecurityException ex );
00267
00268 ValidationResult_t
00269 begin_handshake_reply(
00270 inout HandshakeHandle handshake_handle,
00271 inout HandshakeMessageToken handshake_message_out,
00272 in IdentityHandle initiator_identity_handle,
00273 in IdentityHandle replier_identity_handle,
00274 in OctetSeq serialized_local_participant_data,
00275 inout SecurityException ex );
00276
00277 ValidationResult_t
00278 process_handshake(
00279 inout HandshakeMessageToken handshake_message_out,
00280 in HandshakeMessageToken handshake_message_in,
00281 in HandshakeHandle handshake_handle,
00282 inout SecurityException ex );
00283
00284 SharedSecretHandle
00285 get_shared_secret(
00286 in HandshakeHandle handshake_handle,
00287 inout SecurityException ex );
00288
00289 boolean
00290 get_authenticated_peer_credential_token(
00291 inout AuthenticatedPeerCredentialToken peer_credential_token,
00292 in HandshakeHandle handshake_handle,
00293 inout SecurityException ex );
00294
00295 boolean
00296 set_listener(
00297 in AuthenticationListener listener,
00298 inout SecurityException ex );
00299
00300 boolean
00301 return_identity_token(
00302 in IdentityToken token,
00303 inout SecurityException ex);
00304
00305 boolean
00306 return_identity_status_token(
00307 in IdentityStatusToken token,
00308 inout SecurityException ex);
00309
00310 boolean
00311 return_authenticated_peer_credential_token(
00312 in AuthenticatedPeerCredentialToken peer_credential_token,
00313 inout SecurityException ex);
00314
00315 boolean
00316 return_handshake_handle(
00317 in HandshakeHandle handshake_handle,
00318 inout SecurityException ex);
00319
00320 boolean
00321 return_identity_handle(
00322 in IdentityHandle identity_handle,
00323 inout SecurityException ex);
00324
00325 boolean
00326 return_sharedsecret_handle(
00327 in SharedSecretHandle sharedsecret_handle,
00328 inout SecurityException ex);
00329 };
00330
00331 struct ParticipantSecurityAttributes {
00332 boolean allow_unauthenticated_participants;
00333 boolean is_access_protected;
00334 boolean is_rtps_protected;
00335 boolean is_discovery_protected;
00336 boolean is_liveliness_protected;
00337 PluginParticipantSecurityAttributesMask plugin_participant_attributes;
00338 PropertySeq ac_endpoint_properties;
00339 };
00340
00341 struct TopicSecurityAttributes {
00342 boolean is_read_protected;
00343 boolean is_write_protected;
00344 boolean is_discovery_protected;
00345 boolean is_liveliness_protected;
00346 };
00347
00348 struct EndpointSecurityAttributes {
00349 TopicSecurityAttributes base;
00350
00351 boolean is_submessage_protected;
00352 boolean is_payload_protected;
00353 boolean is_key_protected;
00354 PluginEndpointSecurityAttributesMask plugin_endpoint_attributes;
00355 PropertySeq ac_endpoint_properties;
00356 };
00357
00358 local interface AccessControl;
00359
00360 local interface AccessControlListener {
00361 boolean
00362 on_revoke_permissions(
00363 in AccessControl plugin,
00364 in PermissionsHandle handle);
00365 };
00366
00367 local interface AccessControl {
00368 PermissionsHandle
00369 validate_local_permissions(
00370 in Authentication auth_plugin,
00371 in IdentityHandle identity,
00372 in DomainId_t domain_id,
00373 in DomainParticipantQos participant_qos,
00374 inout SecurityException ex );
00375
00376 PermissionsHandle
00377 validate_remote_permissions(
00378 in Authentication auth_plugin,
00379 in IdentityHandle local_identity_handle,
00380 in IdentityHandle remote_identity_handle,
00381 in PermissionsToken remote_permissions_token,
00382 in AuthenticatedPeerCredentialToken remote_credential_token,
00383 inout SecurityException ex );
00384
00385 boolean
00386 check_create_participant(
00387 in PermissionsHandle permissions_handle,
00388 in DomainId_t domain_id,
00389 in DomainParticipantQos qos,
00390 inout SecurityException ex );
00391
00392 boolean
00393 check_create_datawriter(
00394 in PermissionsHandle permissions_handle,
00395 in DomainId_t domain_id,
00396 in string topic_name,
00397 in DataWriterQos qos,
00398 in PartitionQosPolicy partition,
00399 in DataTags data_tag,
00400 inout SecurityException ex);
00401
00402 boolean
00403 check_create_datareader(
00404 in PermissionsHandle permissions_handle,
00405 in DomainId_t domain_id,
00406 in string topic_name,
00407 in DataReaderQos qos,
00408 in PartitionQosPolicy partition,
00409 in DataTags data_tag,
00410 inout SecurityException ex);
00411
00412 boolean
00413 check_create_topic(
00414 in PermissionsHandle permissions_handle,
00415 in DomainId_t domain_id,
00416 in string topic_name,
00417 in TopicQos qos,
00418 inout SecurityException ex);
00419
00420 boolean
00421 check_local_datawriter_register_instance(
00422 in PermissionsHandle permissions_handle,
00423 in DataWriter writer,
00424 in DynamicData key,
00425 inout SecurityException ex);
00426
00427 boolean
00428 check_local_datawriter_dispose_instance(
00429 in PermissionsHandle permissions_handle,
00430 in DataWriter writer,
00431 in DynamicData key,
00432 inout SecurityException ex);
00433
00434 boolean
00435 check_remote_participant(
00436 in PermissionsHandle permissions_handle,
00437 in DomainId_t domain_id,
00438 in ParticipantBuiltinTopicDataSecure participant_data,
00439 inout SecurityException ex);
00440
00441 boolean
00442 check_remote_datawriter(
00443 in PermissionsHandle permissions_handle,
00444 in DomainId_t domain_id,
00445 in PublicationBuiltinTopicDataSecure publication_data,
00446 inout SecurityException ex);
00447
00448 boolean
00449 check_remote_datareader(
00450 in PermissionsHandle permissions_handle,
00451 in DomainId_t domain_id,
00452 in SubscriptionBuiltinTopicDataSecure subscription_data,
00453 inout boolean relay_only,
00454 inout SecurityException ex);
00455
00456 boolean
00457 check_remote_topic(
00458 in PermissionsHandle permissions_handle,
00459 in DomainId_t domain_id,
00460 in TopicBuiltinTopicData topic_data,
00461 inout SecurityException ex);
00462
00463 boolean
00464 check_local_datawriter_match(
00465 in PermissionsHandle writer_permissions_handle,
00466 in PermissionsHandle reader_permissions_handle,
00467 in PublicationBuiltinTopicDataSecure publication_data,
00468 in SubscriptionBuiltinTopicDataSecure subscription_data,
00469 inout SecurityException ex);
00470
00471 boolean
00472 check_local_datareader_match(
00473 in PermissionsHandle reader_permissions_handle,
00474 in PermissionsHandle writer_permissions_handle,
00475 in SubscriptionBuiltinTopicDataSecure subscription_data,
00476 in PublicationBuiltinTopicDataSecure publication_data,
00477 inout SecurityException ex);
00478
00479 boolean
00480 check_remote_datawriter_register_instance(
00481 in PermissionsHandle permissions_handle,
00482 in DataReader reader,
00483 in InstanceHandle_t publication_handle,
00484 in DynamicData key,
00485 in InstanceHandle_t instance_handle,
00486 inout SecurityException ex);
00487
00488 boolean
00489 check_remote_datawriter_dispose_instance(
00490 in PermissionsHandle permissions_handle,
00491 in DataReader reader,
00492 in InstanceHandle_t publication_handle,
00493 in DynamicData key,
00494 inout SecurityException ex);
00495
00496 boolean
00497 get_permissions_token(
00498 inout PermissionsToken permissions_token,
00499 in PermissionsHandle handle,
00500 inout SecurityException ex);
00501
00502 boolean
00503 get_permissions_credential_token(
00504 inout PermissionsCredentialToken permissions_credential_token,
00505 in PermissionsHandle handle,
00506 inout SecurityException ex);
00507
00508 boolean
00509 set_listener(
00510 in AccessControlListener listener,
00511 inout SecurityException ex);
00512
00513 boolean
00514 return_permissions_token(
00515 in PermissionsToken token,
00516 inout SecurityException ex);
00517
00518 boolean
00519 return_permissions_credential_token(
00520 in PermissionsCredentialToken permissions_credential_token,
00521 inout SecurityException ex);
00522
00523 boolean
00524 get_participant_sec_attributes(
00525 in PermissionsHandle permissions_handle,
00526 inout ParticipantSecurityAttributes attributes,
00527 inout SecurityException ex);
00528
00529 boolean
00530 get_topic_sec_attributes (
00531 in PermissionsHandle permissions_handle,
00532 in string topic_name,
00533 inout TopicSecurityAttributes attributes,
00534 inout SecurityException ex);
00535
00536 boolean
00537 get_datawriter_sec_attributes(
00538 in PermissionsHandle permissions_handle,
00539 in string topic_name,
00540 in PartitionQosPolicy partition,
00541 in DataTagQosPolicy data_tag,
00542 inout EndpointSecurityAttributes attributes,
00543 inout SecurityException ex);
00544
00545 boolean
00546 get_datareader_sec_attributes(
00547 in PermissionsHandle permissions_handle,
00548 in string topic_name,
00549 in PartitionQosPolicy partition,
00550 in DataTagQosPolicy data_tag,
00551 inout EndpointSecurityAttributes attributes,
00552 inout SecurityException ex);
00553
00554 boolean
00555 return_participant_sec_attributes(
00556 in ParticipantSecurityAttributes attributes,
00557 inout SecurityException ex);
00558
00559 boolean
00560 return_datawriter_sec_attributes(
00561 in EndpointSecurityAttributes attributes,
00562 inout SecurityException ex);
00563
00564 boolean
00565 return_datareader_sec_attributes(
00566 in EndpointSecurityAttributes attributes,
00567 inout SecurityException ex);
00568 };
00569
00570
00571
00572 local interface CryptoKeyFactory {
00573
00574 ParticipantCryptoHandle
00575 register_local_participant(
00576 in IdentityHandle participant_identity,
00577 in PermissionsHandle participant_permissions,
00578 in PropertySeq participant_properties,
00579 in ParticipantSecurityAttributes participant_security_attributes,
00580 inout SecurityException ex );
00581
00582 ParticipantCryptoHandle
00583 register_matched_remote_participant(
00584 in ParticipantCryptoHandle local_participant_crypto_handle,
00585 in IdentityHandle remote_participant_identity,
00586 in PermissionsHandle remote_participant_permissions,
00587 in SharedSecretHandle shared_secret,
00588 inout SecurityException ex);
00589
00590 DatawriterCryptoHandle
00591 register_local_datawriter(
00592 in ParticipantCryptoHandle participant_crypto,
00593 in PropertySeq datawriter_properties,
00594 in EndpointSecurityAttributes datawriter_security_attributes,
00595 inout SecurityException ex);
00596
00597 DatareaderCryptoHandle
00598 register_matched_remote_datareader(
00599 in DatawriterCryptoHandle local_datawritert_crypto_handle,
00600 in ParticipantCryptoHandle remote_participant_crypto,
00601 in SharedSecretHandle shared_secret,
00602 in boolean relay_only,
00603 inout SecurityException ex);
00604
00605 DatareaderCryptoHandle
00606 register_local_datareader(
00607 in ParticipantCryptoHandle participant_crypto,
00608 in PropertySeq datareader_properties,
00609 in EndpointSecurityAttributes datareader_security_attributes,
00610 inout SecurityException ex);
00611
00612 DatawriterCryptoHandle
00613 register_matched_remote_datawriter(
00614 in DatareaderCryptoHandle local_datareader_crypto_handle,
00615 in ParticipantCryptoHandle remote_participant_crypt,
00616 in SharedSecretHandle shared_secret,
00617 inout SecurityException ex );
00618
00619 boolean
00620 unregister_participant(
00621 in ParticipantCryptoHandle participant_crypto_handle,
00622 inout SecurityException ex);
00623
00624 boolean
00625 unregister_datawriter(
00626 in DatawriterCryptoHandle datawriter_crypto_handle,
00627 inout SecurityException ex );
00628
00629 boolean
00630 unregister_datareader(
00631 in DatareaderCryptoHandle datareader_crypto_handle,
00632 inout SecurityException ex );
00633 };
00634
00635 local interface CryptoKeyExchange {
00636 boolean
00637 create_local_participant_crypto_tokens(
00638 inout ParticipantCryptoTokenSeq local_participant_crypto_tokens,
00639 in ParticipantCryptoHandle local_participant_crypto,
00640 in ParticipantCryptoHandle remote_participant_crypto,
00641 inout SecurityException ex);
00642
00643 boolean
00644 set_remote_participant_crypto_tokens(
00645 in ParticipantCryptoHandle local_participant_crypto,
00646 in ParticipantCryptoHandle remote_participant_crypto,
00647 in ParticipantCryptoTokenSeq remote_participant_tokens,
00648 inout SecurityException ex);
00649
00650 boolean
00651 create_local_datawriter_crypto_tokens(
00652 inout DatawriterCryptoTokenSeq local_datawriter_crypto_tokens,
00653 in DatawriterCryptoHandle local_datawriter_crypto,
00654 in DatareaderCryptoHandle remote_datareader_crypto,
00655 inout SecurityException ex);
00656
00657 boolean
00658 set_remote_datawriter_crypto_tokens(
00659 in DatareaderCryptoHandle local_datareader_crypto,
00660 in DatawriterCryptoHandle remote_datawriter_crypto,
00661 in DatawriterCryptoTokenSeq remote_datawriter_tokens,
00662 inout SecurityException ex);
00663
00664 boolean
00665 create_local_datareader_crypto_tokens(
00666 inout DatareaderCryptoTokenSeq local_datareader_cryto_tokens,
00667 in DatareaderCryptoHandle local_datareader_crypto,
00668 in DatawriterCryptoHandle remote_datawriter_crypto,
00669 inout SecurityException ex);
00670
00671 boolean
00672 set_remote_datareader_crypto_tokens(
00673 in DatawriterCryptoHandle local_datawriter_crypto,
00674 in DatareaderCryptoHandle remote_datareader_crypto,
00675 in DatareaderCryptoTokenSeq remote_datareader_tokens,
00676 inout SecurityException ex);
00677
00678 boolean
00679 return_crypto_tokens(
00680 in CryptoTokenSeq crypto_tokens,
00681 inout SecurityException ex);
00682 };
00683
00684 enum SecureSubmessageCategory_t {
00685 INFO_SUBMESSAGE,
00686 DATAWRITER_SUBMESSAGE,
00687 DATAREADER_SUBMESSAGE
00688 };
00689
00690 local interface CryptoTransform {
00691 boolean
00692 encode_serialized_payload(
00693 inout OctetSeq encoded_buffer,
00694 inout OctetSeq extra_inline_qos,
00695 in OctetSeq plain_buffer,
00696 in DatawriterCryptoHandle sending_datawriter_crypto,
00697 inout SecurityException ex);
00698
00699 boolean
00700 encode_datawriter_submessage(
00701 inout OctetSeq encoded_rtps_submessage,
00702 in OctetSeq plain_rtps_submessage,
00703 in DatawriterCryptoHandle sending_datawriter_crypto,
00704 in DatareaderCryptoHandleSeq receiving_datareader_crypto_list,
00705 inout long receiving_datareader_crypto_list_index,
00706 inout SecurityException ex);
00707
00708 boolean
00709 encode_datareader_submessage(
00710 inout OctetSeq encoded_rtps_submessage,
00711 in OctetSeq plain_rtps_submessage,
00712 in DatareaderCryptoHandle sending_datareader_crypto,
00713 in DatawriterCryptoHandleSeq receiving_datawriter_crypto_list,
00714 inout SecurityException ex);
00715
00716 boolean
00717 encode_rtps_message(
00718 inout OctetSeq encoded_rtps_message,
00719 in OctetSeq plain_rtps_message,
00720 in ParticipantCryptoHandle sending_participant_crypto,
00721 in ParticipantCryptoHandleSeq receiving_participant_crypto_list,
00722 inout long receiving_participant_crypto_list_index,
00723 inout SecurityException ex);
00724
00725 boolean
00726 decode_rtps_message(
00727 inout OctetSeq plain_buffer,
00728 in OctetSeq encoded_buffer,
00729 in ParticipantCryptoHandle receiving_participant_crypto,
00730 in ParticipantCryptoHandle sending_participant_crypto,
00731 inout SecurityException ex);
00732
00733 boolean
00734 preprocess_secure_submsg(
00735 inout DatawriterCryptoHandle datawriter_crypto,
00736 inout DatareaderCryptoHandle datareader_crypto,
00737 inout SecureSubmessageCategory_t secure_submessage_category,
00738 in OctetSeq encoded_rtps_submessage,
00739 in ParticipantCryptoHandle receiving_participant_crypto,
00740 in ParticipantCryptoHandle sending_participant_crypto,
00741 inout SecurityException ex);
00742
00743 boolean
00744 decode_datawriter_submessage(
00745 inout OctetSeq plain_rtps_submessage,
00746 in OctetSeq encoded_rtps_submessage,
00747 in DatareaderCryptoHandle receiving_datareader_crypto,
00748 in DatawriterCryptoHandle sending_datawriter_crypto,
00749 inout SecurityException ex);
00750
00751 boolean
00752 decode_datareader_submessage(
00753 inout OctetSeq plain_rtps_submessage,
00754 in OctetSeq encoded_rtps_submessage,
00755 in DatawriterCryptoHandle receiving_datawriter_crypto,
00756 in DatareaderCryptoHandle sending_datareader_crypto,
00757 inout SecurityException ex);
00758
00759 boolean
00760 decode_serialized_payload(
00761 inout OctetSeq plain_buffer,
00762 in OctetSeq encoded_buffer,
00763 in OctetSeq inline_qos,
00764 in DatareaderCryptoHandle receiving_datareader_crypto,
00765 in DatawriterCryptoHandle sending_datawriter_crypto,
00766 inout SecurityException ex);
00767 };
00768
00769 };
00770 };
00771
00772 #endif