chat-ap / app.py
Omnibus's picture
Update app.py
a656504
raw
history blame
3.39 kB
import gradio as gr
import crypt
import os
rec_list = []
pa=os.environ['PASS']
def address(im):
secret_code="SECRET PASSWORD"
priv_key = crypt.decode(im)
print(f'priv_key:: {priv_key}')
key = RSA.import_key(priv_key,passphrase=secret_code)
public_key = key.publickey().export_key('PEM')
file_out_pub = open("receiver.pem", "wb")
file_out_pub.write(public_key)
file_out_pub.close()
hash_1 = calculate_hash(public_key, hash_function="sha256")
hash_2 = calculate_hash(hash_1, hash_function="ripemd160")
address = base58.b58encode(hash_2)
print (address)
def checkp(inp):
if inp == pa:
return gr.update(visible=False), gr.update(visible=True)
elif inp != pa:
return gr.update(visible=True), gr.update(visible=False)
with gr.Blocks() as app:
with gr.Row(visible=True) as invalid:
pass_box = gr.Textbox()
pass_btn = gr.Button()
with gr.Box(visible=False) as valida:
with gr.Tab("Messages"):
with gr.Accordion("Key"):
with gr.Row():
input_address = gr.Image(label="Wallet",type="filepath")
input_key = gr.Image(label="Key",type="filepath")
with gr.Row():
with gr.Column():
rec=gr.Dropdown(label="Recipient", choices=[f for f in rec_list], allow_custom_value=True)
send_mes=gr.Textbox(label="Message", lines=6)
send_mes_btn=gr.Button()
rec_mes = gr.Textbox(lines=6)
with gr.Tab("BC"):
with gr.Row():
with gr.Tab("Gen Wal"):
gen_wal_btn=gr.Button()
seed = gr.Textbox(label='Seed Phrase')
img1=gr.Pil(label='Private Key')
out1 = gr.Textbox(label='Private Key',max_lines=4)
img2=gr.Pil(label='Public Key')
out2 = gr.Textbox(label='Public Key',max_lines=4)
img3=gr.Pil(label='Address')
out3 = gr.Textbox(label='Address')
with gr.Tab("Encrypt"):
rsa_to_enc = gr.Textbox(label="txt to encrypt")
pub_key_in = gr.Image(label="Public Key", type="filepath")
priv_key_in1 = gr.Image(label="Private Key(sig)", type="filepath")
rsa_enc_btn = gr.Button("RSA Encrypt")
rsa_enc_mes = gr.Textbox(label="encoded", max_lines=4)
qr_enc_mes = gr.Image(type="filepath")
with gr.Tab("Decrypt"):
mes_in = gr.Image(label="Message", type="filepath")
priv_key_in = gr.Image(label="Private Key", type="filepath")
rsa_dec_btn = gr.Button("RSA Decrypt")
rsa_dec_mes = gr.Textbox(label="decoded")
input_key.change(address,input_key,None)
pass_btn.click(checkp,pass_box,[invalid,valida])
gen_wal_btn.click(crypt.generate_keys,None,[out2,out1,img3,out3,img1,img2]).then(crypt.test_fn,[img1,img3],[input_key,input_address])
rsa_enc_btn.click(crypt.encrypt_text,[rsa_to_enc,pub_key_in,priv_key_in1,out3],[rsa_enc_mes,qr_enc_mes])
rsa_dec_btn.click(crypt.decrypt_text,[mes_in,priv_key_in],rsa_dec_mes)
app.launch()