48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
import gnupg
|
|
|
|
def leer_descifrar_y_verificar_licencia(archivo_licencia, passphrase):
|
|
# Inicializar GPG
|
|
gpg = gnupg.GPG()
|
|
|
|
try:
|
|
# Leer el contenido cifrado del archivo
|
|
with open(archivo_licencia, 'rb') as f:
|
|
contenido_cifrado = f.read()
|
|
|
|
# Descifrar el contenido
|
|
descifrado = gpg.decrypt(contenido_cifrado, passphrase=passphrase)
|
|
|
|
if not descifrado.ok:
|
|
print(f"Error al descifrar los datos: {descifrado.status}")
|
|
return
|
|
|
|
print("Datos descifrados correctamente.")
|
|
|
|
# Los datos descifrados contienen la licencia firmada
|
|
datos_descifrados = descifrado.data.decode('utf-8')
|
|
|
|
# Verificar la firma
|
|
verificacion = gpg.verify(datos_descifrados)
|
|
|
|
if not verificacion:
|
|
print("La firma de la licencia no es válida.")
|
|
else:
|
|
print("La firma de la licencia es válida.")
|
|
|
|
# Imprimir los datos de la licencia
|
|
print("Datos de la licencia:")
|
|
print(datos_descifrados)
|
|
|
|
except Exception as e:
|
|
print(f"Error al leer, descifrar o verificar los datos: {str(e)}")
|
|
|
|
# Archivo de licencia a leer y descifrar
|
|
archivo_licencia = 'licencia.cbs'
|
|
|
|
# Frase de paso para descifrar
|
|
passphrase = '172999'
|
|
|
|
# Llamar a la función para leer, descifrar y verificar la licencia
|
|
leer_descifrar_y_verificar_licencia(archivo_licencia, passphrase)
|
|
|