tfhe_libex
keyset.hpp
[詳解]
1 
5 #ifndef KEY_SET
6 #define KEY_SET
7 #include "../../common/common.hpp"
8 
12 class _TFHEKeySet {
13  private:
14  TFheGateBootstrappingParameterSet* _parameters = nullptr;
15  TFheGateBootstrappingCloudKeySet* _cloud_key = nullptr;
16  TFheGateBootstrappingSecretKeySet* _secret_key = nullptr;
17 
18  public:
19  const TFheGateBootstrappingParameterSet* parameters();
20  const TFheGateBootstrappingCloudKeySet* cloud_key();
21  const TFheGateBootstrappingSecretKeySet* secret_key();
22 
23  // public:
24  _TFHEKeySet() {}
25  ~_TFHEKeySet();
26  void create_new_keyset(int minimum_lambda);
27 
28  void load_parameters(const char* path);
29 
30  void load_cloud_key(const char* path);
31 
32  void load_secret_key(const char* path);
33 
34  void delete_keyset();
35 };
36 
43 class TFHEKeySet {
44  private:
45  static _TFHEKeySet keyset;
46 
47  protected:
52  static const TFheGateBootstrappingParameterSet* parameters() {
53  return keyset.parameters();
54  }
55 
60  static const TFheGateBootstrappingCloudKeySet* cloud_key() {
61  return keyset.cloud_key();
62  }
63 
68  static const TFheGateBootstrappingSecretKeySet* secret_key() {
69  return keyset.secret_key();
70  }
71 
72  public:
73  TFHEKeySet() {}
74  ~TFHEKeySet() {}
75 
79  static void create_new_keyset(int minimum_lambda) {
80  keyset.create_new_keyset(minimum_lambda);
81  }
82 
83  static void set_seed(uint32_t* values, int size) {
84  tfhe_random_generator_setSeed(values, size);
85  }
86 
90  static void load_parameters(const char* path) {
91  keyset.load_parameters(path);
92  }
93 
97  static void load_cloud_key(const char* path) { keyset.load_cloud_key(path); }
98 
102  static void load_secret_key(const char* path) {
103  keyset.load_secret_key(path);
104  }
105 
109  static void save_parameters(const char* path);
110 
114  static void save_cloud_key(const char* path);
115 
119  static void save_secret_key(const char* path);
120 };
121 #endif
TFHEKeySet::save_secret_key
static void save_secret_key(const char *path)
TFHEの秘密鍵をファイルに保存するメソッド.
Definition: keyset.cpp:96
TFHEKeySet::load_secret_key
static void load_secret_key(const char *path)
TFHEの秘密鍵を読み込むメソッド.
Definition: keyset.hpp:102
TFHEKeySet::load_cloud_key
static void load_cloud_key(const char *path)
TFHEのクラウド鍵を読み込むメソッド.
Definition: keyset.hpp:97
TFHEKeySet::cloud_key
static const TFheGateBootstrappingCloudKeySet * cloud_key()
TFheGateBootstrappingCloudKeySet*を返すメソッド.
Definition: keyset.hpp:60
TFHEKeySet::create_new_keyset
static void create_new_keyset(int minimum_lambda)
TFHEの秘密鍵,クラウド鍵,パラメータを作成するメソッド.
Definition: keyset.hpp:79
TFHEKeySet::load_parameters
static void load_parameters(const char *path)
TFHEのパラメータを読み込むメソッド.
Definition: keyset.hpp:90
TFHEKeySet::parameters
static const TFheGateBootstrappingParameterSet * parameters()
TFheGateBootstrappingParameterSet*を返すメソッド.
Definition: keyset.hpp:52
TFHEKeySet::save_cloud_key
static void save_cloud_key(const char *path)
TFHEのクラウド鍵をファイルに保存するメソッド.
Definition: keyset.cpp:90
TFHEKeySet
TFHEの秘密鍵,クラウド鍵,パラメータをまとめて管理するwrapperクラス.
Definition: keyset.hpp:43
TFHEKeySet::secret_key
static const TFheGateBootstrappingSecretKeySet * secret_key()
TFheGateBootstrappingSecretKeySet*を返すメソッド.
Definition: keyset.hpp:68
TFHEKeySet::save_parameters
static void save_parameters(const char *path)
TFHEのパラメータをファイルに保存するメソッド.
Definition: keyset.cpp:84
_TFHEKeySet
TFHEの秘密鍵,クラウド鍵,パラメータをまとめて管理するクラス.
Definition: keyset.hpp:12