echo off

echo Usage revoke_certificate.bat 'location_root' 'unique_name'

SET BATCH_DIR=%~dp0
SET OPENSSL_EXE_DIR=%BATCH_DIR%..\..\..\Tools\OpenSSL_3.0\Bin\

if %1.==. GOTO NO_PATH_REVOKE
if %1.==. GOTO NO_NAME_REVOKE

set LOCATION=%~1
set NAME=%2

set CA_PRIVATE_KEY_LOCATION=%LOCATION%\certs\ca_private_key.pem
set CA_CERTIFICATE_LOCATION=%LOCATION%\certs\ca_cert.der
set PRIVATE_KEY_LOCATION=%LOCATION%\private\private_key_%NAME%.pem
set REQUEST_LOCATION=%LOCATION%\request\req_%NAME%.csr
set DER_CERTIFICATE_LOCATION=%LOCATION%\certs\cert_%NAME%.der
set PEM_CERTIFICATE_LOCATION=%LOCATION%\certs\cert_%NAME%.pem
set CONFIGURATION=%BATCH_DIR%openssl.cnf

echo Root dir: %LOCATION%
echo Name: %NAME%
echo CA private key location: %CA_PRIVATE_KEY_LOCATION%
echo CA certificate location: %CA_CERTIFICATE_LOCATION%
echo DER Certificate location: %DER_CERTIFICATE_LOCATION%
echo PEM Certificate location: %PEM_CERTIFICATE_LOCATION%
echo Configuration file: %CONFIGURATION%

echo Creating CA root certificate

echo Step 1	: Initialize location

md "%LOCATION%"
md "%LOCATION%\private"
md "%LOCATION%\certs"
md "%LOCATION%\crl"
md "%LOCATION%\request"


echo Step 2	: Convert the DER certificate to PEM
"%OPENSSL_EXE_DIR%openssl" x509 -inform DER -in "%DER_CERTIFICATE_LOCATION%" -outform PEM -out "%PEM_CERTIFICATE_LOCATION%"

echo Step 3	: Revoke certificate
"%OPENSSL_EXE_DIR%openssl" ca -config "%CONFIGURATION%" -revoke "%PEM_CERTIFICATE_LOCATION%" -passin pass:pass

GOTO END_REVOKE

:NO_PATH_REVOKE
echo No path has been specified
GOTO END_SIGN

:NO_NAME_REVOKE
echo No name has been specified
GOTO END_REVOKE

:END_REVOKE
