#include #include #include "openfhe.h" #include "scheme/bfvrns/bfvrns-ser.h" #include "scheme/bgvrns/bgvrns-ser.h" #include "cryptocontext-ser.h" #include "bindings.h" #include "serialization.h" using namespace lbcrypto; namespace py = pybind11; template bool SerializeEvalMultKeyWrapper(const std::string& filename, const ST& sertype, std::string id) { std::ofstream outfile(filename, std::ios::out | std::ios::binary); bool res; res = CryptoContextImpl::SerializeEvalMultKey(outfile, sertype, id); outfile.close(); return res; } void bind_serialization(pybind11::module &m) { // Json Serialization m.def("SerializeToFile", static_cast&, const SerType::SERJSON&)>(&Serial::SerializeToFile), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERJSON&)>(&Serial::DeserializeFromFile), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERJSON&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERJSON&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERJSON&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERJSON&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERJSON&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERJSON&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); // Binary Serialization m.def("SerializeToFile", static_cast&, const SerType::SERBINARY&)>(&Serial::SerializeToFile), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERBINARY&)>(&Serial::DeserializeFromFile), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERBINARY&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERBINARY&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERBINARY&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERBINARY&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("SerializeToFile", static_cast&, const SerType::SERBINARY&)>(&Serial::SerializeToFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); m.def("DeserializeFromFile", static_cast& ,const SerType::SERBINARY&)>(&Serial::DeserializeFromFile>), py::arg("filename"), py::arg("obj"), py::arg("sertype")); }