123456789101112131415161718192021222324252627282930313233 |
- #pragma once
- #include "openfhe/core/lattice/hal/lat-backend.h"
- #include "openfhe/pke/ciphertext-fwd.h"
- #include "SerialMode.h"
- namespace openfhe
- {
- using CiphertextImpl = lbcrypto::CiphertextImpl<lbcrypto::DCRTPoly>;
- class CiphertextDCRTPoly final
- {
- std::shared_ptr<CiphertextImpl> m_ciphertext;
- public:
- friend bool SerializeCiphertextToFile(const std::string& ciphertextLocation,
- const CiphertextDCRTPoly& ciphertext, const SerialMode serialMode);
- friend bool DeserializeCiphertextFromFile(const std::string& ciphertextLocation,
- CiphertextDCRTPoly& ciphertext, const SerialMode serialMode);
- CiphertextDCRTPoly() = default;
- explicit CiphertextDCRTPoly(const std::shared_ptr<CiphertextImpl>& ciphertext);
- CiphertextDCRTPoly(const CiphertextDCRTPoly&) = delete;
- CiphertextDCRTPoly(CiphertextDCRTPoly&&) = delete;
- CiphertextDCRTPoly& operator=(const CiphertextDCRTPoly&) = delete;
- CiphertextDCRTPoly& operator=(CiphertextDCRTPoly&&) = delete;
- [[nodiscard]] std::shared_ptr<CiphertextImpl> GetInternal() const;
- };
- [[nodiscard]] std::unique_ptr<CiphertextDCRTPoly> GenNullCiphertext();
- }
|