-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGUI_PGP_Generator.py
More file actions
executable file
·74 lines (59 loc) · 2.12 KB
/
Copy pathGUI_PGP_Generator.py
File metadata and controls
executable file
·74 lines (59 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/python3
import gnupg
import os
from rich import print
from tkinter import *
def runGen():
entry_text = eingabe.get()
if (entry_text == ""):
welcome_label.config(text="Gib zu erst eine E-Mail Adresse ein!")
else:
email = entry_text
id = email.split('@')
pw = id[0] + "1"
key_input_data = gpg.gen_key_input(
name_real = id[0],
name_email = email,
passphrase = pw,
key_type = 'RSA',
key_length = 4096
)
key = gpg.gen_key(key_input_data)
pw_label.config(text="Passwort: " + pw)
fingerprint_label.config(text="Fingerabdruck: " + key.fingerprint)
print("[red]Passphrase:[/red] " + pw)
print("[yellow]Fingerprint:[/yellow] " + key.fingerprint)
ascii_armored_public_keys = gpg.export_keys(key.fingerprint)
ascii_armored_private_keys = gpg.export_keys(
keyids=key.fingerprint,
passphrase=pw,
secret=True,
)
os.mkdir(id[0])
pub = open(id[0] + "/public-" + id[0] + ".asc", "a")
pub.write(ascii_armored_public_keys)
pub.close()
pri = open(id[0] +"/private-" + id[0] + ".asc", "a")
pri.write(ascii_armored_private_keys)
pri.close()
welcome_label.config(text="Fertig")
print("[bold green]Done[/bold green]")
fenster = Tk()
fenster.title("PGP Schlüssel Generator")
gpg = gnupg.GPG('/usr/bin/gpg')
gpg.encoding = 'utf-8'
my_label = Label(fenster, text="Gib eine E-Mail Adresse ein: ")
eingabe = Entry(fenster, bd=5, width=40 )
welcome_label = Label(fenster)
fingerprint_label = Label(fenster)
pw_label = Label(fenster)
go_button = Button(fenster, text="Go", command=runGen)
exit_button = Button(fenster, text="Beenden", command=fenster.quit)
my_label.grid(row = 0, column = 0)
eingabe.grid(row = 0, column = 1)
go_button.grid(row = 1, column = 0)
exit_button.grid(row = 1, column = 1)
welcome_label.grid(row = 5, column = 0, columnspan = 2)
fingerprint_label.grid(row = 4, column = 0, columnspan = 2)
pw_label.grid(row = 3, column = 0, columnspan = 2)
mainloop()