29 #ifndef SECURE_EXTREMUM_SELECTION_CLIENT_IMPLEMENTATION_GUARD
30 #define SECURE_EXTREMUM_SELECTION_CLIENT_IMPLEMENTATION_GUARD
39 template <
typename T_SecureComparisonServer,
typename T_SecureComparisonClient>
41 paillierCryptoProvider(paillierCryptoProvider),
42 dgkCryptoProvider(dgkCryptoProvider),
43 secureComparisonClient(std::make_shared<T_SecureComparisonClient>(paillierCryptoProvider, dgkCryptoProvider, configurationPath)),
50 template <
typename T_SecureComparisonServer,
typename T_SecureComparisonClient>
52 this->secureExtremumSelectionServer = secureExtremumSelectionServer;
53 this->secureComparisonClient->SetServer(secureExtremumSelectionServer->GetSecureComparisonServer());
54 this->secureMultiplicationClient->SetServer(secureExtremumSelectionServer->GetSecureMultiplicationServer());
60 template <
typename T_SecureComparisonServer,
typename T_SecureComparisonClient>
62 return this->secureComparisonClient;
68 template <
typename T_SecureComparisonServer,
typename T_SecureComparisonClient>
70 return this->secureMultiplicationClient;
76 #endif//SECURE_EXTREMUM_SELECTION_CLIENT_IMPLEMENTATION_GUARD
Implementation of the public-key DGK Cryptosystem.
Secure Extremum Selection Server.
const std::shared_ptr< T_SecureComparisonClient > & GetSecureComparisonClient() const
Getter for this->secureComparisonClient.
SecureExtremumSelectionClient(const Paillier &paillierCryptoProvider, const Dgk &dgkCryptoProvider, const std::string &configurationPath)
Constructor.
Secure Multiplication Client.
Implementation of the public-key Paillier Cryptosystem.
const std::shared_ptr< SecureMultiplicationClient< Paillier > > & GetSecureMultiplicationClient() const
Getter for this->secureMultiplicationClient.
void SetServer(const std::shared_ptr< SecureExtremumSelectionServer< T_SecureComparisonServer, T_SecureComparisonClient >> &secureExtremumSelectionServer)
Setter for this->secureExtremumSelectionServer.