def __init__(self,PPATCpp,g1,g2,h1): self.PPATCpp = PPATCpp self.g1 = g1 # in G1 self.g2 = g2 # in G1 self.h1 = h1 # in G2' #psi = self.PPATCpp.psi #self.hashf = None # Hash function to be implemented #assert g1.ECG == self.PPATCpp.Pair.ECG #assert g2.ECG == self.PPATCpp.Pair.ECG Jcoord = self.PPATCpp.Jcoord if Jcoord : self.g1.toJcoord() self.g2.toJcoord() self.h1.toJcoord() #assert psi(h1).ECG == self.PPATCpp.Pairing.EFqp w = 10 m = len(utils.binn(self.PPATCpp.order)) #m = 160 d = int(math.ceil(float(m)/w)) e = int(math.ceil(float(d)/2)) # Precomputed tables to fasten the scalr multiplication with the generators self.precomp_g = oEC.prec_comb2_EFp2(w,m,self.PPATCpp.g,Jcoord),w,m,d,e self.precomp_h = oEC.prec_comb2_EFp(w,m,self.PPATCpp.h,Jcoord),w,m,d,e self.precomp_g1 = oEC.prec_comb2_EFp2(w,m,self.g1,Jcoord),w,m,d,e self.precomp_g2 = oEC.prec_comb2_EFp2(w,m,self.g2,Jcoord),w,m,d,e self.precomp_h1 = oEC.prec_comb2_EFp(w,m,self.h1,Jcoord),w,m,d,e self.to_fingerprint = ["PPATCpp","g1","g2","h1"] self.to_export = {"fingerprint": [],"value": ["PPATCpp","g1","g2","h1"]}
def __init__(self,PPATSpp,g1,h1,maxexp=16): self.PPATSpp = PPATSpp self.g1 = g1 # in G2' self.h1 = h1 # in G1 self.maxexp = maxexp Jcoord = self.PPATSpp.Jcoord if Jcoord : self.g1.toJcoord() self.h1.toJcoord() self.ehg = self.PPATSpp.e(self.PPATSpp.h,self.PPATSpp.psi(self.PPATSpp.g),self.PPATSpp.Pair,Jcoord) self.ehgt = oEC.toTupleFp12(self.ehg) # tuple version of egh1 #self.tripletsList = [] #lkq = len(bin(self.h1.EFq.F.q)) w = 10 m = len(utils.binn(self.PPATSpp.order)) #m = 160 d = int(math.ceil(float(m)/w)) e = int(math.ceil(float(d)/2)) # Precomputed tables to fasten the scalr multiplication with the generators self.precomp_g = oEC.prec_comb2_EFp2(w,m,self.PPATSpp.g,Jcoord),w,m,d,e self.precomp_h = oEC.prec_comb2_EFp(w,m,self.PPATSpp.h,Jcoord),w,m,d,e self.precomp_g1 = oEC.prec_comb2_EFp2(w,m,self.g1,Jcoord),w,m,d,e self.precomp_h1 = oEC.prec_comb2_EFp(w,m,self.h1,Jcoord),w,m,d,e self.to_fingerprint = ["PPATSpp","g1","h1"] self.to_export = {"fingerprint": [],"value": ["PPATSpp","g1","h1"]}
def __init__(self,pairing,deg_pol,gVec=[],hVec=[],gprimeVec=[]): self.pairing = pairing self.Fr = field.Field(self.pairing.r) assert isinstance(self.pairing,pair.Pairing) self.deg_pol = deg_pol assert deg_pol > 0 self.gVec = gVec self.hVec = hVec self.gprimeVec = gprimeVec self.gVecTab = [] self.hVecTab = [] self.gprimeVecTab = [] self.w = 10 self.m = len(utils.binn(self.pairing.r)) self.d = int(math.ceil(float(self.m)/self.w)) self.e = int(math.ceil(float(self.d)/2)) self.Jcoord = True self.to_fingerprint = ["pairing","deg_pol","gVec","hVec","gprimeVec"] self.to_export = {"fingerprint": [],"value": ["pairing","deg_pol","gVec","hVec","gprimeVec"]}
def __init__(self, PPATCpp, g1, g2, h1): self.PPATCpp = PPATCpp self.g1 = g1 # in G1 self.g2 = g2 # in G1 self.h1 = h1 # in G2' #psi = self.PPATCpp.psi #self.hashf = None # Hash function to be implemented #assert g1.ECG == self.PPATCpp.Pair.ECG #assert g2.ECG == self.PPATCpp.Pair.ECG Jcoord = self.PPATCpp.Jcoord if Jcoord: self.g1.toJcoord() self.g2.toJcoord() self.h1.toJcoord() #assert psi(h1).ECG == self.PPATCpp.Pairing.EFqp w = 10 m = len(utils.binn(self.PPATCpp.order)) #m = 160 d = int(math.ceil(float(m) / w)) e = int(math.ceil(float(d) / 2)) # Precomputed tables to fasten the scalr multiplication with the generators self.precomp_g = oEC.prec_comb2_EFp2(w, m, self.PPATCpp.g, Jcoord), w, m, d, e self.precomp_h = oEC.prec_comb2_EFp(w, m, self.PPATCpp.h, Jcoord), w, m, d, e self.precomp_g1 = oEC.prec_comb2_EFp2(w, m, self.g1, Jcoord), w, m, d, e self.precomp_g2 = oEC.prec_comb2_EFp2(w, m, self.g2, Jcoord), w, m, d, e self.precomp_h1 = oEC.prec_comb2_EFp(w, m, self.h1, Jcoord), w, m, d, e self.to_fingerprint = ["PPATCpp", "g1", "g2", "h1"] self.to_export = { "fingerprint": [], "value": ["PPATCpp", "g1", "g2", "h1"] }