From 1da84b5cdb3155ac0c047b71c777e4b6c90884d4 Mon Sep 17 00:00:00 2001
From: L <letitia.li@telecom-paristech.fr>
Date: Wed, 26 Sep 2018 12:37:21 -0400
Subject: [PATCH] Fixed proverif result trace display

---
 src/main/java/tmltranslator/TMLModeling.java  | 20 +++++++++----------
 .../tmltranslator/toavatar/TML2Avatar.java    | 12 ++++++++---
 .../java/ui/tmlcompd/TMLCPrimitivePort.java   | 11 ++++++++--
 3 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java
index a193a0ef80..69dfa06bf3 100755
--- a/src/main/java/tmltranslator/TMLModeling.java
+++ b/src/main/java/tmltranslator/TMLModeling.java
@@ -838,7 +838,7 @@ public class TMLModeling<E> {
                         port.mappingName= mappingName;
                         //Add Result Trace also
                         ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        if (trace !=null){
+                        if (trace !=null && port.isOrigin){
                         	port.setResultTrace(trace);
                         	port.setPragmaString(pragma.toString());
                         }
@@ -929,7 +929,7 @@ public class TMLModeling<E> {
                             port.checkStrongAuthStatus = 3;
                             port.mappingName= mappingName;
                             ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        	if (trace !=null){
+                        	if (trace !=null && !port.isOrigin){
                         		port.setResultTrace(trace);
                         		port.setPragmaString(pragma.toString());
                         	}
@@ -981,7 +981,7 @@ public class TMLModeling<E> {
                                     TraceManager.addDev("not verified " + signalName);
                                     port.secName= signalName;
                                     ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        			if (trace !=null){
+                        			if (trace !=null && !port.isOrigin){
                         				port.setResultTrace(trace);
                         				port.setPragmaString(pragma.toString());
                         			}
@@ -1012,7 +1012,7 @@ public class TMLModeling<E> {
                                         port.checkWeakAuthStatus = 3;
                                         port.secName= signalName;
                                         ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        				if (trace !=null){
+                        				if (trace !=null && !port.isOrigin){
                         					port.setResultTrace(trace);
                         					port.setPragmaString(pragma.toString());
   					                      }
@@ -1035,7 +1035,7 @@ public class TMLModeling<E> {
                                 port.checkWeakAuthStatus = 2;
                                 port.mappingName= mappingName;
                                 ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        		if (trace !=null){
+                        		if (trace !=null && !port.isOrigin){
                         			port.setResultTrace(trace);
                         			port.setPragmaString(pragma.toString());
                         		}
@@ -1092,7 +1092,7 @@ public class TMLModeling<E> {
                                         port.checkWeakAuthStatus = 2;
                                         port.secName= signalName;
                                         ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        				if (trace !=null){
+                        				if (trace !=null && !port.isOrigin){
                         					port.setResultTrace(trace);
                 				        	port.setPragmaString(pragma.toString());
  				                       }
@@ -1123,7 +1123,7 @@ public class TMLModeling<E> {
                                             port.checkWeakAuthStatus = 2;
                                             port.secName= signalName;
                                             ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                       						if (trace !=null){
+                       						if (trace !=null && !port.isOrigin){
                         						port.setResultTrace(trace);
                         						port.setPragmaString(pragma.toString());
                         					}
@@ -1150,7 +1150,7 @@ public class TMLModeling<E> {
                             port.checkStrongAuthStatus = 2;
                             port.mappingName= mappingName;
                             ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        	if (trace !=null){
+                        	if (trace !=null && !port.isOrigin){
                         		port.setResultTrace(trace);
                         		port.setPragmaString(pragma.toString());
                         	}
@@ -1210,7 +1210,7 @@ public class TMLModeling<E> {
                                     port.checkStrongAuthStatus = 2;
                                     port.secName= signalName;
                                     ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        			if (trace !=null){
+                        			if (trace !=null && !port.isOrigin){
                         				port.setResultTrace(trace);
                         				port.setPragmaString(pragma.toString());
                         			}
@@ -1242,7 +1242,7 @@ public class TMLModeling<E> {
                                         port.checkStrongAuthStatus = 2;
                                         port.secName= signalName;
                         				ProVerifResultTrace trace = pvoa.getResults().get(pragma).getTrace();
-                        				if (trace !=null){
+                        				if (trace !=null && !port.isOrigin){
                         					port.setResultTrace(trace);
                         					port.setPragmaString(pragma.toString());
                         				}                                        
diff --git a/src/main/java/tmltranslator/toavatar/TML2Avatar.java b/src/main/java/tmltranslator/toavatar/TML2Avatar.java
index 723ac0a3c5..707d11a76a 100644
--- a/src/main/java/tmltranslator/toavatar/TML2Avatar.java
+++ b/src/main/java/tmltranslator/toavatar/TML2Avatar.java
@@ -2195,15 +2195,21 @@ public class TML2Avatar {
 			for (SecurityPattern sp:pubKeys.keySet()){
 				if (pubKeys.get(sp).size()!=0){
 					String keys = "";
+					List<String> pubKeyNames = new ArrayList<String>();
 					for (AvatarAttribute key: pubKeys.get(sp)){
-						keys= keys+" "+key.getBlock().getName() + "."+key.getName();
+						if (!pubKeyNames.contains(key.getBlock().getName()+"."+key.getName())){
+							keys= keys+" "+key.getBlock().getName() + "."+key.getName();
+							pubKeyNames.add(key.getBlock().getName()+"."+key.getName());
+						}
 					}
-					avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge "+keys, null, pubKeys.get(sp),true));
+				//	avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge "+keys, null, pubKeys.get(sp),true));
+					//System.out.println("pragma " + keys);
 				}
 			}
+			
 			tmlmap.getTMLModeling().secChannelMap = secChannelMap;
 	
-		//	System.out.println("avatar spec\n" +avspec);
+//			System.out.println("avatar spec\n" +avspec);
 			return avspec;
 		}
 
diff --git a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
index aef9c3a0e8..a13e3a2c2a 100755
--- a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
+++ b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
@@ -671,12 +671,19 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
         try {
         	PipedInputStream pis = new PipedInputStream(pos, 4096);
             BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(pos));
-
-            JFrameSimulationSDPanel jfssdp = new JFrameSimulationSDPanel(null, tdp.getMGUI(), "Trace for confidentiality property of " + pragma);
+			String title = "";
+			if (isOrigin){	
+				title = "Trace for confidentiality property of ";
+			}
+			else {
+				title = "Trace for authenticity property of ";
+			}
+            JFrameSimulationSDPanel jfssdp = new JFrameSimulationSDPanel(null, tdp.getMGUI(), title + pragma);
             jfssdp.setIconImage(IconManager.img8);
             GraphicLib.centerOnParent(jfssdp, 600, 600);
             jfssdp.setFileReference(new BufferedReader(new InputStreamReader(pis)));
             jfssdp.setVisible(true);
+			jfssdp.setLimitEntity(false);
                         //jfssdp.setModalExclusionType(ModalExclusionType
                           //      .APPLICATION_EXCLUDE);
             jfssdp.toFront();
-- 
GitLab