File "JKS-CERT-INFO.bas"
Path: /AndroCertif/JKS-CERT-INFO.bas
File size: 5.47 KB
MIME-type: text/plain
Charset: utf-8
#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
'------------------------------------------------------------------------------