File "JKS-MAKER.bas"
Path: /AndroCertif/JKS-MAKER.bas
File size: 9.76 KB
MIME-type:
Charset: utf-8
#COMPILE EXE "JKS-MAKER.exe"
#DIM ALL
$VER = "(1.0)"
'------------------------------------------------------------------------------
' ** Constants **
'------------------------------------------------------------------------------
%IDC_LABEL1 = 1001
%IDC_TEXTBOX1 = 1002
%IDC_TEXTBOX2 = 1003
%IDC_TEXTBOX3 = 1004
%IDC_TEXTBOX4 = 1005
%IDC_TEXTBOX5 = 1006
%IDC_TEXTBOX6 = 1007
%IDC_LABEL2 = 1008
'------------------------------------------------------------------------------
GLOBAL KSCommonName, KSOrgName, KSOrgUnit, KSLocality AS STRING
GLOBAL KSState, KSCountry, KSPassword, KSAlias AS STRING
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** Includes & Resources **
'------------------------------------------------------------------------------
#INCLUDE ONCE "WIN32API.INC"
#INCLUDE ONCE "AndroCertif.inc"
#RESOURCE ICON, 101, "icon2.ico"
#RESOURCE MANIFEST, 1, "XPTheme.xml"
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** Main Application Entry Point **
'------------------------------------------------------------------------------
FUNCTION PBMAIN () AS LONG
LOCAL ks, er AS STRING
LOCAL tmpKS AS STRING
IF MissingTools() THEN EXIT FUNCTION
tmpKS = ENVIRON$("TEMP") + "\keystore.jks"
IF ShowNewKS(%HWND_DESKTOP) = 0 THEN EXIT FUNCTION ' cancelled by user
IF ShowKSAliasPW(%HWND_DESKTOP) = 0 THEN EXIT FUNCTION ' cancelled by user
KILL "keystore.jks"
er = BATCH( toolsPath + "\keytool -genkey -keyalg RSA -keystore " + PDQ(tmpKS) _
+ " -alias " + KSAlias + " -storepass " + KSPassword _
+ " -keypass " + KSPassword + " -validity 10000" _
+ " -dname " + $DQ + "CN=" + KSCommonName _
+ ", OU=" + KSOrgUnit + ", O=" + KSOrgName _
+ ", L=" + KSLocality + ", S=" + KSState _
+ ", C=" + KSCountry + $DQ )
IF NOT EXIST(tmpKS) THEN
?"ERROR!"+$CR+$CR+"Detail:"+$CR+er,%MB_ICONERROR,EXE.NAME$+$SPC+$VER
EXIT FUNCTION
END IF
DISPLAY SAVEFILE %HWND_DESKTOP, , , "Save keystore as", "", _
CHR$("Java KeyStore",0,"*.JKS",0,"All files",0,"*.*",0), _
"keystore.jks", "jks", %OFN_CREATEPROMPT TO ks
IF ks = "" THEN KILL tmpKS : EXIT FUNCTION ' cancelled by user
IF EXIST(ks) THEN
IF ?(ks+$CR+"A file with this name already exists. Replace ?", _
%MB_ICONQUESTION OR %MB_YESNO, EXE.NAME$+$SPC+$VER) _
<> %IDYES THEN KILL tmpKS : EXIT FUNCTION
END IF
KILL ks
NAME tmpKS AS ks
IF NOT EXIST("JKS2PEM+PK8.exe") THEN
?"Correctly created Java KeyStore:"+$CR+ks,%MB_ICONINFORMATION,EXE.NAME$+$SPC+$VER
EXIT FUNCTION
END IF
IF ?("Correctly created Java KeyStore:"+$CR+ks+$CR+$CR _
+"Convert to PEM + PKCS8 ?",%MB_ICONQUESTION OR %MB_YESNO, _
EXE.NAME$+$SPC+$VER) = %IDNO THEN EXIT FUNCTION
SHELL("JKS2PEM+PK8.exe " + KSPassword + " " + PDQ(ks))
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** CallBacks **
'------------------------------------------------------------------------------
CALLBACK FUNCTION ProcNewKS()
LOCAL e AS STRING
IF CB.MSG = %WM_COMMAND AND CB.CTL = %IDOK AND _ ' OK BUTTON
(CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1) THEN
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX1 TO e
e = TRIM$(e) : IF e <> "" THEN KSCommonName = e
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX2 TO e
e = TRIM$(e) : IF e <> "" THEN KSOrgName = e
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX3 TO e
e = TRIM$(e) : IF e <> "" THEN KSOrgUnit = e
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX4 TO e
e = TRIM$(e) : IF e <> "" THEN KSLocality = e
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX5 TO e
e = TRIM$(e) : IF e <> "" THEN KSState = e
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX6 TO e
e = TRIM$(e) : IF e <> "" THEN KSCountry = e
DIALOG END CB.HNDL, 1 ' Details validated by user
ELSEIF CB.MSG = %WM_COMMAND AND CB.CTL = %IDCANCEL AND _ ' CANCEL BUTTON
(CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1) THEN
DIALOG END CB.HNDL, 0 ' Cancelled by user
END IF
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
CALLBACK FUNCTION ProcKSAliasPW()
LOCAL p1, p2 AS STRING
IF CB.MSG = %WM_COMMAND AND CB.CTL = %IDOK AND _ ' OK BUTTON
(CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1) THEN
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX2 TO p1
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX3 TO p2
IF p1 = "" OR p2 = "" THEN
CONTROL SET FOCUS CB.HNDL, %IDC_TEXTBOX2
MessageBox CB.HNDL, "You need to specify non-empty Alias and Password", _
"Keystore", %MB_ICONWARNING OR %MB_TASKMODAL
EXIT FUNCTION
END IF
IF p1 <> p2 THEN
MessageBox CB.HNDL, "Passwords don't match", _
"Keystore", %MB_ICONERROR OR %MB_TASKMODAL
EXIT FUNCTION
END IF
KSPassword = p2
CONTROL GET TEXT CB.HNDL, %IDC_TEXTBOX1 TO p1
KSAlias = p1
DIALOG END CB.HNDL, 1 ' Alias and Password validated by user
ELSEIF CB.MSG = %WM_COMMAND AND CB.CTL = %IDCANCEL AND _ ' CANCEL BUTTON
(CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1) THEN
DIALOG END CB.HNDL, 0 ' Cancelled by user
END IF
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
' ** Dialogs **
'------------------------------------------------------------------------------
FUNCTION ShowNewKS(BYVAL hParent AS DWORD) AS LONG
LOCAL lRslt AS LONG
LOCAL hDlg AS DWORD
DIALOG NEW PIXELS, hParent, "Java KeyStore "+$VER, , , 264, 176, %WS_POPUP OR %WS_BORDER _
OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME _
OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT OR %WS_CAPTION, %WS_EX_WINDOWEDGE _
OR %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, _
TO hDlg
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your full name :", 8, 11, 120, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX1, "Susan Jones", 128, 7, 127, 18
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your organization name :", 8, 32, 120, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX2, "ABCSystems Inc.", 128, 28, 127, 18
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your organization unit :", 8, 53, 118, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX3, "Purchasing", 128, 49, 125, 18
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your city / locality :", 8, 74, 118, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX4, "Palo Alto", 128, 70, 125, 18
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your state / province :", 8, 96, 118, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX5, "California", 128, 92, 125, 18
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Your 2-letter country code :", 8, 117, 158, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX6, "CH", 198, 113, 55, 18
CONTROL ADD BUTTON, hDlg, %IDCANCEL, "Cancel", 72, 144, 72, 24
CONTROL ADD BUTTON, hDlg, %IDOK, "OK", 176, 144, 72, 24
DIALOG SET ICON hDlg, "#101"
DIALOG SHOW MODAL hDlg, CALL ProcNewKS TO lRslt
FUNCTION = lRslt
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION ShowKSAliasPW(BYVAL hParent AS DWORD) AS LONG
LOCAL lRslt AS LONG
LOCAL hDlg AS DWORD
LOCAL hFont AS DWORD
DIALOG NEW PIXELS, hParent, "Java KeyStore "+$VER, , , 237, 130, %WS_POPUP OR %WS_BORDER _
OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_CLIPSIBLINGS OR %WS_VISIBLE OR %DS_MODALFRAME _
OR %DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT OR %WS_CAPTION, %WS_EX_WINDOWEDGE _
OR %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, _
TO hDlg
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, _
"Please enter the Alias and Password for this keystore :", 8, 4, 229, 32
CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "Alias :", 8, 39, 60, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX1, "Suzy", 72, 37, 160, 20
CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "Password :", 8, 61, 60, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX2, "", 72, 59, 160, 20, %WS_CHILD _
OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_LEFT OR %ES_PASSWORD OR _
%ES_AUTOHSCROLL, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR _
%WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR
CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "Confirm :", 8, 83, 60, 16
CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX3, "", 72, 81, 160, 20, %WS_CHILD _
OR %WS_VISIBLE OR %WS_TABSTOP OR %ES_LEFT OR %ES_PASSWORD OR _
%ES_AUTOHSCROLL, %WS_EX_CLIENTEDGE OR %WS_EX_LEFT OR _
%WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR
CONTROL ADD BUTTON, hDlg, %IDOK, "OK", 8, 105, 168, 20
CONTROL ADD BUTTON, hDlg, %IDCANCEL, "Cancel", 182, 105, 50, 20
DIALOG SET ICON hDlg, "#101"
DIALOG SHOW MODAL hDlg, CALL ProcKSAliasPW TO lRslt
FUNCTION = lRslt
FONT END hFont
END FUNCTION
'------------------------------------------------------------------------------
'