Esempio n. 1
0
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
Esempio n. 3
0
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
Esempio n. 4
0
# 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"