SchemeBase.h 704 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include "openfhe/core/lattice/hal/lat-backend.h"
  3. namespace lbcrypto
  4. {
  5. template <typename Element>
  6. class SchemeBase;
  7. } // lbcrypto
  8. namespace openfhe
  9. {
  10. using SchemeBase = lbcrypto::SchemeBase<lbcrypto::DCRTPoly>;
  11. class SchemeBaseDCRTPoly final
  12. {
  13. std::shared_ptr<SchemeBase> m_schemeBase;
  14. public:
  15. SchemeBaseDCRTPoly() = default;
  16. SchemeBaseDCRTPoly(const std::shared_ptr<SchemeBase>& schemeBase) noexcept;
  17. SchemeBaseDCRTPoly(const SchemeBaseDCRTPoly&) = delete;
  18. SchemeBaseDCRTPoly(SchemeBaseDCRTPoly&&) = delete;
  19. SchemeBaseDCRTPoly& operator=(const SchemeBaseDCRTPoly&) = delete;
  20. SchemeBaseDCRTPoly& operator=(SchemeBaseDCRTPoly&&) = delete;
  21. };
  22. } // openfhe