Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feature: secure discovery server (#3283)
* Adding system test for secure discovery server (#3154) * Refs #16499: Added secure ds server system test Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16499: Added security props to secure_ds XML file Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com> * PDP endpoints refactor (#3162) * Refs #16500. Modelling PDP <-> PDPEndpoints relationship. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Builtin endpoints constants moved to separate header. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added BuiltinReader aggregate. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added BuiltinWriter aggregate. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added SimplePDPEndpoints container. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Refactor on PDPSimple. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Remove references to builtin endpoints on PDP. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update PDPSimple to PDP refactor Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Improvements on PDP::initializeParticipantProxyData Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added DiscoveryServerPDPEndpoints container. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update PDPClient to PDP refactor Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update PDPServer to PDP refactor Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update EDPServer to PDP refactor. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update PDPListener to PDP refactor. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Update PDPServerListener to PDP refactor. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Ensure endpoints are assigned before being used. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Fix warning. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Uncrustify Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Apply suggestion. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com> Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com> * PKI exchange finished (#3170) * Refs #16500. PDPServer: Empty methods for secure endpoints creation. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Implementing PDPServer::should_protect_discovery() Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added DiscoveryServerPDPEndpointsSecure container. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Added constants for new entity ids. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Create reliable endpoints refactor. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Avoid automatically matching endpoints when secure. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Stateless reader creation on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Logs improved. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16501: Added PDPSecurityInitiatorListener Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Take reader mutex upwards Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: removed createparticipant() and LOG comment Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Added PDPClient SecureEndpoints Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Removed if(pdata != nullptr) Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16500. Setting writer guid inside message group. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. FakeWriter class for direct sending of DATA(p). Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Using FakeWriter on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16500. Using FakeWriter on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16501: Added pdp() method on RTPSParticipantImpl Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: pdp() instead of pdpsimple() in SecurityManager Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: PDP.h header in SecurityManager.cpp & couple of forward declarations in PDP.h Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Security Unittests Fixed Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Fix assertion when built with statistics (#3169) * Refs #16597. Fixes on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16597. Fixes on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16501: Added functor cb to PDPSecurityInitiatorListener Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Added PDPSecurityInitiatorListener Functor response callback in PDPServer.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Uncrustify Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501. Fix build without security. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16501: Address requested changes Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16501: Build PDPSecurityInitiatorListener only If SECURITY Is Enabled. Also in Tests Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Co-authored-by: Miguel Company <MiguelCompany@eprosima.com> * Secure PDP exchange (#3175) * Refs #16603. Initial changes on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Removed unused method on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Matching on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Initial refactor on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Using discovered_builtin_* on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Additional changes on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Fixes on PDPServer::assignRemoteEndpoints. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Fixes on PDPServer::removeRemoteEndpoints. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Perform matching on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Use security manager on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Using discovered_builtin_* on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Pairing endpoints moved to PDP. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Pairing endpoints on PDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Pairing endpoints on PDPServer. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Uncrustify. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Fixed communications without security. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Take into account that notifyAboveRemoteEndpoints is called only once. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Temporarily disabling secure endpoints on EDPClient. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #16603. Temporarily using mangled prefix on system test. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Secure EDP exchange (#3181) * Refs #16622: Enable Secure Available BuiltinPoints for a PDPServer Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Revert "Refs #16603. Temporarily disabling secure endpoints on EDPClient." This reverts commit dead9c9. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Automatic GUID mangling when using secure DS (#3178) * Refs #16596: Added check_guid_comes_from() in SecurityManager Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Added check_guid_comes_from() to Authentication interface and PKIDH plugin Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Removed remote_readers vector<GUID> from PDPCLient.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Added data_matches_with_server() in PDPClient.cpp and PDPCLient.h Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Revert "Refs #16603. Temporarily using mangled prefix on system test." This reverts commit 1b68139. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Added guids_mangling_info_ to SecurityManager Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Added public method get_remote_server_participant_proxy_data() and protected data_matches_with_server() in PDP.h PDP.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: data_matches_with_server() override in PDPClient Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Added data_matches_with_server in createParticipantProxyData() PDPClient.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: substitute mp_PDP->get_participant_proxy_data() by mp_PDP->get_remote_server_participant_proxy_data() in DSClientEvent.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes: Added notify_participant_authorized() method to postpone notifyboveendpoints() call. check_guids_comes_from() included in DiscoveredParticipantInfo. guids_mangling_info_ removed. Doxygen corrections. Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes: Renamed data_matches_with_server() to data_matches_with_prefix() and left only in PDP. Removed unnecessary method get_remote_server_participant_proxy_data(). Added data_matches_with_prefix() to get_participant_proxy_data(). DSClientEvent call reverted to get_participant_proxy_data() Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes: Restored previous TODO in idrect_send in PDPClient.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: PDPServer data_matches_with_prefix() translation Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes doxygen check_guid_comes_from() corrected Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes: add missing notify_participant_authorized() call && minor comments Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Uncrustify format changes (local) Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16596: Requested changes Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Secure DS POC (#3189) * Refs #16498: system test correction Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16498: compiation errors when compiling with NO_SECURITY Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16498: SecurityAuthentication tests corrections refactor pdpsimple() with pdp() Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16498: Windows warning in PDP.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16498: Uncrustify Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Operative SecureDS-SecureDS (#3212) * Refs #16739: Initate security handshake in Server to Server interaction Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Client to Server PDP Disposal correction. Fill remote_readers list on direct_send() with mangled prefixes Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Return true in discovered_reader/writer if remote_guid was saved in remote_pending queue in SecurityManager.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Fill corresponding remote_readers correctly on participant send_announcement disposal && send the disposal only if we have someone to inform in PDPServer.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs 16739: Uncrusify Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Send the disposal only if we have someone to inform in PDPClient.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Choose correct edp endpoint in EDPServerListeners Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Added get_builtin_pairs() methods in EDPSimple Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Added remove_related_alive_from_history_nts to DiscoveryDatabase (moved from EDPServer) Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Added process_disposal() and process_and_release_change() methods to EDPServer Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: PDPServer refactor. Modified process_disposals() && process_changes_release_() methods and removed remove_related_alive_from_history_nts() Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Check for nullptr in process_and_release_change() from EDPServer Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: output to LOG_ERROR case corrected in process_changes_release_ PDPServer Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Change const reference by plain bool parameter in process_and_release_change() and rename it in EDPServer Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: process changes release minor fixes && Restore logic on PDPServer.cpp Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Corrected LOG_ERROR print conditions Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Uncrustify Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Added true parameter on process_change_release() PDPServer when change to release is from a remote participant Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Address Revision comments Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16739: Linter Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Extended Secure DS system tests. Additional files included (#3245) Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Fix simple test scenarios (#3249) * Refs #16880: PDPClient fixes to accomplish simple test scenarios. CMakelists spaces corrected Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16880: Correction compilation erros WITHOUT_SECURITY Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16880: Applied suggested changes Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16880: Uncrustify Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Secure DS-DS communication tests (#3256) Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #16741: Check return value on PDPSecurityInitiator for processing the response Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Added Security print to fast-discovery-server executable (#3276) * Refs #17090: Added CLI tests for Security Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #17090: Added Security print to fast-discovery-server executable Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #17090: Linter Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Refs #17090: Addressed suggested changes Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> * Fix linters. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #17141. Fix doxygen. Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> * Refs #17141. Update versions.md Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> --------- Signed-off-by: Mario Dominguez <mariodominguez@eprosima.com> Signed-off-by: Miguel Company <MiguelCompany@eprosima.com> Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com> Co-authored-by: Mario Domínguez López <116071334+Mario-DL@users.noreply.github.com>
- Loading branch information