From a03474fbe7044d8c323ddd8f9c97312103280022 Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Wed, 29 Apr 2020 17:48:35 +0200 Subject: [PATCH 1/7] Issue 22 --- .../actions/RunCogniCryptAction.java | 19 +++++++++++++++++++ .../analysis/AnalysisListenerService.java | 12 ++++++++++++ .../CogniCryptAndroidStudioAnalysisTask.java | 2 ++ .../analysis/IntelliJAnalysis.java | 3 +++ .../analysis/JavaProjectAnalysisTask.java | 1 + .../results/ui/CogniCryptResultWindow.java | 16 ++++++++-------- .../icognicrypt/ui/NotificationProvider.java | 16 +++++++++++++++- .../MultipleOutputFilesDialog.form | 4 +++- 8 files changed, 63 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java index a11d81d..308412f 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java @@ -27,14 +27,19 @@ public class RunCogniCryptAction extends CogniCryptAction implements DumbAware private static final Logger logger = Logger.getInstance(RunCogniCryptAction.class); private final IPersistableCogniCryptSettings _settings; private final IdeType _ideType; + public static boolean EnabledFlag= true; public RunCogniCryptAction() { super("Run CogniCrypt Analysis...", "Run CogniCrypt Analysis", IconLoader.getIcon("/icons/cognicrypt.png")); _settings = ServiceManager.getService(IPersistableCogniCryptSettings.class); _ideType = ServiceManager.getService(IIdePlatformProvider.class).GetRunningPlatform(); + } + + + @Override public void actionPerformed(@NotNull AnActionEvent e) { @@ -49,6 +54,12 @@ public void actionPerformed(@NotNull AnActionEvent e) Iterable files = GetFilesToAnalyze(project); // TODO: Re-Enable + if(e.getPresentation().isEnabled()){ + e.getPresentation().setEnabled(false); + EnabledFlag=false; + update(e); + } + /* if (files == null || !Linq.any(files)) { @@ -87,6 +98,14 @@ private Iterable GetFilesToAnalyze(Project project) } return Collections.EMPTY_LIST; } + public static void SetFlag(boolean b){ + EnabledFlag=b; + } + @Override + public void update(AnActionEvent e) { + e.getPresentation().setEnabled(EnabledFlag); + } + } diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java index bbd55cc..682f80d 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java @@ -9,6 +9,9 @@ import com.google.common.collect.Table; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.openapi.Disposable; +import com.intellij.openapi.actionSystem.ActionManager; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.Project; import crypto.analysis.AnalysisSeedWithSpecification; import crypto.analysis.CrySLAnalysisListener; @@ -21,6 +24,9 @@ import crypto.interfaces.ISLConstraint; import crypto.rules.CrySLPredicate; import de.fraunhofer.iem.icognicrypt.Constants; +import de.fraunhofer.iem.icognicrypt.actions.CogniCryptAction; +import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction; +import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction.*; import de.fraunhofer.iem.icognicrypt.core.Language.JvmClassNameUtils; import de.fraunhofer.iem.icognicrypt.results.CogniCryptError; import de.fraunhofer.iem.icognicrypt.results.IResultProvider; @@ -30,6 +36,8 @@ import sync.pds.solver.nodes.Node; import typestate.TransitionFunction; +import javax.swing.*; +import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -43,6 +51,7 @@ class AnalysisListenerService extends CrySLAnalysisListener implements Disposabl private static final Logger logger = LoggerFactory.getLogger(AnalysisListenerService.class); private final Project _project; private IResultProvider _resultProvider; + public static boolean EnabledFlag; private final List _sourceCodeFiles; @@ -54,6 +63,7 @@ private AnalysisListenerService(Project project, IResultProvider resultProvider) @Override public void beforeAnalysis() { + EnabledFlag= false; _resultProvider.RemoveAllResults(); _sourceCodeFiles.clear(); @@ -66,6 +76,8 @@ public void afterAnalysis() { //After analysis completes, restart code analyzer so that error markers can be updated //for (Project project : ProjectManager.getInstance().getOpenProjects()) DaemonCodeAnalyzer.getInstance(_project).restart(); + RunCogniCryptAction.SetFlag(true); + } @Override diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java index 57dd954..4095515 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java @@ -15,6 +15,7 @@ import crypto.analysis.errors.IncompleteOperationError; import de.fraunhofer.iem.crypto.CogniCryptAndroidAnalysis; import de.fraunhofer.iem.icognicrypt.Constants; +import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction; import de.fraunhofer.iem.icognicrypt.core.Language.JvmClassNameUtils; import de.fraunhofer.iem.icognicrypt.results.CogniCryptError; import de.fraunhofer.iem.icognicrypt.results.IResultProvider; @@ -111,6 +112,7 @@ public void onFinished() _analysisQueue = null; _stopWatch = null; _resultProvider = null; + RunCogniCryptAction.SetFlag(true); } @Override diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java index 8ccafad..7906743 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java @@ -88,6 +88,7 @@ public static void RunIntelliJAnalysis(Project project, Iterable filesToAn ProgressManager.getInstance().run(analysis); */ + } ProgressManager.getInstance().run(new JavaProjectAnalysisTask(project, modulePaths @@ -115,4 +116,6 @@ public static Iterable GetFilesForIntelliJ(IProjectOutputFinder outputFind { return null; } + + } diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java index c5a6a6c..0f4763b 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java @@ -16,6 +16,7 @@ public JavaProjectAnalysisTask(Project project, String applicationPath , String _wholeClassPath = classPath; } + @Override public void run(@NotNull ProgressIndicator indicator) { CryptoAnalysisWrapper.RunAnalysis(_applicationClassPath, _wholeClassPath, myProject); diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java b/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java index b0a377d..0901027 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java @@ -39,14 +39,14 @@ public CogniCryptResultWindow(ToolWindow toolWindow, Project project) IResultProvider service = ServiceManager.getService(project, IResultProvider.class); service.Subscribe(_tableModel); - - for (Set errorSet : service.GetErrors().values()) - { - for (CogniCryptError error : errorSet) - { - _tableModel.AddError(error); - } - } +// ToolWindow clearing when starting IDE +// for (Set errorSet : service.GetErrors().values()) +// { +// for (CogniCryptError error : errorSet) +// { +// _tableModel.AddError(error); +// } +// } } @Override diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java index 32e9604..ca12a47 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java @@ -1,11 +1,18 @@ package de.fraunhofer.iem.icognicrypt.ui; +import com.intellij.ide.DataManager; import com.intellij.notification.Notification; import com.intellij.notification.NotificationType; import com.intellij.notification.Notifications; +import com.intellij.openapi.actionSystem.DataContext; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.project.Project; +import static de.fraunhofer.iem.icognicrypt.IdeSupport.projects.ProjectHelper.GetActiveProject; + public class NotificationProvider { + public static void Warn(String message) { ShowNotification(message, NotificationType.WARNING); @@ -24,6 +31,13 @@ public static void ShowError(String message) private static void ShowNotification(String message, NotificationType type) { Notification notification = new Notification("CogniCrypt", "CogniCrypt Message", message, type); - Notifications.Bus.notify(notification); + Project project= GetActiveProject(); + DataContext d = DataManager.getInstance().getDataContext(); + Project project1= d.getData(PlatformDataKeys.PROJECT); + if(project==project1) { + Notifications.Bus.notify(notification, project); + } + } + } diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form index 21877a7..1988181 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form @@ -91,7 +91,9 @@ - + + + From 78fd0d7392dcaf11cf6cda6df645bafe8096582d Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Wed, 29 Apr 2020 18:32:17 +0200 Subject: [PATCH 2/7] Issue 22 --- .idea/compiler.xml | 2 -- .../iem/icognicrypt/actions/RunCogniCryptAction.java | 4 ---- .../icognicrypt/analysis/AnalysisListenerService.java | 9 --------- .../iem/icognicrypt/analysis/IntelliJAnalysis.java | 3 --- .../icognicrypt/analysis/JavaProjectAnalysisTask.java | 1 - 5 files changed, 19 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 95b24b9..0f24ae0 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -4,8 +4,6 @@ - - \ No newline at end of file diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java index 308412f..ea12906 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java @@ -34,12 +34,8 @@ public RunCogniCryptAction() super("Run CogniCrypt Analysis...", "Run CogniCrypt Analysis", IconLoader.getIcon("/icons/cognicrypt.png")); _settings = ServiceManager.getService(IPersistableCogniCryptSettings.class); _ideType = ServiceManager.getService(IIdePlatformProvider.class).GetRunningPlatform(); - } - - - @Override public void actionPerformed(@NotNull AnActionEvent e) { diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java index 682f80d..dfc8598 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java @@ -9,9 +9,6 @@ import com.google.common.collect.Table; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; import com.intellij.openapi.Disposable; -import com.intellij.openapi.actionSystem.ActionManager; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.Project; import crypto.analysis.AnalysisSeedWithSpecification; import crypto.analysis.CrySLAnalysisListener; @@ -24,9 +21,7 @@ import crypto.interfaces.ISLConstraint; import crypto.rules.CrySLPredicate; import de.fraunhofer.iem.icognicrypt.Constants; -import de.fraunhofer.iem.icognicrypt.actions.CogniCryptAction; import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction; -import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction.*; import de.fraunhofer.iem.icognicrypt.core.Language.JvmClassNameUtils; import de.fraunhofer.iem.icognicrypt.results.CogniCryptError; import de.fraunhofer.iem.icognicrypt.results.IResultProvider; @@ -35,9 +30,6 @@ import soot.SootClass; import sync.pds.solver.nodes.Node; import typestate.TransitionFunction; - -import javax.swing.*; -import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -77,7 +69,6 @@ public void afterAnalysis() { //for (Project project : ProjectManager.getInstance().getOpenProjects()) DaemonCodeAnalyzer.getInstance(_project).restart(); RunCogniCryptAction.SetFlag(true); - } @Override diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java index 7906743..1017509 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java @@ -86,7 +86,6 @@ public static void RunIntelliJAnalysis(Project project, Iterable filesToAn Task analysis = new JavaProjectAnalysisTask(modulePath, Joiner.on(File.pathSeparator).join(classpath), settings.getRulesDirectory()); ProgressManager.getInstance().run(analysis); - */ } @@ -116,6 +115,4 @@ public static Iterable GetFilesForIntelliJ(IProjectOutputFinder outputFind { return null; } - - } diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java index 0f4763b..c5a6a6c 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/JavaProjectAnalysisTask.java @@ -16,7 +16,6 @@ public JavaProjectAnalysisTask(Project project, String applicationPath , String _wholeClassPath = classPath; } - @Override public void run(@NotNull ProgressIndicator indicator) { CryptoAnalysisWrapper.RunAnalysis(_applicationClassPath, _wholeClassPath, myProject); From b682661eaf95e16ef1ab112f2b5e83d18d1595d3 Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Mon, 11 May 2020 09:58:38 +0200 Subject: [PATCH 3/7] Issue 29-trying out manual path --- .../settings/CogniCryptSettings.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java index 023d9a2..fa6d250 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java @@ -15,6 +15,8 @@ abstract class CogniCryptSettings implements ICogniCryptSettings protected boolean IncludeSigned = false; protected boolean SignedOnly = false; protected SupportedLanguage OptimizedLanguage = SupportedLanguage.Java; + public boolean IDEVersionNotUpdated=true; + public String updatedpath; protected int FinderBuildType = OutputFinderOptions.Flags.Debug.getStatusFlagValue(); @@ -39,8 +41,21 @@ public String getRulesDirectory() public void setRulesDirectory(String rulesDirectory) { - RulesDirectory = rulesDirectory; + IDEVersionNotUpdated=checkversion(rulesDirectory); + if (IDEVersionNotUpdated) { + RulesDirectory = rulesDirectory; + } + else{ + RulesDirectory=updatedpath; + } } + public boolean checkversion(String rulesDirectory){ + //just experimenting + //Have to check android version here + updatedpath ="C:\\Users\\proju\\.AndroidStudioX.Y\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; + return false; + } + @Override public boolean getFindAutomatically() From de58a980792c11ba995102c02c229553926b5aaf Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Wed, 13 May 2020 15:10:04 +0200 Subject: [PATCH 4/7] Issue 29-user custom path fixing --- .../settings/CogniCryptSettings.java | 21 +++++++++---------- .../settings/CogniCryptSettingsView.java | 4 ++++ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java index fa6d250..f7242ca 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java @@ -1,5 +1,6 @@ package de.fraunhofer.iem.icognicrypt.settings; +import com.intellij.openapi.application.ApplicationInfo; import com.intellij.openapi.components.ServiceManager; import de.fraunhofer.iem.icognicrypt.Constants; import de.fraunhofer.iem.icognicrypt.IdeSupport.projects.Outputs.OutputFinderOptions; @@ -10,12 +11,13 @@ abstract class CogniCryptSettings implements ICogniCryptSettings { - protected String RulesDirectory = Constants.DummyCrySLPath; + //protected String RulesDirectory = Constants.DummyCrySLPath; + protected String RulesDirectory; protected boolean FindAutomatically = true; protected boolean IncludeSigned = false; protected boolean SignedOnly = false; protected SupportedLanguage OptimizedLanguage = SupportedLanguage.Java; - public boolean IDEVersionNotUpdated=true; + public static boolean IDEVersionNotUpdated=true; public String updatedpath; protected int FinderBuildType = OutputFinderOptions.Flags.Debug.getStatusFlagValue(); @@ -41,22 +43,19 @@ public String getRulesDirectory() public void setRulesDirectory(String rulesDirectory) { - IDEVersionNotUpdated=checkversion(rulesDirectory); + String current_version=ApplicationInfo.getInstance().getFullVersion(); + updatedpath ="C:\\Users\\proju\\.AndroidStudio"+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; if (IDEVersionNotUpdated) { - RulesDirectory = rulesDirectory; + RulesDirectory=updatedpath; } else{ - RulesDirectory=updatedpath; + RulesDirectory = rulesDirectory; } } - public boolean checkversion(String rulesDirectory){ - //just experimenting - //Have to check android version here - updatedpath ="C:\\Users\\proju\\.AndroidStudioX.Y\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; - return false; + public static void SetIDEVersionFlag(boolean b){ + IDEVersionNotUpdated=b; } - @Override public boolean getFindAutomatically() { diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java index e5ae976..09a30d8 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java @@ -20,6 +20,8 @@ import java.util.Set; import java.util.function.Consumer; +import static de.fraunhofer.iem.icognicrypt.settings.CogniCryptSettings.SetIDEVersionFlag; + class CogniCryptSettingsView implements Configurable { private JPanel _rootPanel; @@ -160,8 +162,10 @@ protected void OnBrowseCrySlDirectoryPressed(ActionEvent e) }); if (_cryslRulesDirectory == null) return; + SetIDEVersionFlag(false); _cryslRulesDirectory.setText(selectedDirectory.getPath()); _currentState.setRulesDirectory(selectedDirectory.getPath()); + } private void SetupUi() From 52919e769675a6db6c04b820a70737ffffdcedc3 Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Wed, 13 May 2020 20:23:33 +0200 Subject: [PATCH 5/7] Issue 29-user home fixed --- .../fraunhofer/iem/icognicrypt/Constants.java | 10 +++++++++- .../settings/CogniCryptSettings.java | 19 ++++--------------- .../settings/CogniCryptSettingsView.java | 3 +-- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java index 65d4525..529e44f 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java @@ -1,12 +1,20 @@ package de.fraunhofer.iem.icognicrypt; +import com.intellij.openapi.application.ApplicationInfo; +import com.intellij.openapi.application.ApplicationNamesInfo; import crypto.cryslhandler.CrySLModelReader; +import de.fraunhofer.iem.icognicrypt.IdeSupport.platform.IdeType; + public class Constants { public final static boolean AUTOMATIC_SCAN_ON_COMPILE = false; - public static final String DummyCrySLPath = "./CrySLRules/JCA"; + //public static final String DummyCrySLPath = "./CrySLRules/JCA"; + private static ApplicationNamesInfo nameInfo = ApplicationNamesInfo.getInstance(); + static String productName = nameInfo.getFullProductName(); + static String current_version= ApplicationInfo.getInstance().getMajorVersion()+"."+ ApplicationInfo.getInstance().getMinorVersionMainPart(); + public static final String DummyCrySLPath=System.getProperty("user.home")+"\\."+productName+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; // TODO: This constant is not final in CryptoAnalysis public static final String CRYSL_BIN_EXTENSION = CrySLModelReader.cryslFileEnding; diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java index f7242ca..c16bc57 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java @@ -9,16 +9,15 @@ import java.util.EnumSet; + abstract class CogniCryptSettings implements ICogniCryptSettings { - //protected String RulesDirectory = Constants.DummyCrySLPath; - protected String RulesDirectory; + protected String RulesDirectory = Constants.DummyCrySLPath; protected boolean FindAutomatically = true; protected boolean IncludeSigned = false; protected boolean SignedOnly = false; protected SupportedLanguage OptimizedLanguage = SupportedLanguage.Java; - public static boolean IDEVersionNotUpdated=true; - public String updatedpath; + protected int FinderBuildType = OutputFinderOptions.Flags.Debug.getStatusFlagValue(); @@ -43,17 +42,7 @@ public String getRulesDirectory() public void setRulesDirectory(String rulesDirectory) { - String current_version=ApplicationInfo.getInstance().getFullVersion(); - updatedpath ="C:\\Users\\proju\\.AndroidStudio"+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; - if (IDEVersionNotUpdated) { - RulesDirectory=updatedpath; - } - else{ - RulesDirectory = rulesDirectory; - } - } - public static void SetIDEVersionFlag(boolean b){ - IDEVersionNotUpdated=b; + RulesDirectory = rulesDirectory; } @Override diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java index 09a30d8..a7d7236 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettingsView.java @@ -20,7 +20,6 @@ import java.util.Set; import java.util.function.Consumer; -import static de.fraunhofer.iem.icognicrypt.settings.CogniCryptSettings.SetIDEVersionFlag; class CogniCryptSettingsView implements Configurable { @@ -162,7 +161,7 @@ protected void OnBrowseCrySlDirectoryPressed(ActionEvent e) }); if (_cryslRulesDirectory == null) return; - SetIDEVersionFlag(false); + //SetIDEVersionFlag(false); _cryslRulesDirectory.setText(selectedDirectory.getPath()); _currentState.setRulesDirectory(selectedDirectory.getPath()); From 5622404953b7dab7dcad0207a2864101731d9083 Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Wed, 13 May 2020 20:27:37 +0200 Subject: [PATCH 6/7] Issue 29-CrySL location path after update --- src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java | 3 +-- .../iem/icognicrypt/settings/CogniCryptSettings.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java index 529e44f..906e504 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java @@ -3,7 +3,6 @@ import com.intellij.openapi.application.ApplicationInfo; import com.intellij.openapi.application.ApplicationNamesInfo; import crypto.cryslhandler.CrySLModelReader; -import de.fraunhofer.iem.icognicrypt.IdeSupport.platform.IdeType; public class Constants { @@ -11,7 +10,7 @@ public class Constants { public final static boolean AUTOMATIC_SCAN_ON_COMPILE = false; //public static final String DummyCrySLPath = "./CrySLRules/JCA"; - private static ApplicationNamesInfo nameInfo = ApplicationNamesInfo.getInstance(); + private static final ApplicationNamesInfo nameInfo = ApplicationNamesInfo.getInstance(); static String productName = nameInfo.getFullProductName(); static String current_version= ApplicationInfo.getInstance().getMajorVersion()+"."+ ApplicationInfo.getInstance().getMinorVersionMainPart(); public static final String DummyCrySLPath=System.getProperty("user.home")+"\\."+productName+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java index c16bc57..7f2d977 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/settings/CogniCryptSettings.java @@ -1,7 +1,6 @@ package de.fraunhofer.iem.icognicrypt.settings; -import com.intellij.openapi.application.ApplicationInfo; -import com.intellij.openapi.components.ServiceManager; + import de.fraunhofer.iem.icognicrypt.Constants; import de.fraunhofer.iem.icognicrypt.IdeSupport.projects.Outputs.OutputFinderOptions; import de.fraunhofer.iem.icognicrypt.core.Language.SupportedLanguage; From 02093aa602c9acc9bc8564719e1e30ad76750520 Mon Sep 17 00:00:00 2001 From: lrs-ta Date: Fri, 22 May 2020 13:56:35 +0200 Subject: [PATCH 7/7] Issue 29- Dynamic plugin path --- src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java index 906e504..562cc96 100644 --- a/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java +++ b/src/main/java/de/fraunhofer/iem/icognicrypt/Constants.java @@ -2,6 +2,7 @@ import com.intellij.openapi.application.ApplicationInfo; import com.intellij.openapi.application.ApplicationNamesInfo; +import com.intellij.openapi.application.PathManager; import crypto.cryslhandler.CrySLModelReader; @@ -13,7 +14,8 @@ public class Constants { private static final ApplicationNamesInfo nameInfo = ApplicationNamesInfo.getInstance(); static String productName = nameInfo.getFullProductName(); static String current_version= ApplicationInfo.getInstance().getMajorVersion()+"."+ ApplicationInfo.getInstance().getMinorVersionMainPart(); - public static final String DummyCrySLPath=System.getProperty("user.home")+"\\."+productName+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; + //public static final String DummyCrySLPath=System.getProperty("user.home")+"\\."+productName+current_version+"\\config\\plugins\\icognicrypt\\lib\\CrySLRules\\JCA"; + public static final String DummyCrySLPath= PathManager.getPluginsPath()+"\\icognicrypt\\lib\\CrySLRules\\JCA";; // TODO: This constant is not final in CryptoAnalysis public static final String CRYSL_BIN_EXTENSION = CrySLModelReader.cryslFileEnding;