void DataSetup::read(Names& N, bool skip_2, string dir) { read_setup(skip_2, dir); int nn; string filename = dir + "/Player-FHE-Keys-P" + to_string(N.my_num()); ifstream inpf(filename.c_str()); if (inpf.fail()) { throw file_error(filename); } inpf >> nn; if (nn!=N.num_players()) { cout << "KeyGen was last run with " << nn << " players." << endl; cout << " - You are running Offline with " << N.num_players() << " players." << endl; exit(1); } /* Load in the public/private keys for this player */ inpf >> pk_p >> sk_p; inpf >> pk_2 >> sk_2; /* Load in ciphertexts encrypting the MAC keys */ inpf >> calphap; inpf >> calpha2; /* Loads in the players shares of the MAC keys */ inpf >> alphapi; inpf >> alpha2i; inpf.close(); cout << "Loaded the public keys etc" << endl; }
Parallel_MAC_Check<T>::Parallel_MAC_Check(const T& ai, Names& Nms, int thread_num, int opening_sum, int max_broadcast, int base_player) : Separate_MAC_Check<T>(ai, Nms, thread_num, opening_sum, max_broadcast, base_player), send_player(Nms, mc_base_id<T>(2, thread_num)), send_base_player(base_player) { int sum_players = Nms.num_players(); Player* summer_send_player = &send_player; for (int i = 0; ; i++) { int last_sum_players = sum_players; sum_players = (sum_players - 2 + opening_sum) / opening_sum; int next_sum_players = (sum_players - 2 + opening_sum) / opening_sum; if (sum_players == 0) break; Player* summer_receive_player = summer_send_player; summer_send_player = new PlainPlayer(Nms, mc_base_id<T>(3, thread_num)); summers.push_back(new Summer<T>(sum_players, last_sum_players, next_sum_players, summer_send_player, summer_receive_player, *this)); pthread_create(&(summers[i]->thread), 0, run_summer_thread<T>, summers[i]); } receive_player = summer_send_player; }
void DataSetup::write_setup(const Names& N, bool skip_2) { write_setup(get_prep_dir(N.num_players()), skip_2); }