29 #ifndef SECURE_MULTIPLICATION_SERVER_IMPLEMENTATION_GUARD
30 #define SECURE_MULTIPLICATION_SERVER_IMPLEMENTATION_GUARD
39 template <
typename T_CryptoProv
ider>
41 cryptoProvider(cryptoProvider),
58 template <
typename T_CryptoProv
ider>
62 typename T_CryptoProvider::Ciphertext blindedVTildeA = lhs + blindingFactorContainer.
encryptedMinusR1;
63 typename T_CryptoProvider::Ciphertext blindedVTildeB = rhs + blindingFactorContainer.
encryptedMinusR2;
66 typename T_CryptoProvider::Ciphertext output = this->secureMultiplicationClient.lock()->Multiply(blindedVTildeA, blindedVTildeB);
68 output = output + lhs * blindingFactorContainer.
r2 + rhs * blindingFactorContainer.
r1 + blindingFactorContainer.
encryptedMinusR1R2;
76 template <
typename T_CryptoProv
ider>
78 this->secureMultiplicationClient = secureMultiplicationClient;
84 #endif//SECURE_MULTIPLICATION_SERVER_IMPLEMENTATION_GUARD
Stores precomputed random data.
T_CryptoProvider::Ciphertext encryptedMinusR1
T_CryptoProvider::Ciphertext Multiply(const typename T_CryptoProvider::Ciphertext &lhs, const typename T_CryptoProvider::Ciphertext &rhs)
Interactive secure multiplication.
Secure Multiplication Client.
T_CryptoProvider::Ciphertext encryptedMinusR2
SecureMultiplicationServer(const T_CryptoProvider &cryptoProvider, const size_t l, const std::string &configurationPath)
Constructor.
void SetClient(const std::shared_ptr< SecureMultiplicationClient< T_CryptoProvider >> &secureMultiplicationClient)
Setter for this->secureMultiplicationClient.
T_CryptoProvider::Ciphertext encryptedMinusR1R2
Blinding factor cache parameter container struct.