licencias-minds3/licencia.py

56 lines
1.6 KiB
Python
Raw Normal View History

2024-06-24 07:25:49 -06:00
import gnupg
import json
def firmar_y_cifrar_licencia(datos_licencia, passphrase):
# Inicializar GPG
gpg = gnupg.GPG()
try:
# Convertir los datos de la licencia a JSON
datos_licencia_json = json.dumps(datos_licencia, indent=4)
# Firmar los datos de la licencia
firma = gpg.sign(message=datos_licencia_json, detach=False, passphrase=passphrase)
if not firma:
print("Error al firmar los datos.")
return
print("Datos firmados correctamente.")
# Convertir los datos firmados a bytes
datos_firmados = str(firma).encode('utf-8')
# Cifrar los datos firmados
cifrado = gpg.encrypt(data=datos_firmados, recipients=None, symmetric=True, passphrase=passphrase)
if not cifrado:
print("Error al cifrar los datos.")
return
# Guardar los datos cifrados en un archivo
archivo_salida = 'licencia.cbs'
with open(archivo_salida, 'wb') as f:
f.write(cifrado.data)
print(f"Datos cifrados y guardados en '{archivo_salida}' correctamente.")
except Exception as e:
print(f"Error al firmar y cifrar los datos: {str(e)}")
# Datos de la licencia a firmar y cifrar
datos_licencia = {
"software": "MINDS",
"version": "1.0",
"license_key": "ABCD-EFGH-IJKL-MNOP",
"expiry_date": "2025-06-17",
"licensed_to": "USUARIO FAKE"
}
# Frase de paso para acceder a la clave privada y para cifrar
passphrase = '172999'
# Llamar a la función para firmar y cifrar la licencia
firmar_y_cifrar_licencia(datos_licencia, passphrase)