github.com/jiajun1992/watercarver@v0.0.0-20191031150618-dfc2b17c0c4a/StadiumForWaterCarver/src/func_pro.h (about)

     1  /*
     2   * func_pro.h
     3   *
     4   *  Created on: 05.07.2012
     5   *      Author: stephaniebayer
     6   */
     7  
     8  #ifndef FUNC_PRO_H_
     9  #define FUNC_PRO_H_
    10  
    11  #include "Functions.h"
    12  #include<vector>
    13  #include "Cipher_elg.h"
    14  #include "G_q.h"
    15  #include "Mod_p.h"
    16  #include "Pedersen.h"
    17  
    18  #include "FakeZZ.h"
    19  NTL_CLIENT
    20  
    21  
    22  class func_pro {
    23  public:
    24  	func_pro();
    25  	virtual ~func_pro();
    26  
    27  	//Help functions to generate X and Y
    28  	static void set_X(vector<vector<ZZ>*>* X, long m,  long n);
    29  	static void set_A(vector<vector<ZZ>*>* Y,  vector<vector<vector<long>* >* >* pi, long m, long n);
    30  
    31  	static void set_x2(vector<vector<ZZ>*>* chal_x2, ZZ x2, long m, long n);
    32  	static void set_B_op(vector<vector<ZZ>*>* B, vector<vector<vector<long>* >* >* basis_B, vector<vector<ZZ>*>* chal_x2, vector<vector<vector<long>* >*>* pi, long omega_mulex);
    33  	static void set_B(vector<vector<ZZ>*>* B,vector<vector<ZZ>*>* chal_x2, vector<vector<vector<long>* >*>* pi);
    34  
    35  	static void set_D(vector<vector<ZZ>*>* D, vector<vector<ZZ>*>* A, vector<vector<ZZ>*>* B, ZZ chal_z, ZZ chal_y);
    36  	static void set_D_h(vector<vector<ZZ>*>* D_h, vector<vector<ZZ>*>* D);
    37  	static void commit_B0_op(vector<ZZ>* B_0, vector<vector<long>* >* basis_B0, ZZ &r_B0, Mod_p &c_B0, long omega_mulex, Pedersen& ped);
    38  
    39  	static void set_Rb(vector<vector<ZZ>*>* B, vector<vector<ZZ>*>* R, ZZ &R_b);
    40  	static void commit_a_op(vector<ZZ>* a, vector<ZZ>* r_a, vector<Mod_p>* c_a, Pedersen& ped);
    41  
    42  	static void set_D_s(vector<vector<ZZ>*>* D_s, vector<vector<ZZ>*>* D_h, vector<vector<ZZ>*>* D, vector<ZZ>* chal, ZZ & r_Dl_bar);
    43  	static void commit_Dl_op(vector<Mod_p>* c_Dl, vector<ZZ>* Dl, vector<ZZ>* r_Dl, vector<vector<ZZ>*>* D, vector<vector<ZZ>*>* D_s, vector<ZZ>* chal, Pedersen& ped);
    44  	static void commit_d_op(vector<ZZ>* d, ZZ &r_d, Mod_p & c_d, Pedersen& ped);
    45  	static void commit_Delta_op(vector<ZZ>* Delta, vector<ZZ>* d, ZZ & r_Delta, Mod_p & c_Delta, Pedersen& ped);
    46  	static void commit_d_h_op(vector<vector<ZZ>*>* D_h, vector<ZZ>* d_h, vector<ZZ>* d, vector<ZZ>* Delta, ZZ & r_d_h, Mod_p &c_d_h, Pedersen& ped);
    47  
    48  	static void calculate_B_bar(vector<ZZ>* T_0, vector<vector<ZZ>*>* T, vector<ZZ>* chal, vector<ZZ>* B_bar);
    49  	static void calculate_r_B_bar(vector<ZZ>* r_T, vector<ZZ>* chal, ZZ r_T0, ZZ &r_B_bar);
    50  	static void calculate_a_bar(vector<ZZ>* a, vector<ZZ>* chal, ZZ & a_bar);
    51  	static void calculate_r_a_bar(vector<ZZ>* r_a, vector<ZZ>* chal, ZZ & r_a_bar);
    52  	static void calculate_rho_a_bar(vector<ZZ>* rho_a, vector<ZZ>* chal, ZZ & rho_bar);
    53  
    54  	static void calculate_D_h_bar(vector<ZZ>* D_h_bar, vector<vector<ZZ>*>* D_h, vector<ZZ>* chal);
    55  	static void calculate_r_Dh_bar(vector<ZZ>* r_D_h, vector<ZZ>* chal, ZZ & r_Dh_bar);
    56  	static void calculate_dbar_rdbar(vector<vector<ZZ>*>* D_h, vector<ZZ>* chal, vector<ZZ>* d_bar, vector<ZZ>* d, vector<ZZ>* r_D_h, ZZ r_d, ZZ & r_d_bar);
    57  	static void calculate_Deltabar_rDeltabar(vector<ZZ>* d_h, vector<ZZ>* chal, vector<ZZ>* Delta_bar, vector<ZZ>* Delta, ZZ r_d_h, ZZ r_Delta, ZZ & r_Delta_bar);
    58  
    59  	static void calculate_A_bar(vector<vector<ZZ>*>* D, vector<ZZ>* A_bar, vector<ZZ>* chal);
    60  	static void calculate_D_s_bar(vector<vector<ZZ>*>* D_s, vector<ZZ>* D_s_bar, vector<ZZ>* chal);
    61  	static void calculate_r_A_bar(ZZ r_Y0, vector<ZZ>* r_Y, vector<ZZ>* r_T, vector<ZZ>* chal, ZZ r_z, ZZ lamda, ZZ & r_A_bar);
    62  	static void calculate_r_Ds_bar(vector<ZZ>* r_D_h,  vector<ZZ>* chal_1, vector<ZZ>* chal_2, ZZ & r_Ds_bar, ZZ r_Dm);
    63  	static void calculate_r_Dl_bar(vector<ZZ>* r_C, vector<ZZ>* chal, ZZ &r_Dl_bar);
    64  
    65  };
    66  
    67  #endif /* FUNC_PRO_H_ */