PrivateKey.h 716 B

123456789101112131415161718192021222324
  1. #pragma once
  2. #include "openfhe/core/lattice/hal/lat-backend.h"
  3. #include "openfhe/pke/key/privatekey-fwd.h"
  4. namespace openfhe
  5. {
  6. using PrivateKeyImpl = lbcrypto::PrivateKeyImpl<lbcrypto::DCRTPoly>;
  7. class PrivateKeyDCRTPoly final
  8. {
  9. std::shared_ptr<PrivateKeyImpl> m_privateKey;
  10. public:
  11. explicit PrivateKeyDCRTPoly(const std::shared_ptr<PrivateKeyImpl>& privateKey);
  12. PrivateKeyDCRTPoly(const PrivateKeyDCRTPoly&) = delete;
  13. PrivateKeyDCRTPoly(PrivateKeyDCRTPoly&&) = delete;
  14. PrivateKeyDCRTPoly& operator=(const PrivateKeyDCRTPoly&) = delete;
  15. PrivateKeyDCRTPoly& operator=(PrivateKeyDCRTPoly&&) = delete;
  16. [[nodiscard]] std::shared_ptr<PrivateKeyImpl> GetInternal() const;
  17. };
  18. } // openfhe