From ef939ab676ce35f80fc7718382fe584a513c7ca7 Mon Sep 17 00:00:00 2001 From: Florian Lugou <florian.lugou@telecom-paristech.fr> Date: Wed, 31 May 2017 16:46:12 +0200 Subject: [PATCH] fixed ProVerif Output analysis for TML --- src/proverifspec/ProVerifOutputAnalyzer.java | 9 ++++++--- src/tmltranslator/toavatar/TML2Avatar.java | 13 ++++++++----- src/ui/window/JDialogProverifVerification.java | 3 ++- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/proverifspec/ProVerifOutputAnalyzer.java b/src/proverifspec/ProVerifOutputAnalyzer.java index 9f08b95f39..cfe3301e1d 100644 --- a/src/proverifspec/ProVerifOutputAnalyzer.java +++ b/src/proverifspec/ProVerifOutputAnalyzer.java @@ -228,10 +228,13 @@ public class ProVerifOutputAnalyzer { { for (AvatarPragma pragma: pragmas) { - if (pragma instanceof AvatarPragmaSecret - && this.avatar2proverif.getTrueName(((AvatarPragmaSecret) pragma).getArg()).equals(attributeName)) + if (pragma instanceof AvatarPragmaSecret) { - this.results.put(pragma, result); + String trueName = this.avatar2proverif.getTrueName(((AvatarPragmaSecret) pragma).getArg()); + if (trueName != null && trueName.equals(attributeName)) + { + this.results.put(pragma, result); + } } } } diff --git a/src/tmltranslator/toavatar/TML2Avatar.java b/src/tmltranslator/toavatar/TML2Avatar.java index 846e24026a..385552838b 100644 --- a/src/tmltranslator/toavatar/TML2Avatar.java +++ b/src/tmltranslator/toavatar/TML2Avatar.java @@ -1081,11 +1081,14 @@ public class TML2Avatar { sig=signalOutMap.get(ch.getName()); } if (ch.checkConf){ - if (!attrsToCheck.contains(getName(ch.getName())+"_chData")){ - AvatarAttribute attr = new AvatarAttribute(getName(ch.getName())+"_chData", AvatarType.INTEGER, block, null); - attrsToCheck.add(getName(ch.getName())+"_chData"); - avspec.addPragma(new AvatarPragmaSecret("#Confidentiality "+block.getName() + "."+ch.getName()+"_chData", ch.getReferenceObject(), attr)); - } + if (!attrsToCheck.contains(getName(ch.getName())+"_chData")){ + AvatarAttribute attr = block.getAvatarAttributeWithName(getName(ch.getName())+"_chData"); + if (attr != null) + { + attrsToCheck.add(getName(ch.getName())+"_chData"); + avspec.addPragma(new AvatarPragmaSecret("#Confidentiality "+block.getName() + "."+ch.getName()+"_chData", ch.getReferenceObject(), attr)); + } + } } if (ch.checkAuth){ if (block.getAvatarAttributeWithName(getName(ch.getName())+"_chData")==null){ diff --git a/src/ui/window/JDialogProverifVerification.java b/src/ui/window/JDialogProverifVerification.java index 4cdfe6d031..560a6aee91 100644 --- a/src/ui/window/JDialogProverifVerification.java +++ b/src/ui/window/JDialogProverifVerification.java @@ -593,6 +593,7 @@ public class JDialogProverifVerification extends javax.swing.JDialog implements mode = STOPPED; } catch (Exception e) { mode = STOPPED; + throw e; } @@ -678,7 +679,7 @@ public class JDialogProverifVerification extends javax.swing.JDialog implements curList.setSelectedIndex(row); this.menuItem.pragma = curList.getModel().getElementAt(row); this.menuItem.result = this.results.get(this.menuItem.pragma); - this.menuItem.setEnabled(this.menuItem.result.getTrace() != null); + this.menuItem.setEnabled(this.adp != null && this.menuItem.result.getTrace() != null); popup.show(e.getComponent(), e.getX(), e.getY()); } } -- GitLab