109 lines
3.6 KiB
Python
109 lines
3.6 KiB
Python
#!/usr/bin/env python3
|
|
from tkinter import *
|
|
|
|
class GUI:
|
|
|
|
def __init__(self, root):
|
|
self.root = root
|
|
|
|
def Main(self):
|
|
try:
|
|
self.PostFrame.destroy()
|
|
except:
|
|
None
|
|
try:
|
|
self.GetFrame.destroy()
|
|
except:
|
|
None
|
|
self.MainFrame = Frame(self.root)
|
|
self.MainFrame.pack()
|
|
WelcomeLabel = Label(self.MainFrame,text="Welcome To FloSecret App")
|
|
WelcomeLabel.pack()
|
|
PostButton = Button(self.MainFrame,text="POST",command=self.Post)
|
|
PostButton.pack()
|
|
GetButton = Button(self.MainFrame,text="GET",command=self.Get)
|
|
GetButton.pack()
|
|
|
|
def Post(self):
|
|
self.MainFrame.destroy()
|
|
self.PostFrame = Frame(self.root)
|
|
self.PostFrame.pack()
|
|
PL1 = Label(self.PostFrame,text="Enter Total Number of shares : ")
|
|
PL1.grid(row=1, column =1)
|
|
self.PE1 = Entry(self.PostFrame)
|
|
self.PE1.grid(row=1, column =2)
|
|
PL2 = Label(self.PostFrame,text="Enter Minimum Number of required shares : ")
|
|
PL2.grid(row=2, column =1)
|
|
self.PE2 = Entry(self.PostFrame)
|
|
self.PE2.grid(row=2, column =2)
|
|
PL3 = Label(self.PostFrame,text="Enter the message to be encrypted")
|
|
PL3.grid(row=3, column =1, columnspan=2)
|
|
self.PTextBox = Text(self.PostFrame,height=10,width=50)
|
|
PScroll = Scrollbar(self.PostFrame)
|
|
self.PTextBox.configure(yscrollcommand=PScroll.set)
|
|
self.PTextBox.grid(row=4, column =1, columnspan=2)
|
|
PScroll.grid(row=4, column =1,sticky = E,columnspan=2)
|
|
PBackButton=Button(self.PostFrame,text="Back",command=self.Main)
|
|
PBackButton.grid(row=5, column =1)
|
|
PNextButton=Button(self.PostFrame,text="Post",command=self.SendToFlo)
|
|
PNextButton.grid(row=5, column =2)
|
|
|
|
|
|
|
|
def SendToFlo(self):
|
|
#get a master key
|
|
#encrypt using AES
|
|
#store in FLO Blockchain
|
|
#return the hash n shared keys
|
|
return
|
|
|
|
|
|
def Get(self):
|
|
self.MainFrame.destroy()
|
|
self.GetFrame = Frame(self.root)
|
|
self.GetFrame.pack()
|
|
GL1 = Label(self.GetFrame,text="Enter Number of required shares : ")
|
|
GL1.grid(row=1,column=1)
|
|
self.GE1 = Entry(self.GetFrame)
|
|
self.GE1.grid(row=1,column=2)
|
|
GL2 = Label(self.GetFrame,text="Enter Transaction hash : ")
|
|
GL2.grid(row=2,column=1)
|
|
self.GE2 = Entry(self.GetFrame)
|
|
self.GE2.grid(row=2,column=2)
|
|
GButton = Button(self.GetFrame,text="Find Secret",command=self.GetSharedKey)
|
|
GButton.grid(row=3,column=1)
|
|
GBackButton=Button(self.GetFrame,text="Back",command=self.Main)
|
|
GBackButton.grid(row=3,column=2)
|
|
|
|
def GetSharedKey(self):
|
|
try:
|
|
numOfShares = int(self.GE1.get())
|
|
except:
|
|
print("Invalid Int")
|
|
return
|
|
GLArray = [None] * numOfShares
|
|
GEArray = [None] * numOfShares
|
|
for i in range(numOfShares):
|
|
GLArray[i] = Label(self.GetFrame, text="Shared key #"+str(i+1))
|
|
GLArray[i].grid(column=1)
|
|
GEArray[i] = Entry(self.GetFrame)
|
|
GEArray[i].grid(column=2)
|
|
GButton2 = Button(self.GetFrame,text="Decrypt",command=self.DecryptMsg)
|
|
GButton2.grid(column=1, columnspan=2)
|
|
|
|
def DecryptMsg(self):
|
|
#retrive the encryted data from the transaction in FLO blkchain
|
|
#decrypt the message using AES and shared key
|
|
#display the message
|
|
return
|
|
|
|
|
|
|
|
root = Tk()
|
|
root.title("FloSecret")
|
|
gui = GUI(root)
|
|
gui.Main()
|
|
root.mainloop()
|
|
|
|
|