SerialDeserial.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include "SerialMode.h"
  3. #include <string>
  4. namespace openfhe
  5. {
  6. class CiphertextDCRTPoly;
  7. class CryptoContextDCRTPoly;
  8. class PrivateKeyDCRTPoly;
  9. class PublicKeyDCRTPoly;
  10. // Ciphertext
  11. [[nodiscard]] bool DCRTPolyDeserializeCiphertextFromFile(const std::string& ciphertextLocation,
  12. CiphertextDCRTPoly& ciphertext, const SerialMode serialMode);
  13. [[nodiscard]] bool DCRTPolySerializeCiphertextToFile(const std::string& ciphertextLocation,
  14. const CiphertextDCRTPoly& ciphertext, const SerialMode serialMode);
  15. // CryptoContext
  16. [[nodiscard]] bool DCRTPolyDeserializeCryptoContextFromFile(const std::string& ccLocation,
  17. CryptoContextDCRTPoly& cryptoContext, const SerialMode serialMode);
  18. [[nodiscard]] bool DCRTPolySerializeCryptoContextToFile(const std::string& ccLocation,
  19. const CryptoContextDCRTPoly& cryptoContext, const SerialMode serialMode);
  20. // EvalAutomorphismKey
  21. [[nodiscard]] bool DCRTPolyDeserializeEvalMultKeyFromFile(const std::string& multKeyLocation,
  22. const SerialMode serialMode);
  23. [[nodiscard]] bool DCRTPolySerializeEvalMultKeyByIdToFile(const std::string& multKeyLocation,
  24. const SerialMode serialMode, const std::string& id);
  25. [[nodiscard]] bool DCRTPolySerializeEvalMultKeyToFile(const std::string& multKeyLocation,
  26. const CryptoContextDCRTPoly& cryptoContext, const SerialMode serialMode);
  27. // EvalMultKey
  28. [[nodiscard]] bool DCRTPolyDeserializeEvalAutomorphismKeyFromFile(
  29. const std::string& automorphismKeyLocation, const SerialMode serialMode);
  30. [[nodiscard]] bool DCRTPolySerializeEvalAutomorphismKeyByIdToFile(
  31. const std::string& automorphismKeyLocation, const SerialMode serialMode,
  32. const std::string& id);
  33. [[nodiscard]] bool DCRTPolySerializeEvalAutomorphismKeyToFile(
  34. const std::string& automorphismKeyLocation, const CryptoContextDCRTPoly& cryptoContext,
  35. const SerialMode serialMode);
  36. // EvalSumKey
  37. [[nodiscard]] bool DCRTPolyDeserializeEvalSumKeyFromFile(const std::string& sumKeyLocation,
  38. const SerialMode serialMode);
  39. [[nodiscard]] bool DCRTPolySerializeEvalSumKeyByIdToFile(const std::string& sumKeyLocation,
  40. const SerialMode serialMode, const std::string& id);
  41. [[nodiscard]] bool DCRTPolySerializeEvalSumKeyToFile(const std::string& sumKeyLocation,
  42. const CryptoContextDCRTPoly& cryptoContext, const SerialMode serialMode);
  43. // PublicKey
  44. [[nodiscard]] bool DCRTPolyDeserializePublicKeyFromFile(const std::string& publicKeyLocation,
  45. PublicKeyDCRTPoly& publicKey, const SerialMode serialMode);
  46. [[nodiscard]] bool DCRTPolySerializePublicKeyToFile(const std::string& publicKeyLocation,
  47. const PublicKeyDCRTPoly& publicKey, const SerialMode serialMode);
  48. [[nodiscard]] bool DCRTPolyDeserializePrivateKeyFromFile(const std::string& privateKeyLocation,
  49. PrivateKeyDCRTPoly& privateKey, const SerialMode serialMode);
  50. [[nodiscard]] bool DCRTPolySerializePrivateKeyToFile(const std::string& privateKeyLocation,
  51. const PrivateKeyDCRTPoly& cryptoContext, const SerialMode serialMode);
  52. } // openfhe