-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathencrypt.py
executable file
·51 lines (42 loc) · 1.45 KB
/
encrypt.py
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
#!/usr/bin/env python
import binascii
import qrcode
import os
from io import BytesIO
from pyssss.PySSSS import encode
from cryptography.fernet import Fernet
from internal.password_to_key import password_to_key
from internal.createPDF import createPDF
if __name__ == "__main__":
nKeys = input("Number of Keys: ")
minKeys = input("Number of keys required to recompose the secret: ")
secret = raw_input("Secret: ")
password = raw_input('Password: ')
fernet = Fernet(password_to_key(password))
encrypted_secret = fernet.encrypt(secret.encode())
keys = []
for i in range(nKeys):
keys.append(BytesIO())
encode(BytesIO(encrypted_secret), keys, minKeys)
print("These are the %s keys:"%nKeys)
for i in range(nKeys):
print("-----------------------------------------")
print('Key #%s:'%i)
print("-----------------------------------------")
key = binascii.hexlify(keys[i].getvalue()).encode('UTF-8')
print(key)
# generate qr code
img_filename = 'qr.png'
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=0)
qr.add_data(key)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(img_filename)
# generate PDF
createPDF(img_filename, key, 'key-%s.pdf'%i)
# cleanup
os.remove(img_filename)