def TransactionGen(p, q, g): #Generating one transaction (payer_a, payer_b) = DSA.KeyGen(p, q, g) #Generating Keys for Payer (payee_a, payee_b) = DSA.KeyGen(p, q, g) #Generating Keys for Payee transaction = BeforeSign(p, q, g, payer_b, payee_b) #Generating first part of the Transaction (r, s) = DSA.SignGen(transaction, p, q, g, payer_a, payer_b) #Signing the Transaction transaction += \ "Signature (r): " + str(r) + "\n" + \ "Signature (s): " + str(s) + "\n" #Appending the signatures return transaction
def GenTxBlock(p, q, g, count): whole_transaction = "" for i in range(count): transaction = "" transaction += "*** Bitcoin transaction ***\n" line = "Serial number: " x = uuid.uuid4().int line += str(x) + "\n" transaction += line line = "p: " + str(p) + "\n" transaction += line line = "q: " + str(q) + "\n" transaction += line line = "g: " + str(g) + "\n" transaction += line alpha, beta = DSA.KeyGen(p, q, g) line = "Payer Public Key (beta): " + str(beta) + "\n" transaction += line alpha2, beta2 = DSA.KeyGen(p, q, g) line = "Payee Public Key (beta): " + str(beta2) + "\n" transaction += line line = "Amount: " y = random.randint(1, 1000) line += str(y) + " Satoshi\n" transaction += line m = transaction (r, s) = DSA.SignGen(m, p, q, g, alpha, beta) line = "Signature (r): " + str(r) + "\n" transaction += line line = "Signature (s): " + str(s) + "\n" transaction += line whole_transaction += transaction return whole_transaction
def GenTxBlock(p, q, g, count): transaction = "" temp = "" for i in range(count): alpha_payee, beta_payee = DSA.KeyGen(p,q,g) alpha_payer, beta_payer = DSA.KeyGen(p,q,g) temp += "*** Bitcoin transaction ***\n" temp += "Serial number: " + str(random.getrandbits(128)) + "\n" temp += "p: " + str(p) + "\n" temp += "q: " + str(q) + "\n" temp += "g: " + str(g) + "\n" temp += "Payer Public Key (beta): " + str(beta_payer) + "\n" temp += "Payee Public Key (beta): " + str(beta_payee) + "\n" temp += "Amount: " + str(random.randint(0, 1000)) + " Satoshi\n" r, s = DSA.SignGen(temp, p, q, g, alpha_payer, beta_payer); temp += "Signature (r): " + str(r) + '\n' temp += "Signature (s): " + str(s) + '\n' transaction += temp temp = "" return transaction
# DSA key generation if KeyGenOn: if ParamGenOn==0: if os.path.exists('DSA_params.txt') == True: inf = open('DSA_params.txt', 'r') q = int(inf.readline()) p = int(inf.readline()) g = int(inf.readline()) inf.close() print "DSA parameters are read from file DSA_params.txt" else: print 'DSA_params.txt does not exist' sys.exit() (alpha, beta) = DSA.KeyGen(p, q, g) outf = open('DSA_skey.txt', 'w') outf.write(str(q)+"\n") outf.write(str(p)+"\n") outf.write(str(g)+"\n") outf.write(str(alpha)+"\n") outf.close() print "Public key written into file DSA_skey.txt" outf = open('DSA_pkey.txt', 'w') outf.write(str(q)+"\n") outf.write(str(p)+"\n") outf.write(str(g)+"\n") outf.write(str(beta)+"\n") outf.close() print "Public key written into file DSA_pkey.txt"