29 #ifndef SECURE_MULTIPLICATION_CLIENT_IMPLEMENTATION_GUARD
30 #define SECURE_MULTIPLICATION_CLIENT_IMPLEMENTATION_GUARD
37 template <
typename T_CryptoProv
ider>
39 cryptoProvider(cryptoProvider) {
47 template <
typename T_CryptoProv
ider>
49 BigInteger a = this->cryptoProvider.DecryptInteger(lhs);
50 BigInteger b = this->cryptoProvider.DecryptInteger(rhs);
52 return this->cryptoProvider.EncryptInteger(a * b);
58 template <
typename T_CryptoProv
ider>
60 this->secureMultiplicationServer = secureMultiplicationServer;
66 #endif//SECURE_MULTIPLICATION_CLIENT_IMPLEMENTATION_GUARD
T_CryptoProvider::Ciphertext Multiply(const typename T_CryptoProvider::Ciphertext &lhs, const typename T_CryptoProvider::Ciphertext &rhs) const
Computes the encrypted product.
SecureMultiplicationClient(const T_CryptoProvider &cryptoProvider)
Constructor.
Secure Multiplication Server.
void SetServer(const std::shared_ptr< SecureMultiplicationServer< T_CryptoProvider >> &secureMultiplicationServer)
Setter for this->secureMultiplicationServer.