#pragma once #include "openfhe/core/lattice/hal/lat-backend.h" #include "openfhe/pke/ciphertext-fwd.h" namespace openfhe { using CiphertextImpl = lbcrypto::CiphertextImpl; class CiphertextDCRTPoly final { std::shared_ptr m_ciphertext; public: CiphertextDCRTPoly() = default; CiphertextDCRTPoly(std::shared_ptr&& ciphertext) noexcept; CiphertextDCRTPoly(const CiphertextDCRTPoly&) = delete; CiphertextDCRTPoly(CiphertextDCRTPoly&&) = delete; CiphertextDCRTPoly& operator=(const CiphertextDCRTPoly&) = delete; CiphertextDCRTPoly& operator=(CiphertextDCRTPoly&&) = delete; [[nodiscard]] std::shared_ptr GetInternal() const noexcept; [[nodiscard]] std::shared_ptr& GetRef() noexcept; [[nodiscard]] const std::shared_ptr& GetRef() const noexcept; }; // Generator functions [[nodiscard]] std::unique_ptr DCRTPolyGenNullCiphertext(); } // openfhe