#COMPILE EXE "JKS-CERT-INFO.exe" #DIM ALL $VER = "(1.0)" '------------------------------------------------------------------------------ ' ** Constants ** '------------------------------------------------------------------------------ %IDC_LABEL1 = 1000 %IDC_LABEL2 = 1001 %IDC_TEXTBOX1 = 1002 %IDC_TEXTBOX2 = 1003 %IDC_TEXTBOX3 = 1004 %IDC_TEXTBOX4 = 1005 %IDC_TEXTBOX5 = 1006 %IDC_TEXTBOX6 = 1007 %IDC_TEXTBOX7 = 1008 '------------------------------------------------------------------------------ GLOBAL file, KSCommonName, KSOrgName, KSOrgUnit AS STRING GLOBAL KSLocality, KSState, KSCountry, SHA1 AS STRING '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Includes & Resources ** '------------------------------------------------------------------------------ #INCLUDE ONCE "WIN32API.INC" #INCLUDE ONCE "AndroCertif.inc" #RESOURCE ICON, 101, "icon4.ico" #RESOURCE MANIFEST, 1, "XPTheme.xml" '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Main Application Entry Point ** '------------------------------------------------------------------------------ FUNCTION PBMAIN () AS LONG LOCAL jks, tmprsa, r AS STRING IF MissingTools() THEN EXIT FUNCTION r = TRIM$(COMMAND$, $DQ) IF EXIST(r) THEN jks = r ELSE DISPLAY OPENFILE %HWND_DESKTOP,,, "Open JKS", "", _ CHR$("Java KeyStore",0,"*.JKS",0), "", "", _ %OFN_FILEMUSTEXIST TO jks END IF IF jks = "" THEN EXIT FUNCTION ' cancelled by user file = jks : IF INSTR(file, "\") > 0 THEN file = MID$(file, INSTR(-1, file, "\") + 1) r = BATCH("echo & echo.|" + toolsPath + "\keytool -list -v -keystore " + PDQ(jks)) KSCommonName = ParsePrintCert(r, "CN") KSOrgName = ParsePrintCert(r, "O") KSOrgUnit = ParsePrintCert(r, "OU") KSLocality = ParsePrintCert(r, "L") KSState = ParsePrintCert(r, "ST") KSCountry = ParsePrintCert(r, "C") SHA1 = ParsePrintCert(r, "SHA1 :") IF SHA1 = "" THEN SHA1 = ParsePrintCert(r, "SHA1:") END IF ShowKSInfo %HWND_DESKTOP END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** CallBacks ** '------------------------------------------------------------------------------ CALLBACK FUNCTION ProcKSInfo() IF CB.MSG = %WM_COMMAND AND CB.CTL = %IDOK THEN ' OK BUTTON DIALOG END CB.HNDL END IF END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ ' ** Dialogs ** '------------------------------------------------------------------------------ FUNCTION ShowKSInfo(BYVAL hParent AS DWORD) AS LONG LOCAL lRslt AS LONG LOCAL hDlg AS DWORD DIALOG NEW PIXELS, hParent, EXE.NAME$+$SPC+$VER, , , 280, 220, %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, $DQ+file+$DQ+" was signed by :", 8, 6, 200, 16 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Full name :", 8, 31, 120, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX1, KSCommonName, 128, 27, 141, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Organization name :", 8, 52, 120, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX2, KSOrgName, 128, 48, 141, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "Organization unit :", 8, 73, 118, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX3, KSOrgUnit, 128, 69, 141, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "City / locality :", 8, 94, 118, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX4, KSLocality, 128, 90, 141, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "State / province :", 8, 116, 118, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX5, KSState, 128, 112, 141, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "2-letter country code :", 8, 137, 158, 16 CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX6, KSCountry, 128, 133, 42, 18 CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "SHA1 :", 189, 137, 80, 16, %SS_RIGHT CONTROL ADD TEXTBOX, hDlg, %IDC_TEXTBOX7, SHA1, 8, 159, 261, 18 CONTROL ADD BUTTON, hDlg, %IDOK, "OK", 176, 186, 72, 24 DIALOG SET ICON hDlg, "#101" DIALOG SHOW MODAL hDlg, CALL ProcKSInfo TO lRslt FUNCTION = lRslt END FUNCTION '------------------------------------------------------------------------------ '------------------------------------------------------------------------------ FUNCTION ParsePrintCert(response AS STRING, identifier AS STRING) AS STRING LOCAL i, j AS LONG i = INSTR(response, $SPC + identifier + IIF$(ISFALSE INSTR(identifier, ":"),"=","")) IF ISFALSE i THEN EXIT FUNCTION j = INSTR(i, response, ANY ","+$CRLF) IF ISFALSE j THEN EXIT FUNCTION i += LEN($SPC + identifier) + 1 FUNCTION = MID$(response, i, j-i) END FUNCTION '------------------------------------------------------------------------------