From 576be0e7c253bc15e30af98f16357e79a4066c16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Lanzend=C3=B6rfer?= Date: Sat, 23 Oct 2021 23:07:23 +0100 Subject: [PATCH] Fixing integration with Qt5 --- CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++++++------- pep-dbus-adapter.cpp | 15 ++++++++++++ pep-dbus-adapter.h | 39 +++++++++++++++++++++++++++++++ pep-introspect.xml | 7 +++--- pep-server.cpp | 19 ++++----------- pep-server.h | 14 ++--------- tests.cpp | 7 +++++- 7 files changed, 116 insertions(+), 40 deletions(-) create mode 100644 pep-dbus-adapter.cpp create mode 100644 pep-dbus-adapter.h diff --git a/CMakeLists.txt b/CMakeLists.txt index fe529f1..f6a6655 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,5 @@ project(pEpDBusAdapter) -string( REPLACE "fno-exceptions" "fexceptions" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") -string( REPLACE "fno-exceptions" "fexceptions" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - include_directories(${PROJECT_SOURCE_DIR}/types) ############################ Server glue ########################### @@ -28,24 +25,66 @@ set_source_files_properties(${PROJECT_BINARY_DIR}/pep-client-glue.h PROPERTIES G ####################### add_library(pEpDBusAdapterClient SHARED pep-client.cpp ${PROJECT_BINARY_DIR}/pep-client-glue.h) -target_link_libraries(pEpDBusAdapterClient pEpEngine dbus-c++-1) +target_link_libraries(pEpDBusAdapterClient + pEpEngine + pEpAdapter + dbus-c++-1 + sequoia_ffi + sequoia_openpgp_ffi + ) + set_target_properties(pEpDBusAdapterClient PROPERTIES CXX_VISIBILITY_PRESET default VISIBILITY_INLINES_HIDDEN 0 ) -add_library(pEpDBusAdapterServer SHARED pep-server.cpp ${PROJECT_BINARY_DIR}/pep-server-glue.h) -target_link_libraries(pEpDBusAdapterServer pEpEngine dbus-c++-1) +add_library(pEpDBusAdapter SHARED pep-dbus-adapter.cpp ${PROJECT_BINARY_DIR}/pep-server-glue.h) +target_link_libraries(pEpDBusAdapter + pEpEngine + pEpAdapter + pEpMIME + dbus-c++-1 + sequoia_ffi + sequoia_openpgp_ffi + ) +set_target_properties(pEpDBusAdapter PROPERTIES + CXX_VISIBILITY_PRESET default + VISIBILITY_INLINES_HIDDEN 0 +) + +add_library(pEpDBusAdapterServer SHARED pep-server.cpp) +target_link_libraries(pEpDBusAdapterServer + pEpDBusAdapter + pEpAdapter + pEpEngine + dbus-c++-1 + sequoia_ffi + sequoia_openpgp_ffi + ) + set_target_properties(pEpDBusAdapterServer PROPERTIES CXX_VISIBILITY_PRESET default VISIBILITY_INLINES_HIDDEN 0 ) add_executable(pep-dbus-server server.cpp) -target_link_libraries(pep-dbus-server pEpDBusAdapterServer dbus-c++-1 sequoia_ffi sequoia_openpgp_ffi) +target_link_libraries(pep-dbus-server + pEpDBusAdapter + pEpDBusAdapterServer + pEpEngine + dbus-c++-1 + sequoia_ffi + sequoia_openpgp_ffi + ) add_executable(tests tests.cpp) -target_link_libraries(tests pEpDBusAdapterClient dbus-c++-1 sequoia_ffi sequoia_openpgp_ffi) +target_link_libraries(tests + pEpEngine + pEpDBusAdapterClient + dbus-c++-1 + sequoia_ffi + sequoia_openpgp_ffi + ) configure_file(security.pep.service.in ${CMAKE_CURRENT_BINARY_DIR}/security.pep.service) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/security.pep.service diff --git a/pep-dbus-adapter.cpp b/pep-dbus-adapter.cpp new file mode 100644 index 0000000..84e2cfd --- /dev/null +++ b/pep-dbus-adapter.cpp @@ -0,0 +1,15 @@ +#include "pep-dbus-adapter.h" + +pEp::pEpDBusAdapter::pEpDBusAdapter() {} + +pEp::pEpDBusAdapter::~pEpDBusAdapter() {} + +void pEp::pEpDBusAdapter::decrypt_message(const std::string& src, int32_t& status, std::string& dst, std::vector< std::string >& keylist, int32_t& flags) +{ + bool has_possible_pEp_msg; + std::cout << "Trying to decrypt the data" << std::endl; + message **srcm; + ::mime_decode_message(src.c_str(), src.size(), srcm, &has_possible_pEp_msg ); + //status = ::decrypt_message( mSession, srcm, dstm, keylist, rating, flags ); +} + diff --git a/pep-dbus-adapter.h b/pep-dbus-adapter.h new file mode 100644 index 0000000..4eab32c --- /dev/null +++ b/pep-dbus-adapter.h @@ -0,0 +1,39 @@ +#ifndef PEP_DBUS_ADAPTER_H +#define PEP_DBUS_ADAPTER_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include "pep-server-glue.h" + +namespace pEp { +class pEpDBusAdapter + : public security::pep_adaptor +{ +public: + pEpDBusAdapter(); + ~pEpDBusAdapter(); + + // Message API + void decrypt_message(const std::string& src, int32_t& status, std::string& dst, std::vector< std::string >& keylist, int32_t& flags); + +private: + PEP_SESSION mSession; + +}; +} + +#endif diff --git a/pep-introspect.xml b/pep-introspect.xml index bfbae4d..fae230a 100644 --- a/pep-introspect.xml +++ b/pep-introspect.xml @@ -1,13 +1,12 @@ - + - - - + + diff --git a/pep-server.cpp b/pep-server.cpp index cfcacd3..ab776f9 100644 --- a/pep-server.cpp +++ b/pep-server.cpp @@ -7,25 +7,14 @@ #include #include -#include - #include "pep-server.h" -pEp::Server::Server(DBus::Connection &connection) -: DBus::ObjectAdaptor(connection, "/security/pep") +pEp::Server::Server(DBus::Connection &connection) : + DBus::ObjectAdaptor(connection, "/security/pep"), + pEpDBusAdapter() { } - pEp::Server::~Server() -{ -} +{} -void pEp::Server::decrypt_message(const std::string& src, const std::vector< std::string >& keylist, const int32_t& rating, const int32_t& flags, int32_t& status, std::string& dst) -{ - bool has_possible_pEp_msg; - std::cout << "Trying to decrypt the data" << std::endl; - message **srcm; - //::pEp::mime_decode_message(src.c_str(), src.size(), srcm, &has_possible_pEp_msg ); - //status = ::decrypt_message( mSession, srcm, dstm, keylist, rating, flags ); -} diff --git a/pep-server.h b/pep-server.h index bbf037c..668b36e 100644 --- a/pep-server.h +++ b/pep-server.h @@ -3,27 +3,17 @@ #include -#include "pep-server-glue.h" - -struct _pEpSession; +#include "pep-dbus-adapter.h" namespace pEp { class Server -: public security::pep_adaptor, +: public pEpDBusAdapter, public DBus::IntrospectableAdaptor, public DBus::ObjectAdaptor { public: explicit Server(DBus::Connection &connection); ~Server(); - - // Message API - void decrypt_message(const std::string& src, const std::vector< std::string >& keylist, const int32_t& rating, const int32_t& flags, int32_t& status, std::string& dst); - - -private: - struct _pEpSession* mSession; - }; } diff --git a/tests.cpp b/tests.cpp index c04739b..4e8209c 100644 --- a/tests.cpp +++ b/tests.cpp @@ -21,8 +21,13 @@ int main() pEpDBusEncryptionFlags flags; pEpDBusStatus status; src.clear();*/ - //client.decrypt_message(src,keylist,rating,flags,status,dst); + std::string src; + std::vector< std::string > keylist; + int32_t flags; + int32_t status; + std::string dst; + //client.decrypt_message(src, keylist, &flags, status, dst); return 0; }