Example #1
0
def UpdateSQPr(pr, sig=None):
	if sig is None:
		session['updatesqpr'] = pr
		return pr
	else:
		orig = SHA256.new(session['updatesqpr'].encode())
		if pkcs.new(RSA.importKey(session['pubkey'])).verify(orig, bytes.fromhex(sig)):
			try:
				api = mc.getApi()
				txid = mc.publishItem(api, session['username'], 'updatesqlpr', session['updatesqpr'], sig)
			except:
				print("MultiChain Error")
				return "D"
			else:
				session.pop('updatesqpr', None)
				return "S"
Example #2
0
def UpdatePk(uid, pubkey, sig=None):
	if sig is None:
		data = uid+','+pubkey+',updatepubkey'
		session['updatepk'] = data
		return data
	else:
		orig = SHA256.new(session['updatepk'].encode())
		if pkcs.new(RSA.importKey(session['pubkey'])).verify(orig, bytes.fromhex(sig)):
			try:
				api = mc.getApi()
				txid = mc.publishItem(api, session['username'], 'updatepubkey', session['updatepk'], sig)
			except:
				print("MultiChain Error")
				return "D"
			else:
				session.pop('updatepk', None)
				return "S"
Example #3
0
def ExecFunc(func, param, sig=None):
	if sig is None:
		data = func+'||'+param
		session['execfunc'] = data
		return data
	else:
		orig = SHA256.new(session['execfunc'].encode())
		if pkcs.new(RSA.importKey(session['pubkey'])).verify(orig, bytes.fromhex(sig)):
			try:
				api = mc.getApi()
				txid = mc.publishItem(api, session['username'], session['execfunc'].split('||')[0], session['execfunc'], sig)
			except:
				print("MultiChain Error")
				return "D"
			else:
				session.pop('execfunc', None)
				return "S"
Example #4
0
def InstrCourses(uid, courses, sig=None):
	if sig is None:
		data = uid+'||'+courses+'||instrcourses'
		session['instrc'] = data
		return data
	else:
		orig = SHA256.new(session['instrc'].encode())
		if pkcs.new(RSA.importKey(session['pubkey'])).verify(orig, bytes.fromhex(sig)):
			try:
				api = mc.getApi()
				txid = mc.publishItem(api, session['username'], 'instrcourses', session['instrc'], sig)
			except:
				print("MultiChain Error")
				return "D"
			else:
				session.pop('instrc', None)
				return "S"
Example #5
0
def Update(uid, course, newGrade, sig=None):
    data = uid + ',' + course + ',' + newGrade + ',gradeupdate'
    if sig is None:
        session['update'] = data
        return data
    else:
        orig = SHA256.new(session['update'].encode())
        if pkcs.new(RSA.importKey(session['pubkey'])).verify(
                orig, bytes.fromhex(sig)):
            import mc
            try:
                api = mc.getApi()
                txid = mc.publishItem(api, session['username'], 'gradeupdate',
                                      session['update'], sig)
            except:
                print("MultiChain Error")
                return "D"
            else:
                session.pop('update', None)
                return "S"
        else:
            return "D"
Example #6
0
def Insert(data, count, sig=None):
    if sig is None:
        v = [tuple(i.values()) for i in data]
        s = map(list, zip(*v))
        dt = "||".join([",".join(i) for i in s]) + "||gradeinsert"
        session['insert'] = dt
        return dt
    else:
        orig = SHA256.new(session['insert'].encode())
        if pkcs.new(RSA.importKey(session['pubkey'])).verify(
                orig, bytes.fromhex(sig)):
            import mc
            try:
                api = mc.getApi()
                txid = mc.publishItem(api, session['username'], 'gradeinsert',
                                      session['insert'], sig)
            except:
                print("MultiChain Error")
                return jsonify({'status': 'D'})
            else:
                session.pop('insert', None)
                return jsonify({'status': 'S'})
        else:
            return jsonify({'status': 'D'})
Example #7
0
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5 as pkcs
from Crypto.Hash import SHA256
from collections import defaultdict
import threading, os, secrets, time
import select, socket, requests
from anytree import Node, RenderTree, LevelOrderIter
from itertools import product

conn = psycopg2.connect(database="rraj",
                        user="******",
                        password="******",
                        host="127.0.0.1",
                        port="5432")
cur = conn.cursor()
api = mc.getApi()

txRun = mc.streamInfo(api)
stmt = "UPDATE txid SET tx=%s"

POOL_TIME = 5
log = defaultdict(list)

makeTree = 1  ########################################################################################


def pollAndExecute():
    global makeTree, txRun, log
    # print(time.time(), x)
    tot = mc.streamInfo(api)
    if tot == txRun: