|
|
@@ -195,6 +195,14 @@ std::unique_ptr<CiphertextDCRTPoly> CryptoContextDCRTPoly::EvalAutomorphism(
|
|
|
return std::make_unique<CiphertextDCRTPoly>(m_cryptoContextImplSharedPtr->EvalAutomorphism(
|
|
|
ciphertext.GetRef(), i, *evalKeyMap.GetRef()));
|
|
|
}
|
|
|
+std::unique_ptr<CiphertextDCRTPoly> CryptoContextDCRTPoly::EvalAutomorphismDirect(
|
|
|
+ const CiphertextDCRTPoly& ciphertext, const uint32_t i) const
|
|
|
+{
|
|
|
+ const auto ct = ciphertext.GetRef();
|
|
|
+ const auto evalKeyMap = this->GetRef()->GetEvalAutomorphismKeyMap(ct->GetKeyTag());
|
|
|
+ return std::make_unique<CiphertextDCRTPoly>(m_cryptoContextImplSharedPtr->EvalAutomorphism(
|
|
|
+ ciphertext.GetRef(), i, evalKeyMap));
|
|
|
+}
|
|
|
std::unique_ptr<MapFromIndexToEvalKey> CryptoContextDCRTPoly::EvalAutomorphismKeyGen(
|
|
|
const PrivateKeyDCRTPoly& privateKey, const std::vector<uint32_t>& indexList) const
|
|
|
{
|