From f267cdb3b5c47462f80f124642898d4a1ec7a3d1 Mon Sep 17 00:00:00 2001 From: cantor Date: Tue, 5 Feb 2008 23:17:30 +0000 Subject: [PATCH] Windows batch file for key generation. git-svn-id: https://svn.middleware.georgetown.edu/cpp-sp/trunk@2722 cb58f699-b61c-0410-a6fe-9272a202ed29 --- configs/Makefile.am | 3 ++- configs/keygen.bat | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 configs/keygen.bat diff --git a/configs/Makefile.am b/configs/Makefile.am index 308256b..167b0d5 100644 --- a/configs/Makefile.am +++ b/configs/Makefile.am @@ -124,4 +124,5 @@ EXTRA_DIST = \ shibd-redhat.in \ shibd-debian.in \ shibd-osx.plist.in \ - $(CONFIGFILES) + $(CONFIGFILES) \ + keygen.bat diff --git a/configs/keygen.bat b/configs/keygen.bat new file mode 100644 index 0000000..c14974c --- /dev/null +++ b/configs/keygen.bat @@ -0,0 +1,62 @@ +@echo off +setlocal + +if exist %~p0sp-key.pem goto protect +if exist %~p0sp-cert.pem goto protect + +set DAYS= +set FQDN= +set TEMP_DOMAIN_NAME= +set PARAM= + +:opt_start +set PARAM=%1 +if not defined PARAM goto opt_end +if %1==-cn goto opt_fqdn +if %1==-years goto opt_years +goto usage +:opt_end + +if not defined DAYS set DAYS=10 +set /a DAYS=%DAYS%*365 + +if not defined FQDN goto guess_fqdn + +:generate +set PATH=%~p0..\..\lib;%~p0..\..\bin +%~p0..\..\bin\openssl.exe req -x509 -days %DAYS% -newkey rsa:2048 -nodes -keyout %~p0sp-key.pem -out %~p0sp-cert.pem -subj /CN=%FQDN% -config %~p0openssl.cnf -extensions usr_cert -set_serial 0 +exit /b + +:protect +echo The files sp-key.pem and/or sp-cert.pem already exist! +exit /b + +:opt_fqdn +set FQDN=%2 +shift +shift +goto opt_start + +:opt_years +set DAYS=%2 +shift +shift +goto opt_start + +:usage +echo usage: keygen [-cn cert common name to use] [-years years to issue cert] +exit /b + +:guess_fqdn +for /F "tokens=2 delims=:" %%i in ('"ipconfig /all | findstr /c:"Primary DNS Suffix""') do set TEMP_DOMAIN_NAME=%%i +if defined TEMP_DOMAIN_NAME set FQDN=%TEMP_DOMAIN_NAME: =% +set TEMP_DOMAIN_NAME= +if defined USERDNSDOMAIN set FQDN=%USERDNSDOMAIN% + +for /F %%i in ('hostname') do set HOST=%%i +if defined FQDN (set FQDN=%HOST%.%FQDN%) else (set FQDN=%HOST%) + +echo >%FQDN% +for /F %%i in ('dir /b/l %FQDN%') do set FQDN=%%i +del %FQDN% +goto generate -- 2.1.4