@echo off
SETLOCAL EnableDelayedExpansion

echo ==================================================
echo   Instalador de Seguridad - Conexion UDG (Java)
echo ==================================================

:: 1. Verificar si el usuario lo ejecuto como Administrador
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo.
    echo [ERROR] ALTO: No tienes permisos suficientes.
    echo Por favor, haz clic derecho sobre este archivo .bat
    echo y selecciona la opcion: "Ejecutar como administrador".
    echo.
    pause
    exit /b 1
)

:: --- BUSQUEDA AUTOMATICA DE JAVA 1.8.0_111 ---
set "KEYTOOL_EXE="
set "CACERTS_PATH="

:: Intento 1: JDK (64 bits)
if exist "C:\Program Files\Java\jdk1.8.0_111\bin\keytool.exe" (
    set "KEYTOOL_EXE=C:\Program Files\Java\jdk1.8.0_111\bin\keytool.exe"
    set "CACERTS_PATH=C:\Program Files\Java\jdk1.8.0_111\jre\lib\security\cacerts"
)

:: Intento 2: JDK (32 bits)
if "%KEYTOOL_EXE%"=="" if exist "C:\Program Files (x86)\Java\jdk1.8.0_111\bin\keytool.exe" (
    set "KEYTOOL_EXE=C:\Program Files (x86)\Java\jdk1.8.0_111\bin\keytool.exe"
    set "CACERTS_PATH=C:\Program Files (x86)\Java\jdk1.8.0_111\jre\lib\security\cacerts"
)

:: Intento 3: JRE (64 bits) - Nota que la ruta de cacerts cambia (ya no lleva el \jre\ intermedio)
if "%KEYTOOL_EXE%"=="" if exist "C:\Program Files\Java\jre1.8.0_111\bin\keytool.exe" (
    set "KEYTOOL_EXE=C:\Program Files\Java\jre1.8.0_111\bin\keytool.exe"
    set "CACERTS_PATH=C:\Program Files\Java\jre1.8.0_111\lib\security\cacerts"
)

:: Intento 4: JRE (32 bits)
if "%KEYTOOL_EXE%"=="" if exist "C:\Program Files (x86)\Java\jre1.8.0_111\bin\keytool.exe" (
    set "KEYTOOL_EXE=C:\Program Files (x86)\Java\jre1.8.0_111\bin\keytool.exe"
    set "CACERTS_PATH=C:\Program Files (x86)\Java\jre1.8.0_111\lib\security\cacerts"
)

:: Validar si lo encontro
if "%KEYTOOL_EXE%"=="" (
    echo.
    echo [ERROR CRITICO] No se pudo encontrar Java 1.8.0_111 en tu computadora.
    echo Asegurate de haber instalado Java antes de correr este archivo.
    echo.
    pause
    exit /b 1
)

:: --- CONFIGURACION DE CERTIFICADO ---
set "CERT_FILE=%~dp0certificado_udg.crt"
set "ALIAS=certificado_oficial_udg"
set "STOREPASS=changeit"

:: 2. Verificar que el certificado este en la misma carpeta
if not exist "%CERT_FILE%" (
    echo.
    echo [ERROR] No se encuentra el archivo del certificado.
    echo Asegurate de que el archivo "certificado_udg.crt" este
    echo en esta misma carpeta junto a este programa.
    echo.
    pause
    exit /b 1
)

:: 3. Respaldo de seguridad del cacerts
if not exist "%CACERTS_PATH%.bak" (
    copy "%CACERTS_PATH%" "%CACERTS_PATH%.bak" >nul
)

:: 4. Ejecutar la importacion
echo.
echo Importando certificado al sistema...
"%KEYTOOL_EXE%" -import -trustcacerts -file "%CERT_FILE%" -alias "%ALIAS%" -keystore "%CACERTS_PATH%" -storepass %STOREPASS% -noprompt

if %errorLevel% equ 0 (
    echo.
    echo ==========================================
    echo    EXITO: Certificado instalado correctamente.
    echo    Ya puedes abrir la aplicacion.
    echo ==========================================
) else (
    echo.
    echo [AVISO] Hubo un detalle al importar. Es probable que 
    echo el certificado de la UDG ya estuviera instalado, o la contrasena "changeit" fue modificada.
)

echo.
pause