HEaaN
Crypto Lab's great homomorphic encryption library
CollectiveKeyGenData.hpp
Go to the documentation of this file.
1 // //
3 // Copyright (C) 2021-2023 Crypto Lab Inc. //
4 // //
5 // - This file is part of HEaaN homomorphic encryption library. //
6 // - HEaaN cannot be copied and/or distributed without the express permission //
7 // of Crypto Lab Inc. //
8 // //
10 
11 #pragma once
12 
13 #include "HEaaN/Context.hpp"
14 #include "HEaaN/HEaaNExport.hpp"
15 #include "HEaaN/Pointer.hpp"
17 
18 namespace HEaaN {
19 class CollectiveKeyGenDataImpl;
20 class Polynomial;
21 
28 public:
34 
36  const CollectiveKeyGenConfig &getConfig() const;
37 
39  void save(std::ostream &stream) const;
40 
42  void load(std::istream &stream);
43 
47  void emplacePoly(const Context &context, bool is_extended,
48  u64 num_poly = 1);
49 
53  u64 getSize() const;
54 
59  std::vector<Polynomial>::const_iterator getPolyIter() const;
60  std::vector<Polynomial>::iterator getPolyIter();
61 
62 private:
64 };
65 
66 } // namespace HEaaN
HEaaN::CollectiveKeyGenConfig
Configuration for collective key generation on which key to generate.
Definition: CollectiveKeyGenConfig.hpp:19
HEaaN::load
HEAAN_API void load(EvaluationKey &key, std::istream &stream)
Load key from a given stream.
HEaaN::CollectiveKeyGenData::impl_
Pointer< CollectiveKeyGenDataImpl > impl_
Definition: CollectiveKeyGenData.hpp:63
HEaaN::Pointer< CollectiveKeyGenDataImpl >
HEaaN::u64
std::uint64_t u64
Definition: Integers.hpp:17
Pointer.hpp
CollectiveKeyGenConfig.hpp
HEaaN::CollectiveKeyGenData
A class to describe data being transfered between parties on the process of generating public keys fr...
Definition: CollectiveKeyGenData.hpp:27
HEaaN::Context
std::shared_ptr< ContextContent > Context
Definition: Context.hpp:27
HEaaN::save
HEAAN_API void save(const EvaluationKey &key, std::ostream &stream)
Save key to a given stream.
Context.hpp
HEaaNExport.hpp
HEAAN_API
#define HEAAN_API
Definition: HEaaNExport.hpp:26
HEaaN
Definition: Bootstrapper.hpp:16