package org.eparapher.rcp.tools; import java.io.File; import java.io.IOException; import java.util.StringTokenizer; import org.apache.log4j.Logger; import org.eclipse.jface.preference.IPreferenceStore; import org.eparapher.core.crypto.EPKeystoreManager; import org.eparapher.core.interfaces.EParapherSettings; import org.eparapher.core.tools.JVMSettings; import org.eparapher.rcp.Activator; import org.eparapher.rcp.preferences.PreferenceConstants; public class RCPSettings implements EParapherSettings { private static Logger log = Logger.getLogger(RCPSettings.class); public static String getRCPString(String s) { return Activator.getDefault().getPreferenceStore().getString(s); } public static boolean getRCPboolean(String s) { return Activator.getDefault().getPreferenceStore().getBoolean(s); } public static int getRCPInt(String s) { return Activator.getDefault().getPreferenceStore().getInt(s); } private static float getRCPFloat(String s) { return Activator.getDefault().getPreferenceStore().getFloat(s); } public static String[] getSecureDocumentPath() { String allDirectories = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_LOCALDOCPATH); StringTokenizer pathtokens = new StringTokenizer(allDirectories,File.pathSeparator,false); String[] returnedPath = new String[pathtokens.countTokens()]; int counter=0; while (pathtokens.hasMoreElements()) { String path = (String) pathtokens.nextElement(); if (path!=null && !path.equals("")) returnedPath[counter++]=path; } return returnedPath; } public String getEPLogLevel() { return getRCPString(PreferenceConstants.P_LOGLEVEL); } public String getOpenOfficeBinaryPath() { return getRCPString(PreferenceConstants.P_LOCALOOBINPATH); } public String getOpenOfficeLibraryPath() { return getRCPString(PreferenceConstants.P_LOCALOOLIBPATH); } public String getOpenOfficeDaemonParams() { return getRCPString(PreferenceConstants.P_LOCALOOOPTIONS); } //public static String getOpenOfficeEditorDaemonParams() { // return getRCPString(PreferenceConstants.P_LOCALOOEDITOROPTIONS); //} public boolean isOpenOfficeAutostart() { return getRCPboolean(PreferenceConstants.P_LOCALOO_AUTOSTART); } public String getOpenOfficeServerName() { return getRCPString(PreferenceConstants.P_OO_SERVERNAME); } public int getOpenOfficeServerPort() { return getRCPInt(PreferenceConstants.P_OO_SERVERPORT); } public boolean useLocalOpenOffice() { return getRCPboolean(PreferenceConstants.P_OO_USELOCAL); } public String getPersonalSafePath() { return getRCPString(PreferenceConstants.P_LOCALPSAFEPATH); } public String getPersonalSafeAESFile() { return getRCPString(PreferenceConstants.P_LOCALPSAFEAESKEYPATH); } public int getPersonalSafeAESKeyLength() { return getRCPInt(PreferenceConstants.P_LOCALPSAFEAESKEYLENGTH); } public String getPersonalSafeFileExtention() { return getRCPString(PreferenceConstants.P_LOCALPSAFEEXTENTIONS); } public String getFileKeystorePath() { if ( EPKeystoreManager.isBCUsed() ) return getRCPString(PreferenceConstants.P_USERBCFILEPATH); if ( EPKeystoreManager.isUBERUsed() ) return getRCPString(PreferenceConstants.P_USERUBERBCFILEPATH); if ( EPKeystoreManager.isCMSKSUsed() ) return getRCPString(PreferenceConstants.P_USERKDBFILEPATH); if ( EPKeystoreManager.isJCEKSUsed() ) return getRCPString(PreferenceConstants.P_USERJCEKSFILEPATH); if ( EPKeystoreManager.isJKSUsed() ) return getRCPString(PreferenceConstants.P_USERJKSFILEPATH); if ( EPKeystoreManager.isPKCS12Used() ) return getRCPString(PreferenceConstants.P_USERPKCS12FILEPATH); return ""; } public String getFileKeystorePassphrase() { if ( EPKeystoreManager.isBCUsed() ) return getRCPString(PreferenceConstants.P_USERBCPASSPHRASE); if ( EPKeystoreManager.isUBERUsed() ) return getRCPString(PreferenceConstants.P_USERUBERBCPASSPHRASE); if ( EPKeystoreManager.isCMSKSUsed() ) return getRCPString(PreferenceConstants.P_USERKDBPASSPHRASE); if ( EPKeystoreManager.isJCEKSUsed() ) return getRCPString(PreferenceConstants.P_USERJCEKSPASSPHRASE); if ( EPKeystoreManager.isJKSUsed() ) return getRCPString(PreferenceConstants.P_USERJKSPASSPHRASE); if ( EPKeystoreManager.isPKCS12Used() ) return getRCPString(PreferenceConstants.P_USERPKCS12PASSPHRASE); return ""; } public String getKeyStoreType() { return getRCPString(PreferenceConstants.P_USERKEYCERTCONTAINER); } public String getKeyStoreSignatureAlias() { return getRCPString(PreferenceConstants.P_USERKEYCERTSIGNALIAS); } public void setKeyStoreSignatureAlias(String value) { IPreferenceStore prefs = Activator.getDefault().getPreferenceStore(); prefs.setValue(PreferenceConstants.P_USERKEYCERTSIGNALIAS,value); try { ((org.eclipse.ui.preferences.ScopedPreferenceStore)prefs).save(); } catch (IOException e) { log.error("error while saving new signature alias : " + e.getLocalizedMessage(),e); } } public String getKeyStoreAuthenticationAlias() { return getRCPString(PreferenceConstants.P_USERKEYCERTAUTHALIAS); } public void setKeyStoreAuthenticationAlias(String value) { IPreferenceStore prefs = Activator.getDefault().getPreferenceStore(); prefs.setValue(PreferenceConstants.P_USERKEYCERTAUTHALIAS,value); try { ((org.eclipse.ui.preferences.ScopedPreferenceStore)prefs).save(); } catch (IOException e) { log.error("error while saving new authentication alias : " + e.getLocalizedMessage(),e); } } public String getKeyStoreEncryptionAlias() { return getRCPString(PreferenceConstants.P_USERKEYCERTENCRALIAS); } public void setKeyStoreEncryptionAlias(String value) { IPreferenceStore prefs = Activator.getDefault().getPreferenceStore(); prefs.setValue(PreferenceConstants.P_USERKEYCERTENCRALIAS,value); try { ((org.eclipse.ui.preferences.ScopedPreferenceStore)prefs).save(); } catch (IOException e) { log.error("error while saving new encryption alias : " + e.getLocalizedMessage(),e); } } public boolean isSignatureCRL() { return getRCPboolean(PreferenceConstants.P_SIG_ADD_CRL); } public boolean isTimestampedSignature() { return getRCPboolean(PreferenceConstants.P_SIG_ADD_TIMESTAMP); } public String getSignatureTimestampServers() { return getRCPString(PreferenceConstants.P_SIG_TS_SERVERS); } public String getPDFSignatureFormat() { return getRCPString(PreferenceConstants.P_PDFSIGNATUREFORMAT); } public String getPDFSignatureCertification() { return getRCPString(PreferenceConstants.P_PDFSIGNATURECERTIF); } public String getPDFSignatureReason() { return getRCPString(PreferenceConstants.P_PDFSIGNATUREREASON); } public String getPDFSignatureLocation() { return getRCPString(PreferenceConstants.P_PDFSIGNATURELOCATION); } public String getPDFSignatureNewFileNameAppend() { return getRCPString(PreferenceConstants.P_PDFSIGNATUREFILENAMEAPP); } public boolean isPDFSignatureReplaceFile() { return getRCPboolean(PreferenceConstants.P_PDFSIGNATUREREPLACEFILE); } public boolean isPDFMultipleSignature() { return getRCPboolean(PreferenceConstants.P_PDFSIGNATUREMULTIPLE); } public boolean isPDFVisibleSignature() { return getRCPboolean(PreferenceConstants.P_PDFSIGNATUREVISIBLE); } public int getPDFVisibleSignaturePage() { return getRCPInt(PreferenceConstants.P_PDFSIGNATUREVISIBLEPAGE); } public String getPDFSignatureImage() { return getRCPString(PreferenceConstants.P_PDFSIGNATUREIMAGE); } public int getPDFVisibleSignatureImageScale() { return getRCPInt(PreferenceConstants.P_PDFSIGNATUREIMAGESIZE); } public int getPDFVisibleImgLowerLeftX() { return getRCPInt(PreferenceConstants.P_PDFSIGIMGLOWERLEFTX); } public int getPDFVisibleImgLowerLeftY() { return getRCPInt(PreferenceConstants.P_PDFSIGIMGLOWERLEFTY); } public int getPDFVisibleImgUpperRightX() { return getRCPInt(PreferenceConstants.P_PDFSIGIMGUPPERRIGHTX); } public int getPDFVisibleImgUpperRightY() { return getRCPInt(PreferenceConstants.P_PDFSIGIMGUPPERRIGHTY); } private String getPKCS11ConfigFileName() { return getRCPString(PreferenceConstants.P_PKCS11_SUN_CONFIG_FILE); } public String getPKCS11ConfigFilePath() { return JVMSettings.getEParapherAppDirectory() + File.separator + getPKCS11ConfigFileName(); } public long getPKCS11TrackingSleepTime() { return Activator.getDefault().getPreferenceStore().getLong(PreferenceConstants.P_PKCS11_TRACKING_THREAD_SLEEP); } public int getPKCS11SlotId() { return getRCPInt(PreferenceConstants.P_PKCS11_SLOT_ID); } public String getPKCS11LibraryPath() { return getRCPString(PreferenceConstants.P_PKCS11_LIBRARY_PATH); } public String getCMSHashAlgorithmOID() { return getRCPString(PreferenceConstants.P_CMSHASHALGORITHM); } public boolean isCMSDetachedSignature() { return getRCPboolean(PreferenceConstants.P_CMSDETACHEDSIGNATURE); } public boolean isSecPolCheck() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_CHECK); } public boolean isSecPolCheckCharLength() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_FORCE_LENGTH); } public int getSecPolMinCharLength() { return getRCPInt(PreferenceConstants.P_SECRET_POL_LENGTH_SIZE); } public boolean isSecPolCheckUpperChar() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_FORCE_UPPER); } public int getSecPolMinUpperChar() { return getRCPInt(PreferenceConstants.P_SECRET_POL_UPPER_MIN); } public boolean isSecPolCheckLowerChar() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_FORCE_LOWER); } public int getSecPolMinLowerChar() { return getRCPInt(PreferenceConstants.P_SECRET_POL_LOWER_MIN); } public boolean isSecPolCheckNumberChar() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_FORCE_NUMB); } public int getSecPolMinNumberChar() { return getRCPInt(PreferenceConstants.P_SECRET_POL_NUMB_MIN); } public boolean isSecPolCheckSpecialChar() { return getRCPboolean(PreferenceConstants.P_SECRET_POL_FORCE_SPEC); } public int getSecPolMinSpecialChar() { return getRCPInt(PreferenceConstants.P_SECRET_POL_SPEC_MIN); } public String getXMLDigestAlgorithm() { return getRCPString(PreferenceConstants.P_XML_DIGEST); } public String getXMLSignatureAlgorithm() { return getRCPString(PreferenceConstants.P_XML_SIGALG); } public String getXMLSignatureFormat() { return getRCPString(PreferenceConstants.P_XML_SIGFORMAT); } public boolean isXMLSignatureReplaceFile() { return getRCPboolean(PreferenceConstants.P_XML_OVERWRITE); } public String getXMLTransform() { return getRCPString(PreferenceConstants.P_XML_TRANSFORM); } public String getXMLCanonical() { return getRCPString(PreferenceConstants.P_XML_CANONICAL); } public String getXMLObjectID() { return getRCPString(PreferenceConstants.P_XML_OBJECTIDs); } public boolean isXMLDTDValidation() { return getRCPboolean(PreferenceConstants.P_XML_DTDVALIDATION); } public String getCMSEncryptionAlgorithm() { return getRCPString(PreferenceConstants.P_CMS_ENCRYPTION_ALG); } public int getCMSEncryptionKeysize() { return getRCPInt(PreferenceConstants.P_CMS_ENCRYPTION_KEYSIZE); } public String getEncryptionAlgorithm() { return getRCPString(PreferenceConstants.P_ENCRYPTION_ALG); } public int getEncryptionKeysize() { return getRCPInt(PreferenceConstants.P_ENCRYPTION_KEYSIZE); } public String getEncryptionRecoveryCertificates() { return getRCPString(PreferenceConstants.P_ENCRYPTION_RECOVERY_X509); } }