Fix secret key validation and encoding in generate_secret_key function; update requirements and add setup script

This commit is contained in:
whaffman 2025-07-04 16:38:37 +02:00
parent 3d17016823
commit 1ef8f6c4c9
3 changed files with 9 additions and 2 deletions

View File

@ -49,14 +49,14 @@ def generate_secret_key(secret_file):
if not secret: if not secret:
print("The provided secret file is empty. Please provide a valid secret.") print("The provided secret file is empty. Please provide a valid secret.")
return return
if not is_hex(secret.decode()): if not is_hex(secret):
print("The provided secret is not a valid hexadecimal string.") print("The provided secret is not a valid hexadecimal string.")
return return
if len(secret) < 64: if len(secret) < 64:
print("The provided secret is too short. It should be at least 64 characters long.") print("The provided secret is too short. It should be at least 64 characters long.")
return return
fernet = Fernet(machine_id) fernet = Fernet(machine_id)
secret_enc = fernet.encrypt(secret) secret_enc = fernet.encrypt(secret.encode())
try: try:
with open('./ft_otp.key', 'wb') as f: with open('./ft_otp.key', 'wb') as f:
f.write(secret_enc) f.write(secret_enc)

View File

@ -1,3 +1,6 @@
cffi==1.17.1 cffi==1.17.1
cryptography==45.0.4 cryptography==45.0.4
pillow==11.3.0
pycparser==2.22 pycparser==2.22
qrcode==8.2
qrcode-terminal==0.8

4
setup.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt