Add domaingv pointer to security plugins, as a preparation for supporting the permissions_expiry callback (which needs the gv to enumerate participants.
Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
This commit is contained in:
parent
a6a9d1f7c1
commit
e6500b6528
26 changed files with 682 additions and 915 deletions
|
|
@ -17,6 +17,7 @@ target_include_directories(
|
|||
security_api INTERFACE
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/../../core/ddsi/include>"
|
||||
)
|
||||
|
||||
install(
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@
|
|||
#ifndef DDS_SECURITY_API_H
|
||||
#define DDS_SECURITY_API_H
|
||||
|
||||
|
||||
/* Various security plugins. */
|
||||
#include "dds/ddsi/ddsi_domaingv.h"
|
||||
#include "dds_security_api_access_control.h"
|
||||
#include "dds_security_api_authentication.h"
|
||||
#include "dds_security_api_cryptography.h"
|
||||
|
|
@ -24,25 +23,12 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Integration functions for Security plugins
|
||||
*
|
||||
*/
|
||||
|
||||
typedef int (*plugin_init)(
|
||||
const char *argument,
|
||||
void **context
|
||||
);
|
||||
|
||||
typedef int (*plugin_finalize)(
|
||||
void *context
|
||||
);
|
||||
|
||||
/* Integration functions for Security plugins */
|
||||
typedef int (*plugin_init)(const char *argument, void **context, struct ddsi_domaingv *gv);
|
||||
typedef int (*plugin_finalize)(void *context);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* DDS_SECURITY_API_H */
|
||||
|
|
|
|||
|
|
@ -16,359 +16,278 @@
|
|||
#include "dds_security_api_types.h"
|
||||
#include "dds_security_api_authentication.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* AccessControl Component
|
||||
*/
|
||||
/* AccessControl Component */
|
||||
struct dds_security_access_control;
|
||||
typedef struct dds_security_access_control dds_security_access_control;
|
||||
|
||||
|
||||
/* AccessControlListener Interface */
|
||||
struct dds_security_access_control_listener;
|
||||
typedef struct dds_security_access_control_listener dds_security_access_control_listener;
|
||||
|
||||
|
||||
/**
|
||||
* AccessControlListener Interface
|
||||
* */
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_listener_on_revoke_permissions)
|
||||
( dds_security_access_control_listener *instance,
|
||||
const dds_security_access_control *plugin,
|
||||
const DDS_Security_PermissionsHandle handle);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_listener_on_revoke_permissions)(
|
||||
const dds_security_access_control *plugin,
|
||||
const DDS_Security_PermissionsHandle handle);
|
||||
|
||||
struct dds_security_access_control_listener
|
||||
{
|
||||
DDS_Security_access_control_listener_on_revoke_permissions on_revoke_permissions;
|
||||
};
|
||||
|
||||
/* AccessControl Interface */
|
||||
typedef DDS_Security_PermissionsHandle (*DDS_Security_access_control_validate_local_permissions)(
|
||||
dds_security_access_control *instance,
|
||||
const dds_security_authentication *auth_plugin,
|
||||
const DDS_Security_IdentityHandle identity,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
/**
|
||||
* AccessControl Interface
|
||||
*/
|
||||
typedef DDS_Security_PermissionsHandle (*DDS_Security_access_control_validate_remote_permissions)(
|
||||
dds_security_access_control *instance,
|
||||
const dds_security_authentication *auth_plugin,
|
||||
const DDS_Security_IdentityHandle local_identity_handle,
|
||||
const DDS_Security_IdentityHandle remote_identity_handle,
|
||||
const DDS_Security_PermissionsToken *remote_permissions_token,
|
||||
const DDS_Security_AuthenticatedPeerCredentialToken *remote_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_PermissionsHandle
|
||||
(*DDS_Security_access_control_validate_local_permissions)
|
||||
( dds_security_access_control *instance,
|
||||
const dds_security_authentication *auth_plugin,
|
||||
const DDS_Security_IdentityHandle identity,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_create_participant)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_PermissionsHandle
|
||||
(*DDS_Security_access_control_validate_remote_permissions)
|
||||
( dds_security_access_control *instance,
|
||||
const dds_security_authentication *auth_plugin,
|
||||
const DDS_Security_IdentityHandle local_identity_handle,
|
||||
const DDS_Security_IdentityHandle remote_identity_handle,
|
||||
const DDS_Security_PermissionsToken *remote_permissions_token,
|
||||
const DDS_Security_AuthenticatedPeerCredentialToken *remote_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_create_datawriter)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *writer_qos,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTags *data_tag,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_create_participant)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_create_datareader)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *reader_qos,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTags *data_tag,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_create_datawriter)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *writer_qos,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTags *data_tag,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_create_topic)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *topic_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_create_datareader)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *reader_qos,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTags *data_tag,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_local_datawriter_register_instance)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *writer,
|
||||
const DDS_Security_DynamicData *key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_local_datawriter_dispose_instance)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *writer,
|
||||
const DDS_Security_DynamicData key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_create_topic)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_Qos *topic_qos,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_participant)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_ParticipantBuiltinTopicDataSecure *participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_local_datawriter_register_instance)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *writer,
|
||||
const DDS_Security_DynamicData *key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_datawriter)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_local_datawriter_dispose_instance)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *writer,
|
||||
const DDS_Security_DynamicData key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_datareader)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
DDS_Security_boolean *relay_only,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_participant)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_ParticipantBuiltinTopicDataSecure *participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_topic)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_TopicBuiltinTopicData *topic_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_datawriter)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_local_datawriter_match)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle writer_permissions_handle,
|
||||
const DDS_Security_PermissionsHandle reader_permissions_handle,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_datareader)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
DDS_Security_boolean *relay_only,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_local_datareader_match)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle reader_permissions_handle,
|
||||
const DDS_Security_PermissionsHandle writer_permissions_handle,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_topic)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_TopicBuiltinTopicData *topic_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_datawriter_register_instance)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *reader,
|
||||
const DDS_Security_InstanceHandle publication_handle,
|
||||
const DDS_Security_DynamicData key,
|
||||
const DDS_Security_InstanceHandle instance_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_check_remote_datawriter_dispose_instance)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *reader,
|
||||
const DDS_Security_InstanceHandle publication_handle,
|
||||
const DDS_Security_DynamicData key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_local_datawriter_match)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle writer_permissions_handle,
|
||||
const DDS_Security_PermissionsHandle reader_permissions_handle,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_permissions_token)(
|
||||
dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsToken *permissions_token,
|
||||
const DDS_Security_PermissionsHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_permissions_credential_token)(
|
||||
dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsCredentialToken *permissions_credential_token,
|
||||
const DDS_Security_PermissionsHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_local_datareader_match)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle reader_permissions_handle,
|
||||
const DDS_Security_PermissionsHandle writer_permissions_handle,
|
||||
const DDS_Security_SubscriptionBuiltinTopicDataSecure *subscription_data,
|
||||
const DDS_Security_PublicationBuiltinTopicDataSecure *publication_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_set_listener)(
|
||||
dds_security_access_control *instance,
|
||||
const dds_security_access_control_listener *listener,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_datawriter_register_instance)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *reader,
|
||||
const DDS_Security_InstanceHandle publication_handle,
|
||||
const DDS_Security_DynamicData key,
|
||||
const DDS_Security_InstanceHandle instance_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_permissions_token)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_check_remote_datawriter_dispose_instance)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_Entity *reader,
|
||||
const DDS_Security_InstanceHandle publication_handle,
|
||||
const DDS_Security_DynamicData key,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_permissions_credential_token)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsCredentialToken *permissions_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_permissions_token)
|
||||
( dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsToken *permissions_token,
|
||||
const DDS_Security_PermissionsHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_participant_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
DDS_Security_ParticipantSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_permissions_credential_token)
|
||||
( dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsCredentialToken *permissions_credential_token,
|
||||
const DDS_Security_PermissionsHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_topic_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
DDS_Security_TopicSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_set_listener)
|
||||
( dds_security_access_control *instance,
|
||||
const dds_security_access_control_listener *listener,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_datawriter_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTagQosPolicy *data_tag,
|
||||
DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_permissions_token)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_get_datareader_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTagQosPolicy *data_tag,
|
||||
DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_permissions_credential_token)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsCredentialToken *permissions_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_participant_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_ParticipantSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_participant_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
DDS_Security_ParticipantSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_topic_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_TopicSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_datawriter_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_topic_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
DDS_Security_TopicSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_datawriter_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTagQosPolicy *data_tag,
|
||||
DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_get_datareader_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_PermissionsHandle permissions_handle,
|
||||
const DDS_Security_char *topic_name,
|
||||
const DDS_Security_PartitionQosPolicy *partition,
|
||||
const DDS_Security_DataTagQosPolicy *data_tag,
|
||||
DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_participant_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_ParticipantSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_topic_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_TopicSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_datawriter_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_datareader_sec_attributes)
|
||||
( dds_security_access_control *instance,
|
||||
const DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_access_control_return_permissions_handle)
|
||||
( dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsHandle permissions_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_datareader_sec_attributes)(
|
||||
dds_security_access_control *instance,
|
||||
const DDS_Security_EndpointSecurityAttributes *attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_access_control_return_permissions_handle)(
|
||||
dds_security_access_control *instance,
|
||||
DDS_Security_PermissionsHandle permissions_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
struct dds_security_access_control
|
||||
{
|
||||
struct ddsi_domaingv *gv;
|
||||
|
||||
DDS_Security_access_control_validate_local_permissions validate_local_permissions;
|
||||
|
||||
DDS_Security_access_control_validate_remote_permissions validate_remote_permissions;
|
||||
|
||||
DDS_Security_access_control_check_create_participant check_create_participant;
|
||||
|
||||
DDS_Security_access_control_check_create_datawriter check_create_datawriter;
|
||||
|
||||
DDS_Security_access_control_check_create_datareader check_create_datareader;
|
||||
|
||||
DDS_Security_access_control_check_create_topic check_create_topic;
|
||||
|
||||
DDS_Security_access_control_check_local_datawriter_register_instance check_local_datawriter_register_instance;
|
||||
|
||||
DDS_Security_access_control_check_local_datawriter_dispose_instance check_local_datawriter_dispose_instance;
|
||||
|
||||
DDS_Security_access_control_check_remote_participant check_remote_participant;
|
||||
|
||||
DDS_Security_access_control_check_remote_datawriter check_remote_datawriter;
|
||||
|
||||
DDS_Security_access_control_check_remote_datareader check_remote_datareader;
|
||||
|
||||
DDS_Security_access_control_check_remote_topic check_remote_topic;
|
||||
|
||||
DDS_Security_access_control_check_local_datawriter_match check_local_datawriter_match;
|
||||
|
||||
DDS_Security_access_control_check_local_datareader_match check_local_datareader_match;
|
||||
|
||||
DDS_Security_access_control_check_remote_datawriter_register_instance check_remote_datawriter_register_instance;
|
||||
|
||||
DDS_Security_access_control_check_remote_datawriter_dispose_instance check_remote_datawriter_dispose_instance;
|
||||
|
||||
DDS_Security_access_control_get_permissions_token get_permissions_token;
|
||||
|
||||
DDS_Security_access_control_get_permissions_credential_token get_permissions_credential_token;
|
||||
|
||||
DDS_Security_access_control_set_listener set_listener;
|
||||
|
||||
DDS_Security_access_control_return_permissions_token return_permissions_token;
|
||||
|
||||
DDS_Security_access_control_return_permissions_credential_token return_permissions_credential_token;
|
||||
|
||||
DDS_Security_access_control_get_participant_sec_attributes get_participant_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_get_topic_sec_attributes get_topic_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_get_datawriter_sec_attributes get_datawriter_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_get_datareader_sec_attributes get_datareader_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_return_participant_sec_attributes return_participant_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_return_topic_sec_attributes return_topic_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_return_datawriter_sec_attributes return_datawriter_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_return_datareader_sec_attributes return_datareader_sec_attributes;
|
||||
|
||||
DDS_Security_access_control_return_permissions_handle return_permissions_handle;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#if defined (__cplusplus)
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -15,223 +15,170 @@
|
|||
|
||||
#include "dds_security_api_types.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* Authentication Component
|
||||
*/
|
||||
/* Authentication Component */
|
||||
struct dds_security_authentication;
|
||||
typedef struct dds_security_authentication dds_security_authentication;
|
||||
|
||||
struct dds_security_authentication_listener;
|
||||
typedef struct dds_security_authentication_listener dds_security_authentication_listener;
|
||||
|
||||
/* AuthenticationListener interface */
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_listener_on_revoke_identity)(
|
||||
dds_security_authentication_listener *context,
|
||||
const dds_security_authentication *plugin,
|
||||
const DDS_Security_IdentityHandle handle);
|
||||
|
||||
/**
|
||||
* AuthenticationListener interface
|
||||
*/
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_listener_on_revoke_identity)
|
||||
( dds_security_authentication_listener *context,
|
||||
const dds_security_authentication *plugin,
|
||||
const DDS_Security_IdentityHandle handle
|
||||
);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_listener_on_status_changed)
|
||||
( dds_security_authentication_listener *context,
|
||||
const dds_security_authentication *plugin,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
const DDS_Security_AuthStatusKind status_kind
|
||||
);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_listener_on_status_changed)(
|
||||
dds_security_authentication_listener *context,
|
||||
const dds_security_authentication *plugin,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
const DDS_Security_AuthStatusKind status_kind);
|
||||
|
||||
struct dds_security_authentication_listener
|
||||
{
|
||||
DDS_Security_authentication_listener_on_revoke_identity on_revoke_identity;
|
||||
|
||||
DDS_Security_authentication_listener_on_status_changed on_status_changed;
|
||||
};
|
||||
|
||||
typedef DDS_Security_ValidationResult_t
|
||||
(*DDS_Security_authentication_validate_local_identity)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_IdentityHandle *local_identity_handle,
|
||||
DDS_Security_GUID_t *adjusted_participant_guid,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
const DDS_Security_GUID_t *candidate_participant_guid,
|
||||
DDS_Security_SecurityException *ex
|
||||
);
|
||||
typedef DDS_Security_ValidationResult_t (*DDS_Security_authentication_validate_local_identity)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_IdentityHandle *local_identity_handle,
|
||||
DDS_Security_GUID_t *adjusted_participant_guid,
|
||||
const DDS_Security_DomainId domain_id,
|
||||
const DDS_Security_Qos *participant_qos,
|
||||
const DDS_Security_GUID_t *candidate_participant_guid,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_get_identity_token)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_IdentityToken *identity_token,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_get_identity_token)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_IdentityToken *identity_token,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_get_identity_status_token)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_IdentityStatusToken *identity_status_token,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_set_permissions_credential_and_token)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
const DDS_Security_PermissionsCredentialToken *permissions_credential,
|
||||
const DDS_Security_PermissionsToken *permissions_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_get_identity_status_token)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_IdentityStatusToken *identity_status_token,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_ValidationResult_t (*DDS_Security_authentication_validate_remote_identity)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_IdentityHandle *remote_identity_handle,
|
||||
DDS_Security_AuthRequestMessageToken *local_auth_request_token,
|
||||
const DDS_Security_AuthRequestMessageToken *remote_auth_request_token,
|
||||
const DDS_Security_IdentityHandle local_identity_handle,
|
||||
const DDS_Security_IdentityToken *remote_identity_token,
|
||||
const DDS_Security_GUID_t *remote_participant_guid,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_set_permissions_credential_and_token)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityHandle handle,
|
||||
const DDS_Security_PermissionsCredentialToken *permissions_credential,
|
||||
const DDS_Security_PermissionsToken *permissions_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_ValidationResult_t (*DDS_Security_authentication_begin_handshake_request)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeHandle *handshake_handle,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message,
|
||||
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ValidationResult_t (*DDS_Security_authentication_begin_handshake_reply)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeHandle *handshake_handle,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ValidationResult_t
|
||||
(*DDS_Security_authentication_validate_remote_identity)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_IdentityHandle *remote_identity_handle,
|
||||
DDS_Security_AuthRequestMessageToken *local_auth_request_token,
|
||||
const DDS_Security_AuthRequestMessageToken *remote_auth_request_token,
|
||||
const DDS_Security_IdentityHandle local_identity_handle,
|
||||
const DDS_Security_IdentityToken *remote_identity_token,
|
||||
const DDS_Security_GUID_t *remote_participant_guid,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_ValidationResult_t (*DDS_Security_authentication_process_handshake)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_SharedSecretHandle (*DDS_Security_authentication_get_shared_secret)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ValidationResult_t
|
||||
(*DDS_Security_authentication_begin_handshake_request)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeHandle *handshake_handle,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message,
|
||||
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_get_authenticated_peer_credential_token)(
|
||||
dds_security_authentication *instance,
|
||||
DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_set_listener)(
|
||||
dds_security_authentication *instance,
|
||||
const dds_security_authentication_listener *listener,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ValidationResult_t
|
||||
(*DDS_Security_authentication_begin_handshake_reply)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeHandle *handshake_handle,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||
const DDS_Security_IdentityHandle initiator_identity_handle,
|
||||
const DDS_Security_IdentityHandle replier_identity_handle,
|
||||
const DDS_Security_OctetSeq *serialized_local_participant_data,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_identity_token)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ValidationResult_t
|
||||
(*DDS_Security_authentication_process_handshake)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_HandshakeMessageToken *handshake_message_out,
|
||||
const DDS_Security_HandshakeMessageToken *handshake_message_in,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_identity_status_token)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityStatusToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_SharedSecretHandle
|
||||
(*DDS_Security_authentication_get_shared_secret)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_authenticated_peer_credential_token)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_get_authenticated_peer_credential_token)
|
||||
( dds_security_authentication *instance,
|
||||
DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_handshake_handle)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_set_listener)
|
||||
( dds_security_authentication *instance,
|
||||
const dds_security_authentication_listener *listener,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_identity_token)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_identity_status_token)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityStatusToken *token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_authenticated_peer_credential_token)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_AuthenticatedPeerCredentialToken *peer_credential_token,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_handshake_handle)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_HandshakeHandle handshake_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_identity_handle)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityHandle identity_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_authentication_return_sharedsecret_handle)
|
||||
( dds_security_authentication *instance,
|
||||
const DDS_Security_SharedSecretHandle sharedsecret_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_identity_handle)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_IdentityHandle identity_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_authentication_return_sharedsecret_handle)(
|
||||
dds_security_authentication *instance,
|
||||
const DDS_Security_SharedSecretHandle sharedsecret_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
struct dds_security_authentication
|
||||
{
|
||||
struct ddsi_domaingv *gv;
|
||||
|
||||
DDS_Security_authentication_validate_local_identity validate_local_identity;
|
||||
|
||||
DDS_Security_authentication_get_identity_token get_identity_token;
|
||||
|
||||
DDS_Security_authentication_get_identity_status_token get_identity_status_token;
|
||||
|
||||
DDS_Security_authentication_set_permissions_credential_and_token set_permissions_credential_and_token;
|
||||
|
||||
DDS_Security_authentication_validate_remote_identity validate_remote_identity;
|
||||
|
||||
DDS_Security_authentication_begin_handshake_request begin_handshake_request;
|
||||
|
||||
DDS_Security_authentication_begin_handshake_reply begin_handshake_reply;
|
||||
|
||||
DDS_Security_authentication_process_handshake process_handshake;
|
||||
|
||||
DDS_Security_authentication_get_shared_secret get_shared_secret;
|
||||
|
||||
DDS_Security_authentication_get_authenticated_peer_credential_token get_authenticated_peer_credential_token;
|
||||
|
||||
DDS_Security_authentication_set_listener set_listener;
|
||||
|
||||
DDS_Security_authentication_return_identity_token return_identity_token;
|
||||
|
||||
DDS_Security_authentication_return_identity_status_token return_identity_status_token;
|
||||
|
||||
DDS_Security_authentication_return_authenticated_peer_credential_token return_authenticated_peer_credential_token;
|
||||
|
||||
DDS_Security_authentication_return_handshake_handle return_handshake_handle;
|
||||
|
||||
DDS_Security_authentication_return_identity_handle return_identity_handle;
|
||||
|
||||
DDS_Security_authentication_return_sharedsecret_handle return_sharedsecret_handle;
|
||||
};
|
||||
|
||||
|
||||
#if defined (__cplusplus)
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
|
||||
#include "dds_security_api_types.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Crypto Component
|
||||
*/
|
||||
|
||||
/* Crypto Component */
|
||||
struct dds_security_crypto_key_factory;
|
||||
typedef struct dds_security_crypto_key_factory dds_security_crypto_key_factory;
|
||||
|
||||
|
|
@ -32,305 +30,240 @@ typedef struct dds_security_crypto_key_exchange dds_security_crypto_key_exchange
|
|||
struct dds_security_crypto_transform;
|
||||
typedef struct dds_security_crypto_transform dds_security_crypto_transform;
|
||||
|
||||
/**
|
||||
* CryptoKeyFactory interface
|
||||
*/
|
||||
/* CryptoKeyFactory interface */
|
||||
typedef DDS_Security_ParticipantCryptoHandle (*DDS_Security_crypto_key_factory_register_local_participant)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_IdentityHandle participant_identity,
|
||||
const DDS_Security_PermissionsHandle participant_permissions,
|
||||
const DDS_Security_PropertySeq *participant_properties,
|
||||
const DDS_Security_ParticipantSecurityAttributes *participant_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ParticipantCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_local_participant)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_IdentityHandle participant_identity,
|
||||
const DDS_Security_PermissionsHandle participant_permissions,
|
||||
const DDS_Security_PropertySeq *participant_properties,
|
||||
const DDS_Security_ParticipantSecurityAttributes *participant_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_ParticipantCryptoHandle (*DDS_Security_crypto_key_factory_register_matched_remote_participant)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto_handle,
|
||||
const DDS_Security_IdentityHandle remote_participant_identity,
|
||||
const DDS_Security_PermissionsHandle remote_participant_permissions,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_ParticipantCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_matched_remote_participant)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto_handle,
|
||||
const DDS_Security_IdentityHandle remote_participant_identity,
|
||||
const DDS_Security_PermissionsHandle remote_participant_permissions,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_DatawriterCryptoHandle (*DDS_Security_crypto_key_factory_register_local_datawriter)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto,
|
||||
const DDS_Security_PropertySeq *datawriter_properties,
|
||||
const DDS_Security_EndpointSecurityAttributes *datawriter_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_DatareaderCryptoHandle (*DDS_Security_crypto_key_factory_register_matched_remote_datareader)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto_handle,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
const DDS_Security_boolean relay_only,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_DatawriterCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_local_datawriter)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto,
|
||||
const DDS_Security_PropertySeq *datawriter_properties,
|
||||
const DDS_Security_EndpointSecurityAttributes *datawriter_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_DatareaderCryptoHandle (*DDS_Security_crypto_key_factory_register_local_datareader)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto_handle,
|
||||
const DDS_Security_PropertySeq *datareader_properties,
|
||||
const DDS_Security_EndpointSecurityAttributes *datareader_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_DatareaderCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_matched_remote_datareader)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto_handle,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
const DDS_Security_boolean relay_only,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_DatawriterCryptoHandle (*DDS_Security_crypto_key_factory_register_matched_remote_datawriter)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto_handle,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypt,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_factory_unregister_participant)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_DatareaderCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_local_datareader)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto_handle,
|
||||
const DDS_Security_PropertySeq *datareader_properties,
|
||||
const DDS_Security_EndpointSecurityAttributes *datareader_security_attributes,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_factory_unregister_datawriter)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle datawriter_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_DatawriterCryptoHandle
|
||||
(*DDS_Security_crypto_key_factory_register_matched_remote_datawriter)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto_handle,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypt,
|
||||
const DDS_Security_SharedSecretHandle shared_secret,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_factory_unregister_participant)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle participant_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_factory_unregister_datawriter)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle datawriter_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_factory_unregister_datareader)
|
||||
( dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle datareader_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_factory_unregister_datareader)(
|
||||
dds_security_crypto_key_factory *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle datareader_crypto_handle,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
struct dds_security_crypto_key_factory
|
||||
{
|
||||
|
||||
DDS_Security_crypto_key_factory_register_local_participant register_local_participant;
|
||||
|
||||
DDS_Security_crypto_key_factory_register_matched_remote_participant register_matched_remote_participant;
|
||||
|
||||
DDS_Security_crypto_key_factory_register_local_datawriter register_local_datawriter;
|
||||
|
||||
DDS_Security_crypto_key_factory_register_matched_remote_datareader register_matched_remote_datareader;
|
||||
|
||||
DDS_Security_crypto_key_factory_register_local_datareader register_local_datareader;
|
||||
|
||||
DDS_Security_crypto_key_factory_register_matched_remote_datawriter register_matched_remote_datawriter;
|
||||
|
||||
DDS_Security_crypto_key_factory_unregister_participant unregister_participant;
|
||||
|
||||
DDS_Security_crypto_key_factory_unregister_datawriter unregister_datawriter;
|
||||
|
||||
DDS_Security_crypto_key_factory_unregister_datareader unregister_datareader;
|
||||
} ;
|
||||
};
|
||||
|
||||
/* CryptoKeyExchange Interface */
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_create_local_participant_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_ParticipantCryptoTokenSeq *local_participant_crypto_tokens,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
/**
|
||||
* CryptoKeyExchange Interface
|
||||
*/
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_create_local_participant_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_ParticipantCryptoTokenSeq *local_participant_crypto_tokens,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_set_remote_participant_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoTokenSeq *remote_participant_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_set_remote_participant_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_ParticipantCryptoHandle local_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle remote_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoTokenSeq *remote_participant_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_create_local_datawriter_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_DatawriterCryptoTokenSeq *local_datawriter_crypto_tokens,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle remote_datareader_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_create_local_datawriter_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_DatawriterCryptoTokenSeq *local_datawriter_crypto_tokens,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle remote_datareader_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_set_remote_datawriter_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle remote_datawriter_crypto,
|
||||
const DDS_Security_DatawriterCryptoTokenSeq *remote_datawriter_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_set_remote_datawriter_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle remote_datawriter_crypto,
|
||||
const DDS_Security_DatawriterCryptoTokenSeq *remote_datawriter_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_create_local_datareader_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_DatareaderCryptoTokenSeq *local_datareader_cryto_tokens,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle remote_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_create_local_datareader_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_DatareaderCryptoTokenSeq *local_datareader_cryto_tokens,
|
||||
const DDS_Security_DatareaderCryptoHandle local_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle remote_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_set_remote_datareader_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle remote_datareader_crypto,
|
||||
const DDS_Security_DatareaderCryptoTokenSeq *remote_datareader_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_set_remote_datareader_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
const DDS_Security_DatawriterCryptoHandle local_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle remote_datareader_crypto,
|
||||
const DDS_Security_DatareaderCryptoTokenSeq *remote_datareader_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_key_exchange_return_crypto_tokens)
|
||||
( dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_CryptoTokenSeq *crypto_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_key_exchange_return_crypto_tokens)(
|
||||
dds_security_crypto_key_exchange *instance,
|
||||
DDS_Security_CryptoTokenSeq *crypto_tokens,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
struct dds_security_crypto_key_exchange
|
||||
{
|
||||
DDS_Security_crypto_key_exchange_create_local_participant_crypto_tokens create_local_participant_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_set_remote_participant_crypto_tokens set_remote_participant_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_create_local_datawriter_crypto_tokens create_local_datawriter_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_set_remote_datawriter_crypto_tokens set_remote_datawriter_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_create_local_datareader_crypto_tokens create_local_datareader_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_set_remote_datareader_crypto_tokens set_remote_datareader_crypto_tokens;
|
||||
|
||||
DDS_Security_crypto_key_exchange_return_crypto_tokens return_crypto_tokens;
|
||||
} ;
|
||||
};
|
||||
|
||||
/* CryptoTransform Interface */
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_encode_serialized_payload)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_buffer,
|
||||
DDS_Security_OctetSeq *extra_inline_qos,
|
||||
const DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
/**
|
||||
* CryptoTransform Interface
|
||||
*/
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_encode_datawriter_submessage)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandleSeq *receiving_datareader_crypto_list,
|
||||
DDS_Security_long *receiving_datareader_crypto_list_index,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_encode_serialized_payload)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_buffer,
|
||||
DDS_Security_OctetSeq *extra_inline_qos,
|
||||
const DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_encode_datareader_submessage)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_DatareaderCryptoHandle sending_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandleSeq *receiving_datawriter_crypto_list,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_encode_datawriter_submessage)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandleSeq *receiving_datareader_crypto_list,
|
||||
DDS_Security_long *receiving_datareader_crypto_list_index,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_encode_rtps_message)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_message,
|
||||
const DDS_Security_OctetSeq *plain_rtps_message,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandleSeq *receiving_participant_crypto_list,
|
||||
DDS_Security_long *receiving_participant_crypto_list_index,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_encode_datareader_submessage)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_DatareaderCryptoHandle sending_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandleSeq *receiving_datawriter_crypto_list,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_decode_rtps_message)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_OctetSeq *encoded_buffer,
|
||||
const DDS_Security_ParticipantCryptoHandle receiving_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_preprocess_secure_submsg)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_DatawriterCryptoHandle *datawriter_crypto,
|
||||
DDS_Security_DatareaderCryptoHandle *datareader_crypto,
|
||||
DDS_Security_SecureSubmessageCategory_t *secure_submessage_category,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_ParticipantCryptoHandle receiving_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_encode_rtps_message)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *encoded_rtps_message,
|
||||
const DDS_Security_OctetSeq *plain_rtps_message,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandleSeq *receiving_participant_crypto_list,
|
||||
DDS_Security_long *receiving_participant_crypto_list_index,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_decode_datawriter_submessage)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_DatareaderCryptoHandle receiving_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_decode_rtps_message)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_OctetSeq *encoded_buffer,
|
||||
const DDS_Security_ParticipantCryptoHandle receiving_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_preprocess_secure_submsg)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_DatawriterCryptoHandle *datawriter_crypto,
|
||||
DDS_Security_DatareaderCryptoHandle *datareader_crypto,
|
||||
DDS_Security_SecureSubmessageCategory_t *secure_submessage_category,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_ParticipantCryptoHandle receiving_participant_crypto,
|
||||
const DDS_Security_ParticipantCryptoHandle sending_participant_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_decode_datawriter_submessage)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_rtps_submessage,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_submessage,
|
||||
const DDS_Security_DatareaderCryptoHandle receiving_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_decode_datareader_submessage)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_rtps_message,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_message,
|
||||
const DDS_Security_DatawriterCryptoHandle receiving_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle sending_datareader_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
|
||||
typedef DDS_Security_boolean
|
||||
(*DDS_Security_crypto_transform_decode_serialized_payload)
|
||||
( dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_OctetSeq *encoded_buffer,
|
||||
const DDS_Security_OctetSeq *inline_qos,
|
||||
const DDS_Security_DatareaderCryptoHandle receiving_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_decode_datareader_submessage)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_rtps_message,
|
||||
const DDS_Security_OctetSeq *encoded_rtps_message,
|
||||
const DDS_Security_DatawriterCryptoHandle receiving_datawriter_crypto,
|
||||
const DDS_Security_DatareaderCryptoHandle sending_datareader_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
typedef DDS_Security_boolean (*DDS_Security_crypto_transform_decode_serialized_payload)(
|
||||
dds_security_crypto_transform *instance,
|
||||
DDS_Security_OctetSeq *plain_buffer,
|
||||
const DDS_Security_OctetSeq *encoded_buffer,
|
||||
const DDS_Security_OctetSeq *inline_qos,
|
||||
const DDS_Security_DatareaderCryptoHandle receiving_datareader_crypto,
|
||||
const DDS_Security_DatawriterCryptoHandle sending_datawriter_crypto,
|
||||
DDS_Security_SecurityException *ex);
|
||||
|
||||
struct dds_security_crypto_transform
|
||||
{
|
||||
DDS_Security_crypto_transform_encode_serialized_payload encode_serialized_payload;
|
||||
|
||||
DDS_Security_crypto_transform_encode_datawriter_submessage encode_datawriter_submessage;
|
||||
|
||||
DDS_Security_crypto_transform_encode_datareader_submessage encode_datareader_submessage;
|
||||
|
||||
DDS_Security_crypto_transform_encode_rtps_message encode_rtps_message;
|
||||
|
||||
DDS_Security_crypto_transform_decode_rtps_message decode_rtps_message;
|
||||
|
||||
DDS_Security_crypto_transform_preprocess_secure_submsg preprocess_secure_submsg;
|
||||
|
||||
DDS_Security_crypto_transform_decode_datawriter_submessage decode_datawriter_submessage;
|
||||
|
||||
DDS_Security_crypto_transform_decode_datareader_submessage decode_datareader_submessage;
|
||||
|
||||
DDS_Security_crypto_transform_decode_serialized_payload decode_serialized_payload;
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
typedef struct dds_security_cryptography
|
||||
{
|
||||
dds_security_crypto_transform *crypto_transform;
|
||||
dds_security_crypto_key_factory *crypto_key_factory;
|
||||
dds_security_crypto_key_exchange *crypto_key_exchange;
|
||||
struct ddsi_domaingv *gv;
|
||||
|
||||
dds_security_crypto_transform *crypto_transform;
|
||||
dds_security_crypto_key_factory *crypto_key_factory;
|
||||
dds_security_crypto_key_exchange *crypto_key_exchange;
|
||||
} dds_security_cryptography;
|
||||
|
||||
|
||||
#if defined (__cplusplus)
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue