diff --git a/Makefile b/Makefile index e9ef46e23d2fa2b5ede73fc9f09eac1a966c4572..99bb80337ece713dd119b13cd2c5ba8713f0f44c 100755 --- a/Makefile +++ b/Makefile @@ -264,7 +264,7 @@ stdrelease: cp $(TTOOL_SIMULATORS)/c++2/lib/README $(TTOOL_TARGET)/simulators/c++2/lib/ cp $(TTOOL_SIMULATORS)/c++2/Makefile $(TTOOL_TARGET)/simulators/c++2 cp $(TTOOL_SIMULATORS)/c++2/Makefile.defs $(TTOOL_TARGET)/simulators/c++2 - cp $(TTOOL_SIMULATORS)/c++2/schedstyle.css $(TTOOL_TARGET)/simulators/c++2 +# cp $(TTOOL_SIMULATORS)/c++2/schedstyle.css $(TTOOL_TARGET)/simulators/c++2 cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.cpp $(TTOOL_TARGET)/simulators/c++2/src_simulator cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.h $(TTOOL_TARGET)/simulators/c++2/src_simulator cp $(TTOOL_SIMULATORS)/c++2/src_simulator/app/*.cpp $(TTOOL_TARGET)/simulators/c++2/src_simulator/app @@ -393,7 +393,7 @@ define functionCommonPreinstall cp $(TTOOL_SIMULATORS)/c++2/lib/README $(1)/TTool/simulators/c++2/lib/ cp $(TTOOL_SIMULATORS)/c++2/Makefile $(1)/TTool/simulators/c++2 cp $(TTOOL_SIMULATORS)/c++2/Makefile.defs $(1)/TTool/simulators/c++2 - cp $(TTOOL_SIMULATORS)/c++2/schedstyle.css $(1)/TTool/simulators/c++2 +# cp $(TTOOL_SIMULATORS)/c++2/schedstyle.css $(1)/TTool/simulators/c++2 cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.cpp $(1)/TTool/simulators/c++2/src_simulator cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.h $(1)/TTool/simulators/c++2/src_simulator cp $(TTOOL_SIMULATORS)/c++2/src_simulator/app/*.cpp $(1)/TTool/simulators/c++2/src_simulator/app diff --git a/build.txt b/build.txt index 3c67333fdb28a1b13d2d9da58ba656e179404763..8a71ce55b709315dd912449a04614002b33c4b82 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -12181 \ No newline at end of file +12188 \ No newline at end of file diff --git a/doc/ttool_windows.bat b/doc/ttool_windows.bat index 9e9ae515bf1560fd044899b0d09c2e7b273a5867..7abb8c080eb4a59496f96f57400baa360bfb9829 100755 --- a/doc/ttool_windows.bat +++ b/doc/ttool_windows.bat @@ -1,3 +1,3 @@ -chdir TTool\bin +chdir bin java -Xmx1024m -jar ttool.jar -launcher -config config.xml -nc -diplodocus -avatar -proverif diff --git a/modeling/SysMLSec/AliceAndBob.xml b/modeling/SysMLSec/AliceAndBob.xml index 68a9b4849b72400e0465464b7851b8f12ac53231..16c14c0e50d4f697de90adf4d626615510212190 100644 --- a/modeling/SysMLSec/AliceAndBob.xml +++ b/modeling/SysMLSec/AliceAndBob.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<TURTLEGMODELING version="0.99-beta1"> +<TURTLEGMODELING version="0.99-beta4"> <Modeling type="AVATAR Design" nameTab="Example" > <AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > @@ -154,11 +154,11 @@ </COMPONENT> <SUBCOMPONENT type="5000" id="66" > <father id="116" num="0" /> -<cdparam x="263" y="233" /> -<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="36" y="233" /> +<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" /> -<infoparam name="Block0" value="Bob" /> +<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" /> +<infoparam name="Block0" value="Alice" /> <TGConnectingPoint num="0" id="42" /> <TGConnectingPoint num="1" id="43" /> <TGConnectingPoint num="2" id="44" /> @@ -184,11 +184,11 @@ <TGConnectingPoint num="22" id="64" /> <TGConnectingPoint num="23" id="65" /> <extraparam> -<CryptoBlock value="false" /> +<CryptoBlock value="true" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> <Attribute access="0" id="m" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> <Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> -<Attribute access="0" id="receivedData" value="" type="8" typeOther="" /> <Method value="Message encrypt(Message msg, Key k)" /> <Method value="Message decrypt(Message msg, Key k)" /> <Method value="Message sencrypt(Message msg, Key k)" /> @@ -201,15 +201,25 @@ <Method value="get2(Message msg, Message msg1, Message msg2)" /> <Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> <Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="5000" id="91" > <father id="116" num="1" /> -<cdparam x="36" y="233" /> -<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="263" y="233" /> +<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" /> -<infoparam name="Block0" value="Alice" /> +<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" /> +<infoparam name="Block0" value="Bob" /> <TGConnectingPoint num="0" id="67" /> <TGConnectingPoint num="1" id="68" /> <TGConnectingPoint num="2" id="69" /> @@ -235,11 +245,11 @@ <TGConnectingPoint num="22" id="89" /> <TGConnectingPoint num="23" id="90" /> <extraparam> -<CryptoBlock value="false" /> -<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<CryptoBlock value="true" /> <Attribute access="0" id="m" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> <Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="receivedData" value="" type="8" typeOther="" /> <Method value="Message encrypt(Message msg, Key k)" /> <Method value="Message decrypt(Message msg, Key k)" /> <Method value="Message sencrypt(Message msg, Key k)" /> @@ -252,6 +262,16 @@ <Method value="get2(Message msg, Message msg1, Message msg2)" /> <Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> <Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> </extraparam> </SUBCOMPONENT> @@ -271,19 +291,19 @@ </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="1400" minY="10" maxY="900" > +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="1400" minY="10" maxY="900" > <CONNECTOR type="5102" id="125" > -<cdparam x="407" y="310" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="null" /> +<cdparam x="416" y="379" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> <TGConnectingPoint num="0" id="124" /> -<P1 x="407" y="310" id="196" /> -<P2 x="416" y="356" id="155" /> +<P1 x="416" y="379" id="160" /> +<P2 x="420" y="424" id="196" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="123" > <father id="125" num="0" /> -<cdparam x="449" y="353" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="431" y="403" /> +<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -297,21 +317,22 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<actions value="receivedData = m.data" /> </extraparam> </SUBCOMPONENT> <CONNECTOR type="5102" id="132" > -<cdparam x="492" y="446" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="null" /> +<cdparam x="407" y="273" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> <TGConnectingPoint num="0" id="131" /> -<P1 x="416" y="406" id="160" /> -<P2 x="434" y="446" id="206" /> +<P1 x="407" y="273" id="242" /> +<P2 x="416" y="339" id="155" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="130" > <father id="132" num="0" /> -<cdparam x="449" y="440" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="419" y="312" /> +<sizeparam width="134" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -325,20 +346,21 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<actions value="m = sdecrypt(m2, sk)" /> </extraparam> </SUBCOMPONENT> <CONNECTOR type="5102" id="139" > -<cdparam x="407" y="251" /> +<cdparam x="406" y="201" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to stop state" value="null" /> +<infoparam name="connector from Send signal to state0" value="null" /> <TGConnectingPoint num="0" id="138" /> -<P1 x="407" y="251" id="214" /> -<P2 x="407" y="280" id="195" /> +<P1 x="406" y="201" id="278" /> +<P2 x="407" y="233" id="237" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="137" > <father id="139" num="0" /> -<cdparam x="407" y="291" /> +<cdparam x="406" y="241" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -357,17 +379,17 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="146" > -<cdparam x="407" y="132" /> +<cdparam x="406" y="141" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to state0" value="null" /> +<infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="145" /> -<P1 x="407" y="132" id="255" /> -<P2 x="407" y="211" id="209" /> +<P1 x="406" y="141" id="294" /> +<P2 x="406" y="171" id="277" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="144" > <father id="146" num="0" /> -<cdparam x="415" y="162" /> -<sizeparam width="126" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="406" y="181" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -381,8 +403,6 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> -<actions value="m.data = secretData" /> -<actions value="m1 = sencrypt(m, sk)" /> </extraparam> </SUBCOMPONENT> @@ -391,8 +411,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="152" /> -<P1 x="407" y="70" id="290" /> -<P2 x="407" y="92" id="250" /> +<P1 x="407" y="70" id="329" /> +<P2 x="406" y="101" id="289" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="151" > <father id="153" num="0" /> @@ -415,11 +435,11 @@ </SUBCOMPONENT> <COMPONENT type="5106" id="194" > -<cdparam x="366" y="356" /> -<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="327" y="339" /> +<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="State" value="beforeFinish" /> +<infoparam name="state0" value="messageDecrypted" /> <TGConnectingPoint num="0" id="154" /> <TGConnectingPoint num="1" id="155" /> <TGConnectingPoint num="2" id="156" /> @@ -464,12 +484,12 @@ </extraparam> </COMPONENT> -<COMPONENT type="5103" id="205" > -<cdparam x="373" y="285" /> -<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5106" id="235" > +<cdparam x="350" y="424" /> +<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="chout(m1)" /> +<infoparam name="state0" value="SecretDataReceived" /> <TGConnectingPoint num="0" id="195" /> <TGConnectingPoint num="1" id="196" /> <TGConnectingPoint num="2" id="197" /> @@ -480,207 +500,246 @@ <TGConnectingPoint num="7" id="202" /> <TGConnectingPoint num="8" id="203" /> <TGConnectingPoint num="9" id="204" /> +<TGConnectingPoint num="10" id="205" /> +<TGConnectingPoint num="11" id="206" /> +<TGConnectingPoint num="12" id="207" /> +<TGConnectingPoint num="13" id="208" /> +<TGConnectingPoint num="14" id="209" /> +<TGConnectingPoint num="15" id="210" /> +<TGConnectingPoint num="16" id="211" /> +<TGConnectingPoint num="17" id="212" /> +<TGConnectingPoint num="18" id="213" /> +<TGConnectingPoint num="19" id="214" /> +<TGConnectingPoint num="20" id="215" /> +<TGConnectingPoint num="21" id="216" /> +<TGConnectingPoint num="22" id="217" /> +<TGConnectingPoint num="23" id="218" /> +<TGConnectingPoint num="24" id="219" /> +<TGConnectingPoint num="25" id="220" /> +<TGConnectingPoint num="26" id="221" /> +<TGConnectingPoint num="27" id="222" /> +<TGConnectingPoint num="28" id="223" /> +<TGConnectingPoint num="29" id="224" /> +<TGConnectingPoint num="30" id="225" /> +<TGConnectingPoint num="31" id="226" /> +<TGConnectingPoint num="32" id="227" /> +<TGConnectingPoint num="33" id="228" /> +<TGConnectingPoint num="34" id="229" /> +<TGConnectingPoint num="35" id="230" /> +<TGConnectingPoint num="36" id="231" /> +<TGConnectingPoint num="37" id="232" /> +<TGConnectingPoint num="38" id="233" /> +<TGConnectingPoint num="39" id="234" /> +<extraparam> +</extraparam> </COMPONENT> -<COMPONENT type="5101" id="207" > -<cdparam x="424" y="451" /> -<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5106" id="276" > +<cdparam x="336" y="233" /> +<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="stop state" value="null" /> -<TGConnectingPoint num="0" id="206" /> +<infoparam name="state0" value="messageDecrypt" /> +<TGConnectingPoint num="0" id="236" /> +<TGConnectingPoint num="1" id="237" /> +<TGConnectingPoint num="2" id="238" /> +<TGConnectingPoint num="3" id="239" /> +<TGConnectingPoint num="4" id="240" /> +<TGConnectingPoint num="5" id="241" /> +<TGConnectingPoint num="6" id="242" /> +<TGConnectingPoint num="7" id="243" /> +<TGConnectingPoint num="8" id="244" /> +<TGConnectingPoint num="9" id="245" /> +<TGConnectingPoint num="10" id="246" /> +<TGConnectingPoint num="11" id="247" /> +<TGConnectingPoint num="12" id="248" /> +<TGConnectingPoint num="13" id="249" /> +<TGConnectingPoint num="14" id="250" /> +<TGConnectingPoint num="15" id="251" /> +<TGConnectingPoint num="16" id="252" /> +<TGConnectingPoint num="17" id="253" /> +<TGConnectingPoint num="18" id="254" /> +<TGConnectingPoint num="19" id="255" /> +<TGConnectingPoint num="20" id="256" /> +<TGConnectingPoint num="21" id="257" /> +<TGConnectingPoint num="22" id="258" /> +<TGConnectingPoint num="23" id="259" /> +<TGConnectingPoint num="24" id="260" /> +<TGConnectingPoint num="25" id="261" /> +<TGConnectingPoint num="26" id="262" /> +<TGConnectingPoint num="27" id="263" /> +<TGConnectingPoint num="28" id="264" /> +<TGConnectingPoint num="29" id="265" /> +<TGConnectingPoint num="30" id="266" /> +<TGConnectingPoint num="31" id="267" /> +<TGConnectingPoint num="32" id="268" /> +<TGConnectingPoint num="33" id="269" /> +<TGConnectingPoint num="34" id="270" /> +<TGConnectingPoint num="35" id="271" /> +<TGConnectingPoint num="36" id="272" /> +<TGConnectingPoint num="37" id="273" /> +<TGConnectingPoint num="38" id="274" /> +<TGConnectingPoint num="39" id="275" /> +<extraparam> +</extraparam> </COMPONENT> -<COMPONENT type="5106" id="248" > -<cdparam x="336" y="211" /> -<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5104" id="287" > +<cdparam x="370" y="176" /> +<sizeparam width="73" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="sendingMessage" /> -<TGConnectingPoint num="0" id="208" /> -<TGConnectingPoint num="1" id="209" /> -<TGConnectingPoint num="2" id="210" /> -<TGConnectingPoint num="3" id="211" /> -<TGConnectingPoint num="4" id="212" /> -<TGConnectingPoint num="5" id="213" /> -<TGConnectingPoint num="6" id="214" /> -<TGConnectingPoint num="7" id="215" /> -<TGConnectingPoint num="8" id="216" /> -<TGConnectingPoint num="9" id="217" /> -<TGConnectingPoint num="10" id="218" /> -<TGConnectingPoint num="11" id="219" /> -<TGConnectingPoint num="12" id="220" /> -<TGConnectingPoint num="13" id="221" /> -<TGConnectingPoint num="14" id="222" /> -<TGConnectingPoint num="15" id="223" /> -<TGConnectingPoint num="16" id="224" /> -<TGConnectingPoint num="17" id="225" /> -<TGConnectingPoint num="18" id="226" /> -<TGConnectingPoint num="19" id="227" /> -<TGConnectingPoint num="20" id="228" /> -<TGConnectingPoint num="21" id="229" /> -<TGConnectingPoint num="22" id="230" /> -<TGConnectingPoint num="23" id="231" /> -<TGConnectingPoint num="24" id="232" /> -<TGConnectingPoint num="25" id="233" /> -<TGConnectingPoint num="26" id="234" /> -<TGConnectingPoint num="27" id="235" /> -<TGConnectingPoint num="28" id="236" /> -<TGConnectingPoint num="29" id="237" /> -<TGConnectingPoint num="30" id="238" /> -<TGConnectingPoint num="31" id="239" /> -<TGConnectingPoint num="32" id="240" /> -<TGConnectingPoint num="33" id="241" /> -<TGConnectingPoint num="34" id="242" /> -<TGConnectingPoint num="35" id="243" /> -<TGConnectingPoint num="36" id="244" /> -<TGConnectingPoint num="37" id="245" /> -<TGConnectingPoint num="38" id="246" /> -<TGConnectingPoint num="39" id="247" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="289" > -<cdparam x="340" y="92" /> -<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Send signal" value="chin(m2)" /> +<TGConnectingPoint num="0" id="277" /> +<TGConnectingPoint num="1" id="278" /> +<TGConnectingPoint num="2" id="279" /> +<TGConnectingPoint num="3" id="280" /> +<TGConnectingPoint num="4" id="281" /> +<TGConnectingPoint num="5" id="282" /> +<TGConnectingPoint num="6" id="283" /> +<TGConnectingPoint num="7" id="284" /> +<TGConnectingPoint num="8" id="285" /> +<TGConnectingPoint num="9" id="286" /> +</COMPONENT> + +<COMPONENT type="5106" id="328" > +<cdparam x="340" y="101" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="makingMessage" /> -<TGConnectingPoint num="0" id="249" /> -<TGConnectingPoint num="1" id="250" /> -<TGConnectingPoint num="2" id="251" /> -<TGConnectingPoint num="3" id="252" /> -<TGConnectingPoint num="4" id="253" /> -<TGConnectingPoint num="5" id="254" /> -<TGConnectingPoint num="6" id="255" /> -<TGConnectingPoint num="7" id="256" /> -<TGConnectingPoint num="8" id="257" /> -<TGConnectingPoint num="9" id="258" /> -<TGConnectingPoint num="10" id="259" /> -<TGConnectingPoint num="11" id="260" /> -<TGConnectingPoint num="12" id="261" /> -<TGConnectingPoint num="13" id="262" /> -<TGConnectingPoint num="14" id="263" /> -<TGConnectingPoint num="15" id="264" /> -<TGConnectingPoint num="16" id="265" /> -<TGConnectingPoint num="17" id="266" /> -<TGConnectingPoint num="18" id="267" /> -<TGConnectingPoint num="19" id="268" /> -<TGConnectingPoint num="20" id="269" /> -<TGConnectingPoint num="21" id="270" /> -<TGConnectingPoint num="22" id="271" /> -<TGConnectingPoint num="23" id="272" /> -<TGConnectingPoint num="24" id="273" /> -<TGConnectingPoint num="25" id="274" /> -<TGConnectingPoint num="26" id="275" /> -<TGConnectingPoint num="27" id="276" /> -<TGConnectingPoint num="28" id="277" /> -<TGConnectingPoint num="29" id="278" /> -<TGConnectingPoint num="30" id="279" /> -<TGConnectingPoint num="31" id="280" /> -<TGConnectingPoint num="32" id="281" /> -<TGConnectingPoint num="33" id="282" /> -<TGConnectingPoint num="34" id="283" /> -<TGConnectingPoint num="35" id="284" /> -<TGConnectingPoint num="36" id="285" /> -<TGConnectingPoint num="37" id="286" /> -<TGConnectingPoint num="38" id="287" /> -<TGConnectingPoint num="39" id="288" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="291" > +<infoparam name="state0" value="waitingForMessage" /> +<TGConnectingPoint num="0" id="288" /> +<TGConnectingPoint num="1" id="289" /> +<TGConnectingPoint num="2" id="290" /> +<TGConnectingPoint num="3" id="291" /> +<TGConnectingPoint num="4" id="292" /> +<TGConnectingPoint num="5" id="293" /> +<TGConnectingPoint num="6" id="294" /> +<TGConnectingPoint num="7" id="295" /> +<TGConnectingPoint num="8" id="296" /> +<TGConnectingPoint num="9" id="297" /> +<TGConnectingPoint num="10" id="298" /> +<TGConnectingPoint num="11" id="299" /> +<TGConnectingPoint num="12" id="300" /> +<TGConnectingPoint num="13" id="301" /> +<TGConnectingPoint num="14" id="302" /> +<TGConnectingPoint num="15" id="303" /> +<TGConnectingPoint num="16" id="304" /> +<TGConnectingPoint num="17" id="305" /> +<TGConnectingPoint num="18" id="306" /> +<TGConnectingPoint num="19" id="307" /> +<TGConnectingPoint num="20" id="308" /> +<TGConnectingPoint num="21" id="309" /> +<TGConnectingPoint num="22" id="310" /> +<TGConnectingPoint num="23" id="311" /> +<TGConnectingPoint num="24" id="312" /> +<TGConnectingPoint num="25" id="313" /> +<TGConnectingPoint num="26" id="314" /> +<TGConnectingPoint num="27" id="315" /> +<TGConnectingPoint num="28" id="316" /> +<TGConnectingPoint num="29" id="317" /> +<TGConnectingPoint num="30" id="318" /> +<TGConnectingPoint num="31" id="319" /> +<TGConnectingPoint num="32" id="320" /> +<TGConnectingPoint num="33" id="321" /> +<TGConnectingPoint num="34" id="322" /> +<TGConnectingPoint num="35" id="323" /> +<TGConnectingPoint num="36" id="324" /> +<TGConnectingPoint num="37" id="325" /> +<TGConnectingPoint num="38" id="326" /> +<TGConnectingPoint num="39" id="327" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="330" > <cdparam x="400" y="50" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="290" /> +<TGConnectingPoint num="0" id="329" /> </COMPONENT> </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="298" > -<cdparam x="416" y="379" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to state0" value="null" /> -<TGConnectingPoint num="0" id="297" /> -<P1 x="416" y="379" id="333" /> -<P2 x="420" y="424" id="369" /> +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="337" > +<cdparam x="407" y="310" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="336" /> +<P1 x="407" y="310" id="408" /> +<P2 x="416" y="356" id="367" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="296" > -<father id="298" num="0" /> -<cdparam x="431" y="403" /> -<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="335" > +<father id="337" num="0" /> +<cdparam x="449" y="353" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="292" /> -<TGConnectingPoint num="1" id="293" /> -<TGConnectingPoint num="2" id="294" /> -<TGConnectingPoint num="3" id="295" /> +<TGConnectingPoint num="0" id="331" /> +<TGConnectingPoint num="1" id="332" /> +<TGConnectingPoint num="2" id="333" /> +<TGConnectingPoint num="3" id="334" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> -<actions value="receivedData = m.data" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="305" > -<cdparam x="407" y="273" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to state0" value="null" /> -<TGConnectingPoint num="0" id="304" /> -<P1 x="407" y="273" id="415" /> -<P2 x="416" y="339" id="328" /> +<CONNECTOR type="5102" id="344" > +<cdparam x="492" y="446" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="343" /> +<P1 x="416" y="406" id="372" /> +<P2 x="434" y="446" id="418" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="303" > -<father id="305" num="0" /> -<cdparam x="419" y="312" /> -<sizeparam width="127" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="342" > +<father id="344" num="0" /> +<cdparam x="449" y="440" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="299" /> -<TGConnectingPoint num="1" id="300" /> -<TGConnectingPoint num="2" id="301" /> -<TGConnectingPoint num="3" id="302" /> +<TGConnectingPoint num="0" id="338" /> +<TGConnectingPoint num="1" id="339" /> +<TGConnectingPoint num="2" id="340" /> +<TGConnectingPoint num="3" id="341" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> -<actions value="m = sdecrypt(m2, sk)" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="312" > -<cdparam x="406" y="201" /> +<CONNECTOR type="5102" id="351" > +<cdparam x="407" y="251" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="311" /> -<P1 x="406" y="201" id="451" /> -<P2 x="407" y="233" id="410" /> +<infoparam name="connector from state0 to stop state" value="null" /> +<TGConnectingPoint num="0" id="350" /> +<P1 x="407" y="251" id="426" /> +<P2 x="407" y="280" id="407" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="310" > -<father id="312" num="0" /> -<cdparam x="406" y="241" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="349" > +<father id="351" num="0" /> +<cdparam x="407" y="291" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="306" /> -<TGConnectingPoint num="1" id="307" /> -<TGConnectingPoint num="2" id="308" /> -<TGConnectingPoint num="3" id="309" /> +<TGConnectingPoint num="0" id="345" /> +<TGConnectingPoint num="1" id="346" /> +<TGConnectingPoint num="2" id="347" /> +<TGConnectingPoint num="3" id="348" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -690,53 +749,55 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="319" > -<cdparam x="406" y="141" /> +<CONNECTOR type="5102" id="358" > +<cdparam x="407" y="132" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="318" /> -<P1 x="406" y="141" id="467" /> -<P2 x="406" y="171" id="450" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="357" /> +<P1 x="407" y="132" id="467" /> +<P2 x="407" y="211" id="421" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="317" > -<father id="319" num="0" /> -<cdparam x="406" y="181" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="356" > +<father id="358" num="0" /> +<cdparam x="415" y="162" /> +<sizeparam width="134" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="313" /> -<TGConnectingPoint num="1" id="314" /> -<TGConnectingPoint num="2" id="315" /> -<TGConnectingPoint num="3" id="316" /> +<TGConnectingPoint num="0" id="352" /> +<TGConnectingPoint num="1" id="353" /> +<TGConnectingPoint num="2" id="354" /> +<TGConnectingPoint num="3" id="355" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<actions value="m.data = secretData" /> +<actions value="m1 = sencrypt(m, sk)" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="326" > +<CONNECTOR type="5102" id="365" > <cdparam x="407" y="70" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="325" /> +<TGConnectingPoint num="0" id="364" /> <P1 x="407" y="70" id="502" /> -<P2 x="406" y="101" id="462" /> +<P2 x="407" y="92" id="462" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="324" > -<father id="326" num="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="363" > +<father id="365" num="0" /> <cdparam x="407" y="110" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="320" /> -<TGConnectingPoint num="1" id="321" /> -<TGConnectingPoint num="2" id="322" /> -<TGConnectingPoint num="3" id="323" /> +<TGConnectingPoint num="0" id="359" /> +<TGConnectingPoint num="1" id="360" /> +<TGConnectingPoint num="2" id="361" /> +<TGConnectingPoint num="3" id="362" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -746,180 +807,139 @@ </extraparam> </SUBCOMPONENT> -<COMPONENT type="5106" id="367" > -<cdparam x="327" y="339" /> -<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5106" id="406" > +<cdparam x="366" y="356" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="messageDecrypted" /> -<TGConnectingPoint num="0" id="327" /> -<TGConnectingPoint num="1" id="328" /> -<TGConnectingPoint num="2" id="329" /> -<TGConnectingPoint num="3" id="330" /> -<TGConnectingPoint num="4" id="331" /> -<TGConnectingPoint num="5" id="332" /> -<TGConnectingPoint num="6" id="333" /> -<TGConnectingPoint num="7" id="334" /> -<TGConnectingPoint num="8" id="335" /> -<TGConnectingPoint num="9" id="336" /> -<TGConnectingPoint num="10" id="337" /> -<TGConnectingPoint num="11" id="338" /> -<TGConnectingPoint num="12" id="339" /> -<TGConnectingPoint num="13" id="340" /> -<TGConnectingPoint num="14" id="341" /> -<TGConnectingPoint num="15" id="342" /> -<TGConnectingPoint num="16" id="343" /> -<TGConnectingPoint num="17" id="344" /> -<TGConnectingPoint num="18" id="345" /> -<TGConnectingPoint num="19" id="346" /> -<TGConnectingPoint num="20" id="347" /> -<TGConnectingPoint num="21" id="348" /> -<TGConnectingPoint num="22" id="349" /> -<TGConnectingPoint num="23" id="350" /> -<TGConnectingPoint num="24" id="351" /> -<TGConnectingPoint num="25" id="352" /> -<TGConnectingPoint num="26" id="353" /> -<TGConnectingPoint num="27" id="354" /> -<TGConnectingPoint num="28" id="355" /> -<TGConnectingPoint num="29" id="356" /> -<TGConnectingPoint num="30" id="357" /> -<TGConnectingPoint num="31" id="358" /> -<TGConnectingPoint num="32" id="359" /> -<TGConnectingPoint num="33" id="360" /> -<TGConnectingPoint num="34" id="361" /> -<TGConnectingPoint num="35" id="362" /> -<TGConnectingPoint num="36" id="363" /> -<TGConnectingPoint num="37" id="364" /> -<TGConnectingPoint num="38" id="365" /> -<TGConnectingPoint num="39" id="366" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="408" > -<cdparam x="350" y="424" /> -<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="State" value="beforeFinish" /> +<TGConnectingPoint num="0" id="366" /> +<TGConnectingPoint num="1" id="367" /> +<TGConnectingPoint num="2" id="368" /> +<TGConnectingPoint num="3" id="369" /> +<TGConnectingPoint num="4" id="370" /> +<TGConnectingPoint num="5" id="371" /> +<TGConnectingPoint num="6" id="372" /> +<TGConnectingPoint num="7" id="373" /> +<TGConnectingPoint num="8" id="374" /> +<TGConnectingPoint num="9" id="375" /> +<TGConnectingPoint num="10" id="376" /> +<TGConnectingPoint num="11" id="377" /> +<TGConnectingPoint num="12" id="378" /> +<TGConnectingPoint num="13" id="379" /> +<TGConnectingPoint num="14" id="380" /> +<TGConnectingPoint num="15" id="381" /> +<TGConnectingPoint num="16" id="382" /> +<TGConnectingPoint num="17" id="383" /> +<TGConnectingPoint num="18" id="384" /> +<TGConnectingPoint num="19" id="385" /> +<TGConnectingPoint num="20" id="386" /> +<TGConnectingPoint num="21" id="387" /> +<TGConnectingPoint num="22" id="388" /> +<TGConnectingPoint num="23" id="389" /> +<TGConnectingPoint num="24" id="390" /> +<TGConnectingPoint num="25" id="391" /> +<TGConnectingPoint num="26" id="392" /> +<TGConnectingPoint num="27" id="393" /> +<TGConnectingPoint num="28" id="394" /> +<TGConnectingPoint num="29" id="395" /> +<TGConnectingPoint num="30" id="396" /> +<TGConnectingPoint num="31" id="397" /> +<TGConnectingPoint num="32" id="398" /> +<TGConnectingPoint num="33" id="399" /> +<TGConnectingPoint num="34" id="400" /> +<TGConnectingPoint num="35" id="401" /> +<TGConnectingPoint num="36" id="402" /> +<TGConnectingPoint num="37" id="403" /> +<TGConnectingPoint num="38" id="404" /> +<TGConnectingPoint num="39" id="405" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="417" > +<cdparam x="370" y="285" /> +<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="SecretDataReceived" /> -<TGConnectingPoint num="0" id="368" /> -<TGConnectingPoint num="1" id="369" /> -<TGConnectingPoint num="2" id="370" /> -<TGConnectingPoint num="3" id="371" /> -<TGConnectingPoint num="4" id="372" /> -<TGConnectingPoint num="5" id="373" /> -<TGConnectingPoint num="6" id="374" /> -<TGConnectingPoint num="7" id="375" /> -<TGConnectingPoint num="8" id="376" /> -<TGConnectingPoint num="9" id="377" /> -<TGConnectingPoint num="10" id="378" /> -<TGConnectingPoint num="11" id="379" /> -<TGConnectingPoint num="12" id="380" /> -<TGConnectingPoint num="13" id="381" /> -<TGConnectingPoint num="14" id="382" /> -<TGConnectingPoint num="15" id="383" /> -<TGConnectingPoint num="16" id="384" /> -<TGConnectingPoint num="17" id="385" /> -<TGConnectingPoint num="18" id="386" /> -<TGConnectingPoint num="19" id="387" /> -<TGConnectingPoint num="20" id="388" /> -<TGConnectingPoint num="21" id="389" /> -<TGConnectingPoint num="22" id="390" /> -<TGConnectingPoint num="23" id="391" /> -<TGConnectingPoint num="24" id="392" /> -<TGConnectingPoint num="25" id="393" /> -<TGConnectingPoint num="26" id="394" /> -<TGConnectingPoint num="27" id="395" /> -<TGConnectingPoint num="28" id="396" /> -<TGConnectingPoint num="29" id="397" /> -<TGConnectingPoint num="30" id="398" /> -<TGConnectingPoint num="31" id="399" /> -<TGConnectingPoint num="32" id="400" /> -<TGConnectingPoint num="33" id="401" /> -<TGConnectingPoint num="34" id="402" /> -<TGConnectingPoint num="35" id="403" /> -<TGConnectingPoint num="36" id="404" /> -<TGConnectingPoint num="37" id="405" /> -<TGConnectingPoint num="38" id="406" /> -<TGConnectingPoint num="39" id="407" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="449" > -<cdparam x="336" y="233" /> -<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="Send signal" value="chout(m1)" /> +<TGConnectingPoint num="0" id="407" /> +<TGConnectingPoint num="1" id="408" /> +<TGConnectingPoint num="2" id="409" /> +<TGConnectingPoint num="3" id="410" /> +<TGConnectingPoint num="4" id="411" /> +<TGConnectingPoint num="5" id="412" /> +<TGConnectingPoint num="6" id="413" /> +<TGConnectingPoint num="7" id="414" /> +<TGConnectingPoint num="8" id="415" /> +<TGConnectingPoint num="9" id="416" /> +</COMPONENT> + +<COMPONENT type="5101" id="419" > +<cdparam x="424" y="451" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="messageDecrypt" /> -<TGConnectingPoint num="0" id="409" /> -<TGConnectingPoint num="1" id="410" /> -<TGConnectingPoint num="2" id="411" /> -<TGConnectingPoint num="3" id="412" /> -<TGConnectingPoint num="4" id="413" /> -<TGConnectingPoint num="5" id="414" /> -<TGConnectingPoint num="6" id="415" /> -<TGConnectingPoint num="7" id="416" /> -<TGConnectingPoint num="8" id="417" /> -<TGConnectingPoint num="9" id="418" /> -<TGConnectingPoint num="10" id="419" /> -<TGConnectingPoint num="11" id="420" /> -<TGConnectingPoint num="12" id="421" /> -<TGConnectingPoint num="13" id="422" /> -<TGConnectingPoint num="14" id="423" /> -<TGConnectingPoint num="15" id="424" /> -<TGConnectingPoint num="16" id="425" /> -<TGConnectingPoint num="17" id="426" /> -<TGConnectingPoint num="18" id="427" /> -<TGConnectingPoint num="19" id="428" /> -<TGConnectingPoint num="20" id="429" /> -<TGConnectingPoint num="21" id="430" /> -<TGConnectingPoint num="22" id="431" /> -<TGConnectingPoint num="23" id="432" /> -<TGConnectingPoint num="24" id="433" /> -<TGConnectingPoint num="25" id="434" /> -<TGConnectingPoint num="26" id="435" /> -<TGConnectingPoint num="27" id="436" /> -<TGConnectingPoint num="28" id="437" /> -<TGConnectingPoint num="29" id="438" /> -<TGConnectingPoint num="30" id="439" /> -<TGConnectingPoint num="31" id="440" /> -<TGConnectingPoint num="32" id="441" /> -<TGConnectingPoint num="33" id="442" /> -<TGConnectingPoint num="34" id="443" /> -<TGConnectingPoint num="35" id="444" /> -<TGConnectingPoint num="36" id="445" /> -<TGConnectingPoint num="37" id="446" /> -<TGConnectingPoint num="38" id="447" /> -<TGConnectingPoint num="39" id="448" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5104" id="460" > -<cdparam x="372" y="176" /> -<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="418" /> +</COMPONENT> + +<COMPONENT type="5106" id="460" > +<cdparam x="336" y="211" /> +<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="chin(m2)" /> -<TGConnectingPoint num="0" id="450" /> -<TGConnectingPoint num="1" id="451" /> -<TGConnectingPoint num="2" id="452" /> -<TGConnectingPoint num="3" id="453" /> -<TGConnectingPoint num="4" id="454" /> -<TGConnectingPoint num="5" id="455" /> -<TGConnectingPoint num="6" id="456" /> -<TGConnectingPoint num="7" id="457" /> -<TGConnectingPoint num="8" id="458" /> -<TGConnectingPoint num="9" id="459" /> +<infoparam name="state0" value="sendingMessage" /> +<TGConnectingPoint num="0" id="420" /> +<TGConnectingPoint num="1" id="421" /> +<TGConnectingPoint num="2" id="422" /> +<TGConnectingPoint num="3" id="423" /> +<TGConnectingPoint num="4" id="424" /> +<TGConnectingPoint num="5" id="425" /> +<TGConnectingPoint num="6" id="426" /> +<TGConnectingPoint num="7" id="427" /> +<TGConnectingPoint num="8" id="428" /> +<TGConnectingPoint num="9" id="429" /> +<TGConnectingPoint num="10" id="430" /> +<TGConnectingPoint num="11" id="431" /> +<TGConnectingPoint num="12" id="432" /> +<TGConnectingPoint num="13" id="433" /> +<TGConnectingPoint num="14" id="434" /> +<TGConnectingPoint num="15" id="435" /> +<TGConnectingPoint num="16" id="436" /> +<TGConnectingPoint num="17" id="437" /> +<TGConnectingPoint num="18" id="438" /> +<TGConnectingPoint num="19" id="439" /> +<TGConnectingPoint num="20" id="440" /> +<TGConnectingPoint num="21" id="441" /> +<TGConnectingPoint num="22" id="442" /> +<TGConnectingPoint num="23" id="443" /> +<TGConnectingPoint num="24" id="444" /> +<TGConnectingPoint num="25" id="445" /> +<TGConnectingPoint num="26" id="446" /> +<TGConnectingPoint num="27" id="447" /> +<TGConnectingPoint num="28" id="448" /> +<TGConnectingPoint num="29" id="449" /> +<TGConnectingPoint num="30" id="450" /> +<TGConnectingPoint num="31" id="451" /> +<TGConnectingPoint num="32" id="452" /> +<TGConnectingPoint num="33" id="453" /> +<TGConnectingPoint num="34" id="454" /> +<TGConnectingPoint num="35" id="455" /> +<TGConnectingPoint num="36" id="456" /> +<TGConnectingPoint num="37" id="457" /> +<TGConnectingPoint num="38" id="458" /> +<TGConnectingPoint num="39" id="459" /> +<extraparam> +</extraparam> </COMPONENT> <COMPONENT type="5106" id="501" > -<cdparam x="340" y="101" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="340" y="92" /> +<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="waitingForMessage" /> +<infoparam name="state0" value="makingMessage" /> <TGConnectingPoint num="0" id="461" /> <TGConnectingPoint num="1" id="462" /> <TGConnectingPoint num="2" id="463" /> @@ -981,4 +1001,3632 @@ +<Modeling type="AVATAR Design" nameTab="Example DH" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="509" > +<cdparam x="568" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="506" /> +<TGConnectingPoint num="1" id="507" /> +<TGConnectingPoint num="2" id="508" /> +<P1 x="459" y="199" id="606" /> +<P2 x="459" y="254" id="599" /> +<Point x="490" y="199" /> +<Point x="490" y="254" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in chin(Message msg)" /> +<osd value="out chout(Message msg)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="504" > +<father id="509" num="0" /> +<cdparam x="490" y="199" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="505" > +<father id="509" num="1" /> +<cdparam x="490" y="254" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<COMPONENT type="302" id="526" > +<cdparam x="517" y="154" /> +<sizeparam width="455" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Proverif Pragma" value="#PrivatePublicKeys Alice privK pubK +#PrivatePublicKeys Bob privK pubK + +#Confidentiality Alice.secretData +#Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m +" /> +<TGConnectingPoint num="0" id="510" /> +<TGConnectingPoint num="1" id="511" /> +<TGConnectingPoint num="2" id="512" /> +<TGConnectingPoint num="3" id="513" /> +<TGConnectingPoint num="4" id="514" /> +<TGConnectingPoint num="5" id="515" /> +<TGConnectingPoint num="6" id="516" /> +<TGConnectingPoint num="7" id="517" /> +<TGConnectingPoint num="8" id="518" /> +<TGConnectingPoint num="9" id="519" /> +<TGConnectingPoint num="10" id="520" /> +<TGConnectingPoint num="11" id="521" /> +<TGConnectingPoint num="12" id="522" /> +<TGConnectingPoint num="13" id="523" /> +<TGConnectingPoint num="14" id="524" /> +<TGConnectingPoint num="15" id="525" /> +<extraparam> +<Line value="#PrivatePublicKeys Alice privK pubK" /> +<Line value="#PrivatePublicKeys Bob privK pubK" /> +<Line value="" /> +<Line value="#Confidentiality Alice.secretData" /> +<Line value="#Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="535" > +<cdparam x="260" y="373" /> +<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Message" /> +<TGConnectingPoint num="0" id="527" /> +<TGConnectingPoint num="1" id="528" /> +<TGConnectingPoint num="2" id="529" /> +<TGConnectingPoint num="3" id="530" /> +<TGConnectingPoint num="4" id="531" /> +<TGConnectingPoint num="5" id="532" /> +<TGConnectingPoint num="6" id="533" /> +<TGConnectingPoint num="7" id="534" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="544" > +<cdparam x="68" y="372" /> +<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="536" /> +<TGConnectingPoint num="1" id="537" /> +<TGConnectingPoint num="2" id="538" /> +<TGConnectingPoint num="3" id="539" /> +<TGConnectingPoint num="4" id="540" /> +<TGConnectingPoint num="5" id="541" /> +<TGConnectingPoint num="6" id="542" /> +<TGConnectingPoint num="7" id="543" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="619" > +<cdparam x="21" y="145" /> +<sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="System" /> +<TGConnectingPoint num="0" id="595" /> +<TGConnectingPoint num="1" id="596" /> +<TGConnectingPoint num="2" id="597" /> +<TGConnectingPoint num="3" id="598" /> +<TGConnectingPoint num="4" id="599" /> +<TGConnectingPoint num="5" id="600" /> +<TGConnectingPoint num="6" id="601" /> +<TGConnectingPoint num="7" id="602" /> +<TGConnectingPoint num="8" id="603" /> +<TGConnectingPoint num="9" id="604" /> +<TGConnectingPoint num="10" id="605" /> +<TGConnectingPoint num="11" id="606" /> +<TGConnectingPoint num="12" id="607" /> +<TGConnectingPoint num="13" id="608" /> +<TGConnectingPoint num="14" id="609" /> +<TGConnectingPoint num="15" id="610" /> +<TGConnectingPoint num="16" id="611" /> +<TGConnectingPoint num="17" id="612" /> +<TGConnectingPoint num="18" id="613" /> +<TGConnectingPoint num="19" id="614" /> +<TGConnectingPoint num="20" id="615" /> +<TGConnectingPoint num="21" id="616" /> +<TGConnectingPoint num="22" id="617" /> +<TGConnectingPoint num="23" id="618" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in chin(Message msg)" attached="true" /> +<Signal value="out chout(Message msg)" attached="true" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="569" > +<father id="619" num="0" /> +<cdparam x="263" y="233" /> +<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="545" /> +<TGConnectingPoint num="1" id="546" /> +<TGConnectingPoint num="2" id="547" /> +<TGConnectingPoint num="3" id="548" /> +<TGConnectingPoint num="4" id="549" /> +<TGConnectingPoint num="5" id="550" /> +<TGConnectingPoint num="6" id="551" /> +<TGConnectingPoint num="7" id="552" /> +<TGConnectingPoint num="8" id="553" /> +<TGConnectingPoint num="9" id="554" /> +<TGConnectingPoint num="10" id="555" /> +<TGConnectingPoint num="11" id="556" /> +<TGConnectingPoint num="12" id="557" /> +<TGConnectingPoint num="13" id="558" /> +<TGConnectingPoint num="14" id="559" /> +<TGConnectingPoint num="15" id="560" /> +<TGConnectingPoint num="16" id="561" /> +<TGConnectingPoint num="17" id="562" /> +<TGConnectingPoint num="18" id="563" /> +<TGConnectingPoint num="19" id="564" /> +<TGConnectingPoint num="20" id="565" /> +<TGConnectingPoint num="21" id="566" /> +<TGConnectingPoint num="22" id="567" /> +<TGConnectingPoint num="23" id="568" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="receivedData" value="" type="8" typeOther="" /> +<Attribute access="0" id="privK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" /> +<Method value="Message encrypt(Message msg, Key k)" /> +<Method value="Message decrypt(Message msg, Key k)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="594" > +<father id="619" num="1" /> +<cdparam x="36" y="233" /> +<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" /> +<infoparam name="Block0" value="Alice" /> +<TGConnectingPoint num="0" id="570" /> +<TGConnectingPoint num="1" id="571" /> +<TGConnectingPoint num="2" id="572" /> +<TGConnectingPoint num="3" id="573" /> +<TGConnectingPoint num="4" id="574" /> +<TGConnectingPoint num="5" id="575" /> +<TGConnectingPoint num="6" id="576" /> +<TGConnectingPoint num="7" id="577" /> +<TGConnectingPoint num="8" id="578" /> +<TGConnectingPoint num="9" id="579" /> +<TGConnectingPoint num="10" id="580" /> +<TGConnectingPoint num="11" id="581" /> +<TGConnectingPoint num="12" id="582" /> +<TGConnectingPoint num="13" id="583" /> +<TGConnectingPoint num="14" id="584" /> +<TGConnectingPoint num="15" id="585" /> +<TGConnectingPoint num="16" id="586" /> +<TGConnectingPoint num="17" id="587" /> +<TGConnectingPoint num="18" id="588" /> +<TGConnectingPoint num="19" id="589" /> +<TGConnectingPoint num="20" id="590" /> +<TGConnectingPoint num="21" id="591" /> +<TGConnectingPoint num="22" id="592" /> +<TGConnectingPoint num="23" id="593" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="privK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" /> +<Method value="Message encrypt(Message msg, Key k)" /> +<Method value="Message decrypt(Message msg, Key k)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="5100" id="621" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="620" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="628" > +<cdparam x="411" y="567" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="627" /> +<P1 x="411" y="567" id="831" /> +<P2 x="420" y="613" id="790" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="626" > +<father id="628" num="0" /> +<cdparam x="453" y="610" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="622" /> +<TGConnectingPoint num="1" id="623" /> +<TGConnectingPoint num="2" id="624" /> +<TGConnectingPoint num="3" id="625" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="635" > +<cdparam x="496" y="703" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="634" /> +<P1 x="420" y="663" id="795" /> +<P2 x="438" y="703" id="841" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="633" > +<father id="635" num="0" /> +<cdparam x="453" y="697" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="629" /> +<TGConnectingPoint num="1" id="630" /> +<TGConnectingPoint num="2" id="631" /> +<TGConnectingPoint num="3" id="632" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="642" > +<cdparam x="411" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to stop state" value="null" /> +<TGConnectingPoint num="0" id="641" /> +<P1 x="411" y="508" id="849" /> +<P2 x="411" y="537" id="830" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="640" > +<father id="642" num="0" /> +<cdparam x="411" y="548" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="636" /> +<TGConnectingPoint num="1" id="637" /> +<TGConnectingPoint num="2" id="638" /> +<TGConnectingPoint num="3" id="639" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="649" > +<cdparam x="411" y="389" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="648" /> +<P1 x="411" y="389" id="890" /> +<P2 x="411" y="468" id="844" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="647" > +<father id="649" num="0" /> +<cdparam x="439" y="414" /> +<sizeparam width="152" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="643" /> +<TGConnectingPoint num="1" id="644" /> +<TGConnectingPoint num="2" id="645" /> +<TGConnectingPoint num="3" id="646" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="sk = DH(bobPubK, privK)" /> +<actions value="m.data = secretData" /> +<actions value="m1 = sencrypt(m, sk)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="656" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="655" /> +<P1 x="407" y="70" id="925" /> +<P2 x="405" y="91" id="749" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="654" > +<father id="656" num="0" /> +<cdparam x="407" y="110" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="650" /> +<TGConnectingPoint num="1" id="651" /> +<TGConnectingPoint num="2" id="652" /> +<TGConnectingPoint num="3" id="653" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="663" > +<cdparam x="392" y="122" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="662" /> +<P1 x="392" y="122" id="777" /> +<P2 x="392" y="150" id="737" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="661" > +<father id="663" num="0" /> +<cdparam x="411" y="142" /> +<sizeparam width="126" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="657" /> +<TGConnectingPoint num="1" id="658" /> +<TGConnectingPoint num="2" id="659" /> +<TGConnectingPoint num="3" id="660" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="m.data = pubK.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="670" > +<cdparam x="391" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="669" /> +<P1 x="392" y="180" id="738" /> +<P2 x="380" y="224" id="713" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="668" > +<father id="670" num="0" /> +<cdparam x="390" y="188" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="664" /> +<TGConnectingPoint num="1" id="665" /> +<TGConnectingPoint num="2" id="666" /> +<TGConnectingPoint num="3" id="667" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="677" > +<cdparam x="380" y="258" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="676" /> +<P1 x="380" y="258" id="725" /> +<P2 x="386" y="287" id="685" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="675" > +<father id="677" num="0" /> +<cdparam x="377" y="267" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="671" /> +<TGConnectingPoint num="1" id="672" /> +<TGConnectingPoint num="2" id="673" /> +<TGConnectingPoint num="3" id="674" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="684" > +<cdparam x="375" y="306" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="683" /> +<P1 x="386" y="317" id="686" /> +<P2 x="377" y="349" id="892" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="682" > +<father id="684" num="0" /> +<cdparam x="396" y="336" /> +<sizeparam width="150" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="678" /> +<TGConnectingPoint num="1" id="679" /> +<TGConnectingPoint num="2" id="680" /> +<TGConnectingPoint num="3" id="681" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="bobPubK.data = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="695" > +<cdparam x="354" y="292" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="chin(m)" /> +<TGConnectingPoint num="0" id="685" /> +<TGConnectingPoint num="1" id="686" /> +<TGConnectingPoint num="2" id="687" /> +<TGConnectingPoint num="3" id="688" /> +<TGConnectingPoint num="4" id="689" /> +<TGConnectingPoint num="5" id="690" /> +<TGConnectingPoint num="6" id="691" /> +<TGConnectingPoint num="7" id="692" /> +<TGConnectingPoint num="8" id="693" /> +<TGConnectingPoint num="9" id="694" /> +</COMPONENT> + +<COMPONENT type="5106" id="736" > +<cdparam x="338" y="224" /> +<sizeparam width="114" height="34" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="receivingPubK" /> +<TGConnectingPoint num="0" id="696" /> +<TGConnectingPoint num="1" id="697" /> +<TGConnectingPoint num="2" id="698" /> +<TGConnectingPoint num="3" id="699" /> +<TGConnectingPoint num="4" id="700" /> +<TGConnectingPoint num="5" id="701" /> +<TGConnectingPoint num="6" id="702" /> +<TGConnectingPoint num="7" id="703" /> +<TGConnectingPoint num="8" id="704" /> +<TGConnectingPoint num="9" id="705" /> +<TGConnectingPoint num="10" id="706" /> +<TGConnectingPoint num="11" id="707" /> +<TGConnectingPoint num="12" id="708" /> +<TGConnectingPoint num="13" id="709" /> +<TGConnectingPoint num="14" id="710" /> +<TGConnectingPoint num="15" id="711" /> +<TGConnectingPoint num="16" id="712" /> +<TGConnectingPoint num="17" id="713" /> +<TGConnectingPoint num="18" id="714" /> +<TGConnectingPoint num="19" id="715" /> +<TGConnectingPoint num="20" id="716" /> +<TGConnectingPoint num="21" id="717" /> +<TGConnectingPoint num="22" id="718" /> +<TGConnectingPoint num="23" id="719" /> +<TGConnectingPoint num="24" id="720" /> +<TGConnectingPoint num="25" id="721" /> +<TGConnectingPoint num="26" id="722" /> +<TGConnectingPoint num="27" id="723" /> +<TGConnectingPoint num="28" id="724" /> +<TGConnectingPoint num="29" id="725" /> +<TGConnectingPoint num="30" id="726" /> +<TGConnectingPoint num="31" id="727" /> +<TGConnectingPoint num="32" id="728" /> +<TGConnectingPoint num="33" id="729" /> +<TGConnectingPoint num="34" id="730" /> +<TGConnectingPoint num="35" id="731" /> +<TGConnectingPoint num="36" id="732" /> +<TGConnectingPoint num="37" id="733" /> +<TGConnectingPoint num="38" id="734" /> +<TGConnectingPoint num="39" id="735" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="747" > +<cdparam x="359" y="155" /> +<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chout(m)" /> +<TGConnectingPoint num="0" id="737" /> +<TGConnectingPoint num="1" id="738" /> +<TGConnectingPoint num="2" id="739" /> +<TGConnectingPoint num="3" id="740" /> +<TGConnectingPoint num="4" id="741" /> +<TGConnectingPoint num="5" id="742" /> +<TGConnectingPoint num="6" id="743" /> +<TGConnectingPoint num="7" id="744" /> +<TGConnectingPoint num="8" id="745" /> +<TGConnectingPoint num="9" id="746" /> +</COMPONENT> + +<COMPONENT type="5106" id="788" > +<cdparam x="355" y="91" /> +<sizeparam width="100" height="31" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="sendingPubK" /> +<TGConnectingPoint num="0" id="748" /> +<TGConnectingPoint num="1" id="749" /> +<TGConnectingPoint num="2" id="750" /> +<TGConnectingPoint num="3" id="751" /> +<TGConnectingPoint num="4" id="752" /> +<TGConnectingPoint num="5" id="753" /> +<TGConnectingPoint num="6" id="754" /> +<TGConnectingPoint num="7" id="755" /> +<TGConnectingPoint num="8" id="756" /> +<TGConnectingPoint num="9" id="757" /> +<TGConnectingPoint num="10" id="758" /> +<TGConnectingPoint num="11" id="759" /> +<TGConnectingPoint num="12" id="760" /> +<TGConnectingPoint num="13" id="761" /> +<TGConnectingPoint num="14" id="762" /> +<TGConnectingPoint num="15" id="763" /> +<TGConnectingPoint num="16" id="764" /> +<TGConnectingPoint num="17" id="765" /> +<TGConnectingPoint num="18" id="766" /> +<TGConnectingPoint num="19" id="767" /> +<TGConnectingPoint num="20" id="768" /> +<TGConnectingPoint num="21" id="769" /> +<TGConnectingPoint num="22" id="770" /> +<TGConnectingPoint num="23" id="771" /> +<TGConnectingPoint num="24" id="772" /> +<TGConnectingPoint num="25" id="773" /> +<TGConnectingPoint num="26" id="774" /> +<TGConnectingPoint num="27" id="775" /> +<TGConnectingPoint num="28" id="776" /> +<TGConnectingPoint num="29" id="777" /> +<TGConnectingPoint num="30" id="778" /> +<TGConnectingPoint num="31" id="779" /> +<TGConnectingPoint num="32" id="780" /> +<TGConnectingPoint num="33" id="781" /> +<TGConnectingPoint num="34" id="782" /> +<TGConnectingPoint num="35" id="783" /> +<TGConnectingPoint num="36" id="784" /> +<TGConnectingPoint num="37" id="785" /> +<TGConnectingPoint num="38" id="786" /> +<TGConnectingPoint num="39" id="787" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="829" > +<cdparam x="370" y="613" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="beforeFinish" /> +<TGConnectingPoint num="0" id="789" /> +<TGConnectingPoint num="1" id="790" /> +<TGConnectingPoint num="2" id="791" /> +<TGConnectingPoint num="3" id="792" /> +<TGConnectingPoint num="4" id="793" /> +<TGConnectingPoint num="5" id="794" /> +<TGConnectingPoint num="6" id="795" /> +<TGConnectingPoint num="7" id="796" /> +<TGConnectingPoint num="8" id="797" /> +<TGConnectingPoint num="9" id="798" /> +<TGConnectingPoint num="10" id="799" /> +<TGConnectingPoint num="11" id="800" /> +<TGConnectingPoint num="12" id="801" /> +<TGConnectingPoint num="13" id="802" /> +<TGConnectingPoint num="14" id="803" /> +<TGConnectingPoint num="15" id="804" /> +<TGConnectingPoint num="16" id="805" /> +<TGConnectingPoint num="17" id="806" /> +<TGConnectingPoint num="18" id="807" /> +<TGConnectingPoint num="19" id="808" /> +<TGConnectingPoint num="20" id="809" /> +<TGConnectingPoint num="21" id="810" /> +<TGConnectingPoint num="22" id="811" /> +<TGConnectingPoint num="23" id="812" /> +<TGConnectingPoint num="24" id="813" /> +<TGConnectingPoint num="25" id="814" /> +<TGConnectingPoint num="26" id="815" /> +<TGConnectingPoint num="27" id="816" /> +<TGConnectingPoint num="28" id="817" /> +<TGConnectingPoint num="29" id="818" /> +<TGConnectingPoint num="30" id="819" /> +<TGConnectingPoint num="31" id="820" /> +<TGConnectingPoint num="32" id="821" /> +<TGConnectingPoint num="33" id="822" /> +<TGConnectingPoint num="34" id="823" /> +<TGConnectingPoint num="35" id="824" /> +<TGConnectingPoint num="36" id="825" /> +<TGConnectingPoint num="37" id="826" /> +<TGConnectingPoint num="38" id="827" /> +<TGConnectingPoint num="39" id="828" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="840" > +<cdparam x="374" y="542" /> +<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chout(m1)" /> +<TGConnectingPoint num="0" id="830" /> +<TGConnectingPoint num="1" id="831" /> +<TGConnectingPoint num="2" id="832" /> +<TGConnectingPoint num="3" id="833" /> +<TGConnectingPoint num="4" id="834" /> +<TGConnectingPoint num="5" id="835" /> +<TGConnectingPoint num="6" id="836" /> +<TGConnectingPoint num="7" id="837" /> +<TGConnectingPoint num="8" id="838" /> +<TGConnectingPoint num="9" id="839" /> +</COMPONENT> + +<COMPONENT type="5101" id="842" > +<cdparam x="428" y="708" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="841" /> +</COMPONENT> + +<COMPONENT type="5106" id="883" > +<cdparam x="340" y="468" /> +<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="sendingMessage" /> +<TGConnectingPoint num="0" id="843" /> +<TGConnectingPoint num="1" id="844" /> +<TGConnectingPoint num="2" id="845" /> +<TGConnectingPoint num="3" id="846" /> +<TGConnectingPoint num="4" id="847" /> +<TGConnectingPoint num="5" id="848" /> +<TGConnectingPoint num="6" id="849" /> +<TGConnectingPoint num="7" id="850" /> +<TGConnectingPoint num="8" id="851" /> +<TGConnectingPoint num="9" id="852" /> +<TGConnectingPoint num="10" id="853" /> +<TGConnectingPoint num="11" id="854" /> +<TGConnectingPoint num="12" id="855" /> +<TGConnectingPoint num="13" id="856" /> +<TGConnectingPoint num="14" id="857" /> +<TGConnectingPoint num="15" id="858" /> +<TGConnectingPoint num="16" id="859" /> +<TGConnectingPoint num="17" id="860" /> +<TGConnectingPoint num="18" id="861" /> +<TGConnectingPoint num="19" id="862" /> +<TGConnectingPoint num="20" id="863" /> +<TGConnectingPoint num="21" id="864" /> +<TGConnectingPoint num="22" id="865" /> +<TGConnectingPoint num="23" id="866" /> +<TGConnectingPoint num="24" id="867" /> +<TGConnectingPoint num="25" id="868" /> +<TGConnectingPoint num="26" id="869" /> +<TGConnectingPoint num="27" id="870" /> +<TGConnectingPoint num="28" id="871" /> +<TGConnectingPoint num="29" id="872" /> +<TGConnectingPoint num="30" id="873" /> +<TGConnectingPoint num="31" id="874" /> +<TGConnectingPoint num="32" id="875" /> +<TGConnectingPoint num="33" id="876" /> +<TGConnectingPoint num="34" id="877" /> +<TGConnectingPoint num="35" id="878" /> +<TGConnectingPoint num="36" id="879" /> +<TGConnectingPoint num="37" id="880" /> +<TGConnectingPoint num="38" id="881" /> +<TGConnectingPoint num="39" id="882" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="924" > +<cdparam x="344" y="349" /> +<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="makingMessage" /> +<TGConnectingPoint num="0" id="884" /> +<TGConnectingPoint num="1" id="885" /> +<TGConnectingPoint num="2" id="886" /> +<TGConnectingPoint num="3" id="887" /> +<TGConnectingPoint num="4" id="888" /> +<TGConnectingPoint num="5" id="889" /> +<TGConnectingPoint num="6" id="890" /> +<TGConnectingPoint num="7" id="891" /> +<TGConnectingPoint num="8" id="892" /> +<TGConnectingPoint num="9" id="893" /> +<TGConnectingPoint num="10" id="894" /> +<TGConnectingPoint num="11" id="895" /> +<TGConnectingPoint num="12" id="896" /> +<TGConnectingPoint num="13" id="897" /> +<TGConnectingPoint num="14" id="898" /> +<TGConnectingPoint num="15" id="899" /> +<TGConnectingPoint num="16" id="900" /> +<TGConnectingPoint num="17" id="901" /> +<TGConnectingPoint num="18" id="902" /> +<TGConnectingPoint num="19" id="903" /> +<TGConnectingPoint num="20" id="904" /> +<TGConnectingPoint num="21" id="905" /> +<TGConnectingPoint num="22" id="906" /> +<TGConnectingPoint num="23" id="907" /> +<TGConnectingPoint num="24" id="908" /> +<TGConnectingPoint num="25" id="909" /> +<TGConnectingPoint num="26" id="910" /> +<TGConnectingPoint num="27" id="911" /> +<TGConnectingPoint num="28" id="912" /> +<TGConnectingPoint num="29" id="913" /> +<TGConnectingPoint num="30" id="914" /> +<TGConnectingPoint num="31" id="915" /> +<TGConnectingPoint num="32" id="916" /> +<TGConnectingPoint num="33" id="917" /> +<TGConnectingPoint num="34" id="918" /> +<TGConnectingPoint num="35" id="919" /> +<TGConnectingPoint num="36" id="920" /> +<TGConnectingPoint num="37" id="921" /> +<TGConnectingPoint num="38" id="922" /> +<TGConnectingPoint num="39" id="923" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="926" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="925" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="933" > +<cdparam x="418" y="632" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="932" /> +<P1 x="418" y="632" id="1100" /> +<P2 x="422" y="677" id="1136" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="931" > +<father id="933" num="0" /> +<cdparam x="433" y="656" /> +<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="927" /> +<TGConnectingPoint num="1" id="928" /> +<TGConnectingPoint num="2" id="929" /> +<TGConnectingPoint num="3" id="930" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="receivedData = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="940" > +<cdparam x="409" y="526" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="939" /> +<P1 x="409" y="526" id="1182" /> +<P2 x="418" y="592" id="1095" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="938" > +<father id="940" num="0" /> +<cdparam x="431" y="551" /> +<sizeparam width="157" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="934" /> +<TGConnectingPoint num="1" id="935" /> +<TGConnectingPoint num="2" id="936" /> +<TGConnectingPoint num="3" id="937" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="sk = DH(alicePubK, privK)" /> +<actions value="m = sdecrypt(m2, sk)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="947" > +<cdparam x="408" y="454" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="946" /> +<P1 x="408" y="454" id="1218" /> +<P2 x="409" y="486" id="1177" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="945" > +<father id="947" num="0" /> +<cdparam x="408" y="494" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="941" /> +<TGConnectingPoint num="1" id="942" /> +<TGConnectingPoint num="2" id="943" /> +<TGConnectingPoint num="3" id="944" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="954" > +<cdparam x="408" y="394" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="953" /> +<P1 x="408" y="394" id="1234" /> +<P2 x="408" y="424" id="1217" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="952" > +<father id="954" num="0" /> +<cdparam x="408" y="434" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="948" /> +<TGConnectingPoint num="1" id="949" /> +<TGConnectingPoint num="2" id="950" /> +<TGConnectingPoint num="3" id="951" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="961" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="960" /> +<P1 x="407" y="70" id="1269" /> +<P2 x="407" y="95" id="1054" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="959" > +<father id="961" num="0" /> +<cdparam x="407" y="110" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="955" /> +<TGConnectingPoint num="1" id="956" /> +<TGConnectingPoint num="2" id="957" /> +<TGConnectingPoint num="3" id="958" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="968" > +<cdparam x="407" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="967" /> +<P1 x="407" y="127" id="1059" /> +<P2 x="407" y="153" id="1042" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="966" > +<father id="968" num="0" /> +<cdparam x="428" y="145" /> +<sizeparam width="126" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="962" /> +<TGConnectingPoint num="1" id="963" /> +<TGConnectingPoint num="2" id="964" /> +<TGConnectingPoint num="3" id="965" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="m.data = pubK.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="975" > +<cdparam x="407" y="183" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="974" /> +<P1 x="407" y="183" id="1043" /> +<P2 x="408" y="213" id="1002" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="973" > +<father id="975" num="0" /> +<cdparam x="408" y="199" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="969" /> +<TGConnectingPoint num="1" id="970" /> +<TGConnectingPoint num="2" id="971" /> +<TGConnectingPoint num="3" id="972" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="982" > +<cdparam x="409" y="265" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="981" /> +<P1 x="408" y="251" id="1007" /> +<P2 x="406" y="285" id="990" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="980" > +<father id="982" num="0" /> +<cdparam x="409" y="281" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="976" /> +<TGConnectingPoint num="1" id="977" /> +<TGConnectingPoint num="2" id="978" /> +<TGConnectingPoint num="3" id="979" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="989" > +<cdparam x="410" y="327" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="988" /> +<P1 x="406" y="315" id="991" /> +<P2 x="408" y="354" id="1229" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="987" > +<father id="989" num="0" /> +<cdparam x="426" y="337" /> +<sizeparam width="155" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="983" /> +<TGConnectingPoint num="1" id="984" /> +<TGConnectingPoint num="2" id="985" /> +<TGConnectingPoint num="3" id="986" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="alicePubK.data = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="1000" > +<cdparam x="374" y="290" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="chin(m)" /> +<TGConnectingPoint num="0" id="990" /> +<TGConnectingPoint num="1" id="991" /> +<TGConnectingPoint num="2" id="992" /> +<TGConnectingPoint num="3" id="993" /> +<TGConnectingPoint num="4" id="994" /> +<TGConnectingPoint num="5" id="995" /> +<TGConnectingPoint num="6" id="996" /> +<TGConnectingPoint num="7" id="997" /> +<TGConnectingPoint num="8" id="998" /> +<TGConnectingPoint num="9" id="999" /> +</COMPONENT> + +<COMPONENT type="5106" id="1041" > +<cdparam x="347" y="213" /> +<sizeparam width="123" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="receivingPubK" /> +<TGConnectingPoint num="0" id="1001" /> +<TGConnectingPoint num="1" id="1002" /> +<TGConnectingPoint num="2" id="1003" /> +<TGConnectingPoint num="3" id="1004" /> +<TGConnectingPoint num="4" id="1005" /> +<TGConnectingPoint num="5" id="1006" /> +<TGConnectingPoint num="6" id="1007" /> +<TGConnectingPoint num="7" id="1008" /> +<TGConnectingPoint num="8" id="1009" /> +<TGConnectingPoint num="9" id="1010" /> +<TGConnectingPoint num="10" id="1011" /> +<TGConnectingPoint num="11" id="1012" /> +<TGConnectingPoint num="12" id="1013" /> +<TGConnectingPoint num="13" id="1014" /> +<TGConnectingPoint num="14" id="1015" /> +<TGConnectingPoint num="15" id="1016" /> +<TGConnectingPoint num="16" id="1017" /> +<TGConnectingPoint num="17" id="1018" /> +<TGConnectingPoint num="18" id="1019" /> +<TGConnectingPoint num="19" id="1020" /> +<TGConnectingPoint num="20" id="1021" /> +<TGConnectingPoint num="21" id="1022" /> +<TGConnectingPoint num="22" id="1023" /> +<TGConnectingPoint num="23" id="1024" /> +<TGConnectingPoint num="24" id="1025" /> +<TGConnectingPoint num="25" id="1026" /> +<TGConnectingPoint num="26" id="1027" /> +<TGConnectingPoint num="27" id="1028" /> +<TGConnectingPoint num="28" id="1029" /> +<TGConnectingPoint num="29" id="1030" /> +<TGConnectingPoint num="30" id="1031" /> +<TGConnectingPoint num="31" id="1032" /> +<TGConnectingPoint num="32" id="1033" /> +<TGConnectingPoint num="33" id="1034" /> +<TGConnectingPoint num="34" id="1035" /> +<TGConnectingPoint num="35" id="1036" /> +<TGConnectingPoint num="36" id="1037" /> +<TGConnectingPoint num="37" id="1038" /> +<TGConnectingPoint num="38" id="1039" /> +<TGConnectingPoint num="39" id="1040" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="1052" > +<cdparam x="374" y="158" /> +<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chout(m)" /> +<TGConnectingPoint num="0" id="1042" /> +<TGConnectingPoint num="1" id="1043" /> +<TGConnectingPoint num="2" id="1044" /> +<TGConnectingPoint num="3" id="1045" /> +<TGConnectingPoint num="4" id="1046" /> +<TGConnectingPoint num="5" id="1047" /> +<TGConnectingPoint num="6" id="1048" /> +<TGConnectingPoint num="7" id="1049" /> +<TGConnectingPoint num="8" id="1050" /> +<TGConnectingPoint num="9" id="1051" /> +</COMPONENT> + +<COMPONENT type="5106" id="1093" > +<cdparam x="351" y="95" /> +<sizeparam width="113" height="32" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="sendingPubK" /> +<TGConnectingPoint num="0" id="1053" /> +<TGConnectingPoint num="1" id="1054" /> +<TGConnectingPoint num="2" id="1055" /> +<TGConnectingPoint num="3" id="1056" /> +<TGConnectingPoint num="4" id="1057" /> +<TGConnectingPoint num="5" id="1058" /> +<TGConnectingPoint num="6" id="1059" /> +<TGConnectingPoint num="7" id="1060" /> +<TGConnectingPoint num="8" id="1061" /> +<TGConnectingPoint num="9" id="1062" /> +<TGConnectingPoint num="10" id="1063" /> +<TGConnectingPoint num="11" id="1064" /> +<TGConnectingPoint num="12" id="1065" /> +<TGConnectingPoint num="13" id="1066" /> +<TGConnectingPoint num="14" id="1067" /> +<TGConnectingPoint num="15" id="1068" /> +<TGConnectingPoint num="16" id="1069" /> +<TGConnectingPoint num="17" id="1070" /> +<TGConnectingPoint num="18" id="1071" /> +<TGConnectingPoint num="19" id="1072" /> +<TGConnectingPoint num="20" id="1073" /> +<TGConnectingPoint num="21" id="1074" /> +<TGConnectingPoint num="22" id="1075" /> +<TGConnectingPoint num="23" id="1076" /> +<TGConnectingPoint num="24" id="1077" /> +<TGConnectingPoint num="25" id="1078" /> +<TGConnectingPoint num="26" id="1079" /> +<TGConnectingPoint num="27" id="1080" /> +<TGConnectingPoint num="28" id="1081" /> +<TGConnectingPoint num="29" id="1082" /> +<TGConnectingPoint num="30" id="1083" /> +<TGConnectingPoint num="31" id="1084" /> +<TGConnectingPoint num="32" id="1085" /> +<TGConnectingPoint num="33" id="1086" /> +<TGConnectingPoint num="34" id="1087" /> +<TGConnectingPoint num="35" id="1088" /> +<TGConnectingPoint num="36" id="1089" /> +<TGConnectingPoint num="37" id="1090" /> +<TGConnectingPoint num="38" id="1091" /> +<TGConnectingPoint num="39" id="1092" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1134" > +<cdparam x="329" y="592" /> +<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="messageDecrypted" /> +<TGConnectingPoint num="0" id="1094" /> +<TGConnectingPoint num="1" id="1095" /> +<TGConnectingPoint num="2" id="1096" /> +<TGConnectingPoint num="3" id="1097" /> +<TGConnectingPoint num="4" id="1098" /> +<TGConnectingPoint num="5" id="1099" /> +<TGConnectingPoint num="6" id="1100" /> +<TGConnectingPoint num="7" id="1101" /> +<TGConnectingPoint num="8" id="1102" /> +<TGConnectingPoint num="9" id="1103" /> +<TGConnectingPoint num="10" id="1104" /> +<TGConnectingPoint num="11" id="1105" /> +<TGConnectingPoint num="12" id="1106" /> +<TGConnectingPoint num="13" id="1107" /> +<TGConnectingPoint num="14" id="1108" /> +<TGConnectingPoint num="15" id="1109" /> +<TGConnectingPoint num="16" id="1110" /> +<TGConnectingPoint num="17" id="1111" /> +<TGConnectingPoint num="18" id="1112" /> +<TGConnectingPoint num="19" id="1113" /> +<TGConnectingPoint num="20" id="1114" /> +<TGConnectingPoint num="21" id="1115" /> +<TGConnectingPoint num="22" id="1116" /> +<TGConnectingPoint num="23" id="1117" /> +<TGConnectingPoint num="24" id="1118" /> +<TGConnectingPoint num="25" id="1119" /> +<TGConnectingPoint num="26" id="1120" /> +<TGConnectingPoint num="27" id="1121" /> +<TGConnectingPoint num="28" id="1122" /> +<TGConnectingPoint num="29" id="1123" /> +<TGConnectingPoint num="30" id="1124" /> +<TGConnectingPoint num="31" id="1125" /> +<TGConnectingPoint num="32" id="1126" /> +<TGConnectingPoint num="33" id="1127" /> +<TGConnectingPoint num="34" id="1128" /> +<TGConnectingPoint num="35" id="1129" /> +<TGConnectingPoint num="36" id="1130" /> +<TGConnectingPoint num="37" id="1131" /> +<TGConnectingPoint num="38" id="1132" /> +<TGConnectingPoint num="39" id="1133" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1175" > +<cdparam x="352" y="677" /> +<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="SecretDataReceived" /> +<TGConnectingPoint num="0" id="1135" /> +<TGConnectingPoint num="1" id="1136" /> +<TGConnectingPoint num="2" id="1137" /> +<TGConnectingPoint num="3" id="1138" /> +<TGConnectingPoint num="4" id="1139" /> +<TGConnectingPoint num="5" id="1140" /> +<TGConnectingPoint num="6" id="1141" /> +<TGConnectingPoint num="7" id="1142" /> +<TGConnectingPoint num="8" id="1143" /> +<TGConnectingPoint num="9" id="1144" /> +<TGConnectingPoint num="10" id="1145" /> +<TGConnectingPoint num="11" id="1146" /> +<TGConnectingPoint num="12" id="1147" /> +<TGConnectingPoint num="13" id="1148" /> +<TGConnectingPoint num="14" id="1149" /> +<TGConnectingPoint num="15" id="1150" /> +<TGConnectingPoint num="16" id="1151" /> +<TGConnectingPoint num="17" id="1152" /> +<TGConnectingPoint num="18" id="1153" /> +<TGConnectingPoint num="19" id="1154" /> +<TGConnectingPoint num="20" id="1155" /> +<TGConnectingPoint num="21" id="1156" /> +<TGConnectingPoint num="22" id="1157" /> +<TGConnectingPoint num="23" id="1158" /> +<TGConnectingPoint num="24" id="1159" /> +<TGConnectingPoint num="25" id="1160" /> +<TGConnectingPoint num="26" id="1161" /> +<TGConnectingPoint num="27" id="1162" /> +<TGConnectingPoint num="28" id="1163" /> +<TGConnectingPoint num="29" id="1164" /> +<TGConnectingPoint num="30" id="1165" /> +<TGConnectingPoint num="31" id="1166" /> +<TGConnectingPoint num="32" id="1167" /> +<TGConnectingPoint num="33" id="1168" /> +<TGConnectingPoint num="34" id="1169" /> +<TGConnectingPoint num="35" id="1170" /> +<TGConnectingPoint num="36" id="1171" /> +<TGConnectingPoint num="37" id="1172" /> +<TGConnectingPoint num="38" id="1173" /> +<TGConnectingPoint num="39" id="1174" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1216" > +<cdparam x="338" y="486" /> +<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="messageDecrypt" /> +<TGConnectingPoint num="0" id="1176" /> +<TGConnectingPoint num="1" id="1177" /> +<TGConnectingPoint num="2" id="1178" /> +<TGConnectingPoint num="3" id="1179" /> +<TGConnectingPoint num="4" id="1180" /> +<TGConnectingPoint num="5" id="1181" /> +<TGConnectingPoint num="6" id="1182" /> +<TGConnectingPoint num="7" id="1183" /> +<TGConnectingPoint num="8" id="1184" /> +<TGConnectingPoint num="9" id="1185" /> +<TGConnectingPoint num="10" id="1186" /> +<TGConnectingPoint num="11" id="1187" /> +<TGConnectingPoint num="12" id="1188" /> +<TGConnectingPoint num="13" id="1189" /> +<TGConnectingPoint num="14" id="1190" /> +<TGConnectingPoint num="15" id="1191" /> +<TGConnectingPoint num="16" id="1192" /> +<TGConnectingPoint num="17" id="1193" /> +<TGConnectingPoint num="18" id="1194" /> +<TGConnectingPoint num="19" id="1195" /> +<TGConnectingPoint num="20" id="1196" /> +<TGConnectingPoint num="21" id="1197" /> +<TGConnectingPoint num="22" id="1198" /> +<TGConnectingPoint num="23" id="1199" /> +<TGConnectingPoint num="24" id="1200" /> +<TGConnectingPoint num="25" id="1201" /> +<TGConnectingPoint num="26" id="1202" /> +<TGConnectingPoint num="27" id="1203" /> +<TGConnectingPoint num="28" id="1204" /> +<TGConnectingPoint num="29" id="1205" /> +<TGConnectingPoint num="30" id="1206" /> +<TGConnectingPoint num="31" id="1207" /> +<TGConnectingPoint num="32" id="1208" /> +<TGConnectingPoint num="33" id="1209" /> +<TGConnectingPoint num="34" id="1210" /> +<TGConnectingPoint num="35" id="1211" /> +<TGConnectingPoint num="36" id="1212" /> +<TGConnectingPoint num="37" id="1213" /> +<TGConnectingPoint num="38" id="1214" /> +<TGConnectingPoint num="39" id="1215" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1227" > +<cdparam x="372" y="429" /> +<sizeparam width="73" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chin(m2)" /> +<TGConnectingPoint num="0" id="1217" /> +<TGConnectingPoint num="1" id="1218" /> +<TGConnectingPoint num="2" id="1219" /> +<TGConnectingPoint num="3" id="1220" /> +<TGConnectingPoint num="4" id="1221" /> +<TGConnectingPoint num="5" id="1222" /> +<TGConnectingPoint num="6" id="1223" /> +<TGConnectingPoint num="7" id="1224" /> +<TGConnectingPoint num="8" id="1225" /> +<TGConnectingPoint num="9" id="1226" /> +</COMPONENT> + +<COMPONENT type="5106" id="1268" > +<cdparam x="342" y="354" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="waitingForMessage" /> +<TGConnectingPoint num="0" id="1228" /> +<TGConnectingPoint num="1" id="1229" /> +<TGConnectingPoint num="2" id="1230" /> +<TGConnectingPoint num="3" id="1231" /> +<TGConnectingPoint num="4" id="1232" /> +<TGConnectingPoint num="5" id="1233" /> +<TGConnectingPoint num="6" id="1234" /> +<TGConnectingPoint num="7" id="1235" /> +<TGConnectingPoint num="8" id="1236" /> +<TGConnectingPoint num="9" id="1237" /> +<TGConnectingPoint num="10" id="1238" /> +<TGConnectingPoint num="11" id="1239" /> +<TGConnectingPoint num="12" id="1240" /> +<TGConnectingPoint num="13" id="1241" /> +<TGConnectingPoint num="14" id="1242" /> +<TGConnectingPoint num="15" id="1243" /> +<TGConnectingPoint num="16" id="1244" /> +<TGConnectingPoint num="17" id="1245" /> +<TGConnectingPoint num="18" id="1246" /> +<TGConnectingPoint num="19" id="1247" /> +<TGConnectingPoint num="20" id="1248" /> +<TGConnectingPoint num="21" id="1249" /> +<TGConnectingPoint num="22" id="1250" /> +<TGConnectingPoint num="23" id="1251" /> +<TGConnectingPoint num="24" id="1252" /> +<TGConnectingPoint num="25" id="1253" /> +<TGConnectingPoint num="26" id="1254" /> +<TGConnectingPoint num="27" id="1255" /> +<TGConnectingPoint num="28" id="1256" /> +<TGConnectingPoint num="29" id="1257" /> +<TGConnectingPoint num="30" id="1258" /> +<TGConnectingPoint num="31" id="1259" /> +<TGConnectingPoint num="32" id="1260" /> +<TGConnectingPoint num="33" id="1261" /> +<TGConnectingPoint num="34" id="1262" /> +<TGConnectingPoint num="35" id="1263" /> +<TGConnectingPoint num="36" id="1264" /> +<TGConnectingPoint num="37" id="1265" /> +<TGConnectingPoint num="38" id="1266" /> +<TGConnectingPoint num="39" id="1267" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1270" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1269" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +<Modeling type="AVATAR Design" nameTab="Example DH with Certificate" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="System;Alice;Bob;CA;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="1276" > +<cdparam x="568" y="220" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Block0 to Block0" value="" /> +<TGConnectingPoint num="0" id="1273" /> +<TGConnectingPoint num="1" id="1274" /> +<TGConnectingPoint num="2" id="1275" /> +<P1 x="459" y="106" id="1398" /> +<P2 x="459" y="192" id="1391" /> +<Point x="492" y="119" /> +<Point x="492" y="174" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in chin(Message msg)" /> +<osd value="out chout(Message msg)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="1271" > +<father id="1276" num="0" /> +<cdparam x="492" y="119" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1272" > +<father id="1276" num="1" /> +<cdparam x="492" y="174" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<COMPONENT type="302" id="1293" > +<cdparam x="566" y="94" /> +<sizeparam width="455" height="188" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Proverif Pragma" value="#PrivatePublicKeys Alice privK pubK +#PrivatePublicKeys Bob privK pubK +#PrivatePublicKeys CA privK pubK +#InitialSystemKnowledge Bob.aliceID CA.aliceID +#InitialSystemKnowledge Alice.bobID CA.bobID +#InitialSystemKnowledge Alice.pubK CA.alicePubK +#InitialSystemKnowledge Bob.pubK CA.bobPubK +#InitialSystemKnowledge CA.pubK Alice.CAPubK Bob.CAPubK + +#Confidentiality Alice.secretData +#Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m +" /> +<TGConnectingPoint num="0" id="1277" /> +<TGConnectingPoint num="1" id="1278" /> +<TGConnectingPoint num="2" id="1279" /> +<TGConnectingPoint num="3" id="1280" /> +<TGConnectingPoint num="4" id="1281" /> +<TGConnectingPoint num="5" id="1282" /> +<TGConnectingPoint num="6" id="1283" /> +<TGConnectingPoint num="7" id="1284" /> +<TGConnectingPoint num="8" id="1285" /> +<TGConnectingPoint num="9" id="1286" /> +<TGConnectingPoint num="10" id="1287" /> +<TGConnectingPoint num="11" id="1288" /> +<TGConnectingPoint num="12" id="1289" /> +<TGConnectingPoint num="13" id="1290" /> +<TGConnectingPoint num="14" id="1291" /> +<TGConnectingPoint num="15" id="1292" /> +<extraparam> +<Line value="#PrivatePublicKeys Alice privK pubK" /> +<Line value="#PrivatePublicKeys Bob privK pubK" /> +<Line value="#PrivatePublicKeys CA privK pubK" /> +<Line value="#InitialSystemKnowledge Bob.aliceID CA.aliceID" /> +<Line value="#InitialSystemKnowledge Alice.bobID CA.bobID" /> +<Line value="#InitialSystemKnowledge Alice.pubK CA.alicePubK" /> +<Line value="#InitialSystemKnowledge Bob.pubK CA.bobPubK" /> +<Line value="#InitialSystemKnowledge CA.pubK Alice.CAPubK Bob.CAPubK" /> +<Line value="" /> +<Line value="#Confidentiality Alice.secretData" /> +<Line value="#Authenticity Alice.sendingMessage.m Bob.messageDecrypted.m" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="1302" > +<cdparam x="260" y="373" /> +<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Message" /> +<TGConnectingPoint num="0" id="1294" /> +<TGConnectingPoint num="1" id="1295" /> +<TGConnectingPoint num="2" id="1296" /> +<TGConnectingPoint num="3" id="1297" /> +<TGConnectingPoint num="4" id="1298" /> +<TGConnectingPoint num="5" id="1299" /> +<TGConnectingPoint num="6" id="1300" /> +<TGConnectingPoint num="7" id="1301" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="1311" > +<cdparam x="68" y="372" /> +<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="1303" /> +<TGConnectingPoint num="1" id="1304" /> +<TGConnectingPoint num="2" id="1305" /> +<TGConnectingPoint num="3" id="1306" /> +<TGConnectingPoint num="4" id="1307" /> +<TGConnectingPoint num="5" id="1308" /> +<TGConnectingPoint num="6" id="1309" /> +<TGConnectingPoint num="7" id="1310" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="1411" > +<cdparam x="21" y="20" /> +<sizeparam width="438" height="344" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="System" /> +<TGConnectingPoint num="0" id="1387" /> +<TGConnectingPoint num="1" id="1388" /> +<TGConnectingPoint num="2" id="1389" /> +<TGConnectingPoint num="3" id="1390" /> +<TGConnectingPoint num="4" id="1391" /> +<TGConnectingPoint num="5" id="1392" /> +<TGConnectingPoint num="6" id="1393" /> +<TGConnectingPoint num="7" id="1394" /> +<TGConnectingPoint num="8" id="1395" /> +<TGConnectingPoint num="9" id="1396" /> +<TGConnectingPoint num="10" id="1397" /> +<TGConnectingPoint num="11" id="1398" /> +<TGConnectingPoint num="12" id="1399" /> +<TGConnectingPoint num="13" id="1400" /> +<TGConnectingPoint num="14" id="1401" /> +<TGConnectingPoint num="15" id="1402" /> +<TGConnectingPoint num="16" id="1403" /> +<TGConnectingPoint num="17" id="1404" /> +<TGConnectingPoint num="18" id="1405" /> +<TGConnectingPoint num="19" id="1406" /> +<TGConnectingPoint num="20" id="1407" /> +<TGConnectingPoint num="21" id="1408" /> +<TGConnectingPoint num="22" id="1409" /> +<TGConnectingPoint num="23" id="1410" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in chin(Message msg)" attached="true" /> +<Signal value="out chout(Message msg)" attached="true" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="1336" > +<father id="1411" num="0" /> +<cdparam x="115" y="249" /> +<sizeparam width="261" height="83" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="177" minY="0" maxY="261" /> +<infoparam name="Block0" value="CA" /> +<TGConnectingPoint num="0" id="1312" /> +<TGConnectingPoint num="1" id="1313" /> +<TGConnectingPoint num="2" id="1314" /> +<TGConnectingPoint num="3" id="1315" /> +<TGConnectingPoint num="4" id="1316" /> +<TGConnectingPoint num="5" id="1317" /> +<TGConnectingPoint num="6" id="1318" /> +<TGConnectingPoint num="7" id="1319" /> +<TGConnectingPoint num="8" id="1320" /> +<TGConnectingPoint num="9" id="1321" /> +<TGConnectingPoint num="10" id="1322" /> +<TGConnectingPoint num="11" id="1323" /> +<TGConnectingPoint num="12" id="1324" /> +<TGConnectingPoint num="13" id="1325" /> +<TGConnectingPoint num="14" id="1326" /> +<TGConnectingPoint num="15" id="1327" /> +<TGConnectingPoint num="16" id="1328" /> +<TGConnectingPoint num="17" id="1329" /> +<TGConnectingPoint num="18" id="1330" /> +<TGConnectingPoint num="19" id="1331" /> +<TGConnectingPoint num="20" id="1332" /> +<TGConnectingPoint num="21" id="1333" /> +<TGConnectingPoint num="22" id="1334" /> +<TGConnectingPoint num="23" id="1335" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="privK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="aliceID" value="" type="8" typeOther="" /> +<Attribute access="0" id="bobID" value="" type="8" typeOther="" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="newK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="newCert" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="newID" value="" type="8" typeOther="" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="1361" > +<father id="1411" num="1" /> +<cdparam x="36" y="108" /> +<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="223" minY="0" maxY="218" /> +<infoparam name="Block0" value="Alice" /> +<TGConnectingPoint num="0" id="1337" /> +<TGConnectingPoint num="1" id="1338" /> +<TGConnectingPoint num="2" id="1339" /> +<TGConnectingPoint num="3" id="1340" /> +<TGConnectingPoint num="4" id="1341" /> +<TGConnectingPoint num="5" id="1342" /> +<TGConnectingPoint num="6" id="1343" /> +<TGConnectingPoint num="7" id="1344" /> +<TGConnectingPoint num="8" id="1345" /> +<TGConnectingPoint num="9" id="1346" /> +<TGConnectingPoint num="10" id="1347" /> +<TGConnectingPoint num="11" id="1348" /> +<TGConnectingPoint num="12" id="1349" /> +<TGConnectingPoint num="13" id="1350" /> +<TGConnectingPoint num="14" id="1351" /> +<TGConnectingPoint num="15" id="1352" /> +<TGConnectingPoint num="16" id="1353" /> +<TGConnectingPoint num="17" id="1354" /> +<TGConnectingPoint num="18" id="1355" /> +<TGConnectingPoint num="19" id="1356" /> +<TGConnectingPoint num="20" id="1357" /> +<TGConnectingPoint num="21" id="1358" /> +<TGConnectingPoint num="22" id="1359" /> +<TGConnectingPoint num="23" id="1360" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="secretData" value="" type="8" typeOther="" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="privK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="bobID" value="" type="8" typeOther="" /> +<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sig" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="certOK" value="" type="4" typeOther="" /> +<Method value="Message encrypt(Message msg, Key k)" /> +<Method value="Message decrypt(Message msg, Key k)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="1386" > +<father id="1411" num="2" /> +<cdparam x="263" y="108" /> +<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="299" minY="0" maxY="218" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="1362" /> +<TGConnectingPoint num="1" id="1363" /> +<TGConnectingPoint num="2" id="1364" /> +<TGConnectingPoint num="3" id="1365" /> +<TGConnectingPoint num="4" id="1366" /> +<TGConnectingPoint num="5" id="1367" /> +<TGConnectingPoint num="6" id="1368" /> +<TGConnectingPoint num="7" id="1369" /> +<TGConnectingPoint num="8" id="1370" /> +<TGConnectingPoint num="9" id="1371" /> +<TGConnectingPoint num="10" id="1372" /> +<TGConnectingPoint num="11" id="1373" /> +<TGConnectingPoint num="12" id="1374" /> +<TGConnectingPoint num="13" id="1375" /> +<TGConnectingPoint num="14" id="1376" /> +<TGConnectingPoint num="15" id="1377" /> +<TGConnectingPoint num="16" id="1378" /> +<TGConnectingPoint num="17" id="1379" /> +<TGConnectingPoint num="18" id="1380" /> +<TGConnectingPoint num="19" id="1381" /> +<TGConnectingPoint num="20" id="1382" /> +<TGConnectingPoint num="21" id="1383" /> +<TGConnectingPoint num="22" id="1384" /> +<TGConnectingPoint num="23" id="1385" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sk" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="receivedData" value="" type="8" typeOther="" /> +<Attribute access="0" id="privK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="aliceID" value="" type="8" typeOther="" /> +<Attribute access="0" id="m1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sig" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="certOK" value="" type="4" typeOther="" /> +<Method value="Message encrypt(Message msg, Key k)" /> +<Method value="Message decrypt(Message msg, Key k)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +<Method value="Message hash(Message msg)" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="5100" id="1413" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1412" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1420" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1419" /> +<P1 x="407" y="70" id="1738" /> +<P2 x="413" y="90" id="1523" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1418" > +<father id="1420" num="0" /> +<cdparam x="404" y="80" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1414" /> +<TGConnectingPoint num="1" id="1415" /> +<TGConnectingPoint num="2" id="1416" /> +<TGConnectingPoint num="3" id="1417" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1427" > +<cdparam x="418" y="632" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="1426" /> +<P1 x="418" y="632" id="1569" /> +<P2 x="422" y="677" id="1605" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1425" > +<father id="1427" num="0" /> +<cdparam x="433" y="656" /> +<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1421" /> +<TGConnectingPoint num="1" id="1422" /> +<TGConnectingPoint num="2" id="1423" /> +<TGConnectingPoint num="3" id="1424" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="receivedData = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1434" > +<cdparam x="409" y="526" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="1433" /> +<P1 x="409" y="526" id="1651" /> +<P2 x="418" y="592" id="1564" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1432" > +<father id="1434" num="0" /> +<cdparam x="431" y="551" /> +<sizeparam width="157" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1428" /> +<TGConnectingPoint num="1" id="1429" /> +<TGConnectingPoint num="2" id="1430" /> +<TGConnectingPoint num="3" id="1431" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="sk = DH(alicePubK, privK)" /> +<actions value="m = sdecrypt(m2, sk)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1441" > +<cdparam x="408" y="454" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1440" /> +<P1 x="408" y="454" id="1687" /> +<P2 x="409" y="486" id="1646" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1439" > +<father id="1441" num="0" /> +<cdparam x="408" y="494" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1435" /> +<TGConnectingPoint num="1" id="1436" /> +<TGConnectingPoint num="2" id="1437" /> +<TGConnectingPoint num="3" id="1438" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1448" > +<cdparam x="408" y="394" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1447" /> +<P1 x="408" y="394" id="1703" /> +<P2 x="408" y="424" id="1686" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1446" > +<father id="1448" num="0" /> +<cdparam x="408" y="434" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1442" /> +<TGConnectingPoint num="1" id="1443" /> +<TGConnectingPoint num="2" id="1444" /> +<TGConnectingPoint num="3" id="1445" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1455" > +<cdparam x="409" y="265" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1454" /> +<P1 x="413" y="128" id="1528" /> +<P2 x="412" y="159" id="1511" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1453" > +<father id="1455" num="0" /> +<cdparam x="409" y="281" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1449" /> +<TGConnectingPoint num="1" id="1450" /> +<TGConnectingPoint num="2" id="1451" /> +<TGConnectingPoint num="3" id="1452" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1462" > +<cdparam x="410" y="327" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1461" /> +<P1 x="412" y="189" id="1512" /> +<P2 x="410" y="267" id="1471" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1460" > +<father id="1462" num="0" /> +<cdparam x="456" y="193" /> +<sizeparam width="228" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1456" /> +<TGConnectingPoint num="1" id="1457" /> +<TGConnectingPoint num="2" id="1458" /> +<TGConnectingPoint num="3" id="1459" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="get2(m, m1, sig)" /> +<actions value="get2(m1, m, m2)" /> +<actions value="m2.data = aliceID" /> +<actions value="m1 = concat2(m, m2)" /> +<actions value="certOK = verifySign(m1, sig, CAPubK)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1469" > +<cdparam x="423" y="345" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1468" /> +<P1 x="435" y="297" id="1485" /> +<P2 x="423" y="354" id="1715" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1467" > +<father id="1469" num="0" /> +<cdparam x="450" y="315" /> +<sizeparam width="155" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1463" /> +<TGConnectingPoint num="1" id="1464" /> +<TGConnectingPoint num="2" id="1465" /> +<TGConnectingPoint num="3" id="1466" /> +<extraparam> +<guard value="[ certOK ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="alicePubK.data = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="1510" > +<cdparam x="360" y="267" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="verifyCert" /> +<TGConnectingPoint num="0" id="1470" /> +<TGConnectingPoint num="1" id="1471" /> +<TGConnectingPoint num="2" id="1472" /> +<TGConnectingPoint num="3" id="1473" /> +<TGConnectingPoint num="4" id="1474" /> +<TGConnectingPoint num="5" id="1475" /> +<TGConnectingPoint num="6" id="1476" /> +<TGConnectingPoint num="7" id="1477" /> +<TGConnectingPoint num="8" id="1478" /> +<TGConnectingPoint num="9" id="1479" /> +<TGConnectingPoint num="10" id="1480" /> +<TGConnectingPoint num="11" id="1481" /> +<TGConnectingPoint num="12" id="1482" /> +<TGConnectingPoint num="13" id="1483" /> +<TGConnectingPoint num="14" id="1484" /> +<TGConnectingPoint num="15" id="1485" /> +<TGConnectingPoint num="16" id="1486" /> +<TGConnectingPoint num="17" id="1487" /> +<TGConnectingPoint num="18" id="1488" /> +<TGConnectingPoint num="19" id="1489" /> +<TGConnectingPoint num="20" id="1490" /> +<TGConnectingPoint num="21" id="1491" /> +<TGConnectingPoint num="22" id="1492" /> +<TGConnectingPoint num="23" id="1493" /> +<TGConnectingPoint num="24" id="1494" /> +<TGConnectingPoint num="25" id="1495" /> +<TGConnectingPoint num="26" id="1496" /> +<TGConnectingPoint num="27" id="1497" /> +<TGConnectingPoint num="28" id="1498" /> +<TGConnectingPoint num="29" id="1499" /> +<TGConnectingPoint num="30" id="1500" /> +<TGConnectingPoint num="31" id="1501" /> +<TGConnectingPoint num="32" id="1502" /> +<TGConnectingPoint num="33" id="1503" /> +<TGConnectingPoint num="34" id="1504" /> +<TGConnectingPoint num="35" id="1505" /> +<TGConnectingPoint num="36" id="1506" /> +<TGConnectingPoint num="37" id="1507" /> +<TGConnectingPoint num="38" id="1508" /> +<TGConnectingPoint num="39" id="1509" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1521" > +<cdparam x="380" y="164" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="chin(m)" /> +<TGConnectingPoint num="0" id="1511" /> +<TGConnectingPoint num="1" id="1512" /> +<TGConnectingPoint num="2" id="1513" /> +<TGConnectingPoint num="3" id="1514" /> +<TGConnectingPoint num="4" id="1515" /> +<TGConnectingPoint num="5" id="1516" /> +<TGConnectingPoint num="6" id="1517" /> +<TGConnectingPoint num="7" id="1518" /> +<TGConnectingPoint num="8" id="1519" /> +<TGConnectingPoint num="9" id="1520" /> +</COMPONENT> + +<COMPONENT type="5106" id="1562" > +<cdparam x="341" y="90" /> +<sizeparam width="144" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="receivingAliceCert" /> +<TGConnectingPoint num="0" id="1522" /> +<TGConnectingPoint num="1" id="1523" /> +<TGConnectingPoint num="2" id="1524" /> +<TGConnectingPoint num="3" id="1525" /> +<TGConnectingPoint num="4" id="1526" /> +<TGConnectingPoint num="5" id="1527" /> +<TGConnectingPoint num="6" id="1528" /> +<TGConnectingPoint num="7" id="1529" /> +<TGConnectingPoint num="8" id="1530" /> +<TGConnectingPoint num="9" id="1531" /> +<TGConnectingPoint num="10" id="1532" /> +<TGConnectingPoint num="11" id="1533" /> +<TGConnectingPoint num="12" id="1534" /> +<TGConnectingPoint num="13" id="1535" /> +<TGConnectingPoint num="14" id="1536" /> +<TGConnectingPoint num="15" id="1537" /> +<TGConnectingPoint num="16" id="1538" /> +<TGConnectingPoint num="17" id="1539" /> +<TGConnectingPoint num="18" id="1540" /> +<TGConnectingPoint num="19" id="1541" /> +<TGConnectingPoint num="20" id="1542" /> +<TGConnectingPoint num="21" id="1543" /> +<TGConnectingPoint num="22" id="1544" /> +<TGConnectingPoint num="23" id="1545" /> +<TGConnectingPoint num="24" id="1546" /> +<TGConnectingPoint num="25" id="1547" /> +<TGConnectingPoint num="26" id="1548" /> +<TGConnectingPoint num="27" id="1549" /> +<TGConnectingPoint num="28" id="1550" /> +<TGConnectingPoint num="29" id="1551" /> +<TGConnectingPoint num="30" id="1552" /> +<TGConnectingPoint num="31" id="1553" /> +<TGConnectingPoint num="32" id="1554" /> +<TGConnectingPoint num="33" id="1555" /> +<TGConnectingPoint num="34" id="1556" /> +<TGConnectingPoint num="35" id="1557" /> +<TGConnectingPoint num="36" id="1558" /> +<TGConnectingPoint num="37" id="1559" /> +<TGConnectingPoint num="38" id="1560" /> +<TGConnectingPoint num="39" id="1561" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1603" > +<cdparam x="329" y="592" /> +<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="messageDecrypted" /> +<TGConnectingPoint num="0" id="1563" /> +<TGConnectingPoint num="1" id="1564" /> +<TGConnectingPoint num="2" id="1565" /> +<TGConnectingPoint num="3" id="1566" /> +<TGConnectingPoint num="4" id="1567" /> +<TGConnectingPoint num="5" id="1568" /> +<TGConnectingPoint num="6" id="1569" /> +<TGConnectingPoint num="7" id="1570" /> +<TGConnectingPoint num="8" id="1571" /> +<TGConnectingPoint num="9" id="1572" /> +<TGConnectingPoint num="10" id="1573" /> +<TGConnectingPoint num="11" id="1574" /> +<TGConnectingPoint num="12" id="1575" /> +<TGConnectingPoint num="13" id="1576" /> +<TGConnectingPoint num="14" id="1577" /> +<TGConnectingPoint num="15" id="1578" /> +<TGConnectingPoint num="16" id="1579" /> +<TGConnectingPoint num="17" id="1580" /> +<TGConnectingPoint num="18" id="1581" /> +<TGConnectingPoint num="19" id="1582" /> +<TGConnectingPoint num="20" id="1583" /> +<TGConnectingPoint num="21" id="1584" /> +<TGConnectingPoint num="22" id="1585" /> +<TGConnectingPoint num="23" id="1586" /> +<TGConnectingPoint num="24" id="1587" /> +<TGConnectingPoint num="25" id="1588" /> +<TGConnectingPoint num="26" id="1589" /> +<TGConnectingPoint num="27" id="1590" /> +<TGConnectingPoint num="28" id="1591" /> +<TGConnectingPoint num="29" id="1592" /> +<TGConnectingPoint num="30" id="1593" /> +<TGConnectingPoint num="31" id="1594" /> +<TGConnectingPoint num="32" id="1595" /> +<TGConnectingPoint num="33" id="1596" /> +<TGConnectingPoint num="34" id="1597" /> +<TGConnectingPoint num="35" id="1598" /> +<TGConnectingPoint num="36" id="1599" /> +<TGConnectingPoint num="37" id="1600" /> +<TGConnectingPoint num="38" id="1601" /> +<TGConnectingPoint num="39" id="1602" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1644" > +<cdparam x="352" y="677" /> +<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="SecretDataReceived" /> +<TGConnectingPoint num="0" id="1604" /> +<TGConnectingPoint num="1" id="1605" /> +<TGConnectingPoint num="2" id="1606" /> +<TGConnectingPoint num="3" id="1607" /> +<TGConnectingPoint num="4" id="1608" /> +<TGConnectingPoint num="5" id="1609" /> +<TGConnectingPoint num="6" id="1610" /> +<TGConnectingPoint num="7" id="1611" /> +<TGConnectingPoint num="8" id="1612" /> +<TGConnectingPoint num="9" id="1613" /> +<TGConnectingPoint num="10" id="1614" /> +<TGConnectingPoint num="11" id="1615" /> +<TGConnectingPoint num="12" id="1616" /> +<TGConnectingPoint num="13" id="1617" /> +<TGConnectingPoint num="14" id="1618" /> +<TGConnectingPoint num="15" id="1619" /> +<TGConnectingPoint num="16" id="1620" /> +<TGConnectingPoint num="17" id="1621" /> +<TGConnectingPoint num="18" id="1622" /> +<TGConnectingPoint num="19" id="1623" /> +<TGConnectingPoint num="20" id="1624" /> +<TGConnectingPoint num="21" id="1625" /> +<TGConnectingPoint num="22" id="1626" /> +<TGConnectingPoint num="23" id="1627" /> +<TGConnectingPoint num="24" id="1628" /> +<TGConnectingPoint num="25" id="1629" /> +<TGConnectingPoint num="26" id="1630" /> +<TGConnectingPoint num="27" id="1631" /> +<TGConnectingPoint num="28" id="1632" /> +<TGConnectingPoint num="29" id="1633" /> +<TGConnectingPoint num="30" id="1634" /> +<TGConnectingPoint num="31" id="1635" /> +<TGConnectingPoint num="32" id="1636" /> +<TGConnectingPoint num="33" id="1637" /> +<TGConnectingPoint num="34" id="1638" /> +<TGConnectingPoint num="35" id="1639" /> +<TGConnectingPoint num="36" id="1640" /> +<TGConnectingPoint num="37" id="1641" /> +<TGConnectingPoint num="38" id="1642" /> +<TGConnectingPoint num="39" id="1643" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1685" > +<cdparam x="338" y="486" /> +<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="messageDecrypt" /> +<TGConnectingPoint num="0" id="1645" /> +<TGConnectingPoint num="1" id="1646" /> +<TGConnectingPoint num="2" id="1647" /> +<TGConnectingPoint num="3" id="1648" /> +<TGConnectingPoint num="4" id="1649" /> +<TGConnectingPoint num="5" id="1650" /> +<TGConnectingPoint num="6" id="1651" /> +<TGConnectingPoint num="7" id="1652" /> +<TGConnectingPoint num="8" id="1653" /> +<TGConnectingPoint num="9" id="1654" /> +<TGConnectingPoint num="10" id="1655" /> +<TGConnectingPoint num="11" id="1656" /> +<TGConnectingPoint num="12" id="1657" /> +<TGConnectingPoint num="13" id="1658" /> +<TGConnectingPoint num="14" id="1659" /> +<TGConnectingPoint num="15" id="1660" /> +<TGConnectingPoint num="16" id="1661" /> +<TGConnectingPoint num="17" id="1662" /> +<TGConnectingPoint num="18" id="1663" /> +<TGConnectingPoint num="19" id="1664" /> +<TGConnectingPoint num="20" id="1665" /> +<TGConnectingPoint num="21" id="1666" /> +<TGConnectingPoint num="22" id="1667" /> +<TGConnectingPoint num="23" id="1668" /> +<TGConnectingPoint num="24" id="1669" /> +<TGConnectingPoint num="25" id="1670" /> +<TGConnectingPoint num="26" id="1671" /> +<TGConnectingPoint num="27" id="1672" /> +<TGConnectingPoint num="28" id="1673" /> +<TGConnectingPoint num="29" id="1674" /> +<TGConnectingPoint num="30" id="1675" /> +<TGConnectingPoint num="31" id="1676" /> +<TGConnectingPoint num="32" id="1677" /> +<TGConnectingPoint num="33" id="1678" /> +<TGConnectingPoint num="34" id="1679" /> +<TGConnectingPoint num="35" id="1680" /> +<TGConnectingPoint num="36" id="1681" /> +<TGConnectingPoint num="37" id="1682" /> +<TGConnectingPoint num="38" id="1683" /> +<TGConnectingPoint num="39" id="1684" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1696" > +<cdparam x="372" y="429" /> +<sizeparam width="73" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chin(m2)" /> +<TGConnectingPoint num="0" id="1686" /> +<TGConnectingPoint num="1" id="1687" /> +<TGConnectingPoint num="2" id="1688" /> +<TGConnectingPoint num="3" id="1689" /> +<TGConnectingPoint num="4" id="1690" /> +<TGConnectingPoint num="5" id="1691" /> +<TGConnectingPoint num="6" id="1692" /> +<TGConnectingPoint num="7" id="1693" /> +<TGConnectingPoint num="8" id="1694" /> +<TGConnectingPoint num="9" id="1695" /> +</COMPONENT> + +<COMPONENT type="5106" id="1737" > +<cdparam x="342" y="354" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="waitingForMessage" /> +<TGConnectingPoint num="0" id="1697" /> +<TGConnectingPoint num="1" id="1698" /> +<TGConnectingPoint num="2" id="1699" /> +<TGConnectingPoint num="3" id="1700" /> +<TGConnectingPoint num="4" id="1701" /> +<TGConnectingPoint num="5" id="1702" /> +<TGConnectingPoint num="6" id="1703" /> +<TGConnectingPoint num="7" id="1704" /> +<TGConnectingPoint num="8" id="1705" /> +<TGConnectingPoint num="9" id="1706" /> +<TGConnectingPoint num="10" id="1707" /> +<TGConnectingPoint num="11" id="1708" /> +<TGConnectingPoint num="12" id="1709" /> +<TGConnectingPoint num="13" id="1710" /> +<TGConnectingPoint num="14" id="1711" /> +<TGConnectingPoint num="15" id="1712" /> +<TGConnectingPoint num="16" id="1713" /> +<TGConnectingPoint num="17" id="1714" /> +<TGConnectingPoint num="18" id="1715" /> +<TGConnectingPoint num="19" id="1716" /> +<TGConnectingPoint num="20" id="1717" /> +<TGConnectingPoint num="21" id="1718" /> +<TGConnectingPoint num="22" id="1719" /> +<TGConnectingPoint num="23" id="1720" /> +<TGConnectingPoint num="24" id="1721" /> +<TGConnectingPoint num="25" id="1722" /> +<TGConnectingPoint num="26" id="1723" /> +<TGConnectingPoint num="27" id="1724" /> +<TGConnectingPoint num="28" id="1725" /> +<TGConnectingPoint num="29" id="1726" /> +<TGConnectingPoint num="30" id="1727" /> +<TGConnectingPoint num="31" id="1728" /> +<TGConnectingPoint num="32" id="1729" /> +<TGConnectingPoint num="33" id="1730" /> +<TGConnectingPoint num="34" id="1731" /> +<TGConnectingPoint num="35" id="1732" /> +<TGConnectingPoint num="36" id="1733" /> +<TGConnectingPoint num="37" id="1734" /> +<TGConnectingPoint num="38" id="1735" /> +<TGConnectingPoint num="39" id="1736" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1739" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1738" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1746" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1745" /> +<P1 x="407" y="70" id="2025" /> +<P2 x="412" y="100" id="1849" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1744" > +<father id="1746" num="0" /> +<cdparam x="409" y="85" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1740" /> +<TGConnectingPoint num="1" id="1741" /> +<TGConnectingPoint num="2" id="1742" /> +<TGConnectingPoint num="3" id="1743" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1753" > +<cdparam x="411" y="567" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1752" /> +<P1 x="411" y="567" id="1931" /> +<P2 x="420" y="613" id="1890" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1751" > +<father id="1753" num="0" /> +<cdparam x="453" y="610" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1747" /> +<TGConnectingPoint num="1" id="1748" /> +<TGConnectingPoint num="2" id="1749" /> +<TGConnectingPoint num="3" id="1750" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1760" > +<cdparam x="496" y="703" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1759" /> +<P1 x="420" y="663" id="1895" /> +<P2 x="438" y="703" id="1941" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1758" > +<father id="1760" num="0" /> +<cdparam x="453" y="697" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1754" /> +<TGConnectingPoint num="1" id="1755" /> +<TGConnectingPoint num="2" id="1756" /> +<TGConnectingPoint num="3" id="1757" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1767" > +<cdparam x="411" y="508" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to stop state" value="null" /> +<TGConnectingPoint num="0" id="1766" /> +<P1 x="411" y="508" id="1949" /> +<P2 x="411" y="537" id="1930" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1765" > +<father id="1767" num="0" /> +<cdparam x="411" y="548" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1761" /> +<TGConnectingPoint num="1" id="1762" /> +<TGConnectingPoint num="2" id="1763" /> +<TGConnectingPoint num="3" id="1764" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1774" > +<cdparam x="411" y="389" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from state0 to state0" value="null" /> +<TGConnectingPoint num="0" id="1773" /> +<P1 x="411" y="389" id="1990" /> +<P2 x="411" y="468" id="1944" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1772" > +<father id="1774" num="0" /> +<cdparam x="439" y="414" /> +<sizeparam width="152" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1768" /> +<TGConnectingPoint num="1" id="1769" /> +<TGConnectingPoint num="2" id="1770" /> +<TGConnectingPoint num="3" id="1771" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="sk = DH(bobPubK, privK)" /> +<actions value="m.data = secretData" /> +<actions value="m1 = sencrypt(m, sk)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1781" > +<cdparam x="380" y="258" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1780" /> +<P1 x="393" y="134" id="1877" /> +<P2 x="394" y="160" id="1837" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1779" > +<father id="1781" num="0" /> +<cdparam x="377" y="267" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1775" /> +<TGConnectingPoint num="1" id="1776" /> +<TGConnectingPoint num="2" id="1777" /> +<TGConnectingPoint num="3" id="1778" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1788" > +<cdparam x="412" y="134" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1787" /> +<P1 x="394" y="190" id="1838" /> +<P2 x="396" y="253" id="1797" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1786" > +<father id="1788" num="0" /> +<cdparam x="462" y="185" /> +<sizeparam width="228" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1782" /> +<TGConnectingPoint num="1" id="1783" /> +<TGConnectingPoint num="2" id="1784" /> +<TGConnectingPoint num="3" id="1785" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="get2(m, m1, sig)" /> +<actions value="get2(m1, m, m2)" /> +<actions value="m2.data = bobID" /> +<actions value="m1 = concat2(m, m2)" /> +<actions value="certOK = verifySign(m1, sig, CAPubK)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1795" > +<cdparam x="408" y="272" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1794" /> +<P1 x="396" y="283" id="1802" /> +<P2 x="411" y="349" id="1985" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1793" > +<father id="1795" num="0" /> +<cdparam x="427" y="308" /> +<sizeparam width="150" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1789" /> +<TGConnectingPoint num="1" id="1790" /> +<TGConnectingPoint num="2" id="1791" /> +<TGConnectingPoint num="3" id="1792" /> +<extraparam> +<guard value="[ certOK ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="bobPubK.data = m.data" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="1836" > +<cdparam x="346" y="253" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="verifyCert" /> +<TGConnectingPoint num="0" id="1796" /> +<TGConnectingPoint num="1" id="1797" /> +<TGConnectingPoint num="2" id="1798" /> +<TGConnectingPoint num="3" id="1799" /> +<TGConnectingPoint num="4" id="1800" /> +<TGConnectingPoint num="5" id="1801" /> +<TGConnectingPoint num="6" id="1802" /> +<TGConnectingPoint num="7" id="1803" /> +<TGConnectingPoint num="8" id="1804" /> +<TGConnectingPoint num="9" id="1805" /> +<TGConnectingPoint num="10" id="1806" /> +<TGConnectingPoint num="11" id="1807" /> +<TGConnectingPoint num="12" id="1808" /> +<TGConnectingPoint num="13" id="1809" /> +<TGConnectingPoint num="14" id="1810" /> +<TGConnectingPoint num="15" id="1811" /> +<TGConnectingPoint num="16" id="1812" /> +<TGConnectingPoint num="17" id="1813" /> +<TGConnectingPoint num="18" id="1814" /> +<TGConnectingPoint num="19" id="1815" /> +<TGConnectingPoint num="20" id="1816" /> +<TGConnectingPoint num="21" id="1817" /> +<TGConnectingPoint num="22" id="1818" /> +<TGConnectingPoint num="23" id="1819" /> +<TGConnectingPoint num="24" id="1820" /> +<TGConnectingPoint num="25" id="1821" /> +<TGConnectingPoint num="26" id="1822" /> +<TGConnectingPoint num="27" id="1823" /> +<TGConnectingPoint num="28" id="1824" /> +<TGConnectingPoint num="29" id="1825" /> +<TGConnectingPoint num="30" id="1826" /> +<TGConnectingPoint num="31" id="1827" /> +<TGConnectingPoint num="32" id="1828" /> +<TGConnectingPoint num="33" id="1829" /> +<TGConnectingPoint num="34" id="1830" /> +<TGConnectingPoint num="35" id="1831" /> +<TGConnectingPoint num="36" id="1832" /> +<TGConnectingPoint num="37" id="1833" /> +<TGConnectingPoint num="38" id="1834" /> +<TGConnectingPoint num="39" id="1835" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1847" > +<cdparam x="362" y="165" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Receive signal" value="chin(m)" /> +<TGConnectingPoint num="0" id="1837" /> +<TGConnectingPoint num="1" id="1838" /> +<TGConnectingPoint num="2" id="1839" /> +<TGConnectingPoint num="3" id="1840" /> +<TGConnectingPoint num="4" id="1841" /> +<TGConnectingPoint num="5" id="1842" /> +<TGConnectingPoint num="6" id="1843" /> +<TGConnectingPoint num="7" id="1844" /> +<TGConnectingPoint num="8" id="1845" /> +<TGConnectingPoint num="9" id="1846" /> +</COMPONENT> + +<COMPONENT type="5106" id="1888" > +<cdparam x="339" y="100" /> +<sizeparam width="147" height="34" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="receivingBobCert" /> +<TGConnectingPoint num="0" id="1848" /> +<TGConnectingPoint num="1" id="1849" /> +<TGConnectingPoint num="2" id="1850" /> +<TGConnectingPoint num="3" id="1851" /> +<TGConnectingPoint num="4" id="1852" /> +<TGConnectingPoint num="5" id="1853" /> +<TGConnectingPoint num="6" id="1854" /> +<TGConnectingPoint num="7" id="1855" /> +<TGConnectingPoint num="8" id="1856" /> +<TGConnectingPoint num="9" id="1857" /> +<TGConnectingPoint num="10" id="1858" /> +<TGConnectingPoint num="11" id="1859" /> +<TGConnectingPoint num="12" id="1860" /> +<TGConnectingPoint num="13" id="1861" /> +<TGConnectingPoint num="14" id="1862" /> +<TGConnectingPoint num="15" id="1863" /> +<TGConnectingPoint num="16" id="1864" /> +<TGConnectingPoint num="17" id="1865" /> +<TGConnectingPoint num="18" id="1866" /> +<TGConnectingPoint num="19" id="1867" /> +<TGConnectingPoint num="20" id="1868" /> +<TGConnectingPoint num="21" id="1869" /> +<TGConnectingPoint num="22" id="1870" /> +<TGConnectingPoint num="23" id="1871" /> +<TGConnectingPoint num="24" id="1872" /> +<TGConnectingPoint num="25" id="1873" /> +<TGConnectingPoint num="26" id="1874" /> +<TGConnectingPoint num="27" id="1875" /> +<TGConnectingPoint num="28" id="1876" /> +<TGConnectingPoint num="29" id="1877" /> +<TGConnectingPoint num="30" id="1878" /> +<TGConnectingPoint num="31" id="1879" /> +<TGConnectingPoint num="32" id="1880" /> +<TGConnectingPoint num="33" id="1881" /> +<TGConnectingPoint num="34" id="1882" /> +<TGConnectingPoint num="35" id="1883" /> +<TGConnectingPoint num="36" id="1884" /> +<TGConnectingPoint num="37" id="1885" /> +<TGConnectingPoint num="38" id="1886" /> +<TGConnectingPoint num="39" id="1887" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1929" > +<cdparam x="370" y="613" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="State" value="beforeFinish" /> +<TGConnectingPoint num="0" id="1889" /> +<TGConnectingPoint num="1" id="1890" /> +<TGConnectingPoint num="2" id="1891" /> +<TGConnectingPoint num="3" id="1892" /> +<TGConnectingPoint num="4" id="1893" /> +<TGConnectingPoint num="5" id="1894" /> +<TGConnectingPoint num="6" id="1895" /> +<TGConnectingPoint num="7" id="1896" /> +<TGConnectingPoint num="8" id="1897" /> +<TGConnectingPoint num="9" id="1898" /> +<TGConnectingPoint num="10" id="1899" /> +<TGConnectingPoint num="11" id="1900" /> +<TGConnectingPoint num="12" id="1901" /> +<TGConnectingPoint num="13" id="1902" /> +<TGConnectingPoint num="14" id="1903" /> +<TGConnectingPoint num="15" id="1904" /> +<TGConnectingPoint num="16" id="1905" /> +<TGConnectingPoint num="17" id="1906" /> +<TGConnectingPoint num="18" id="1907" /> +<TGConnectingPoint num="19" id="1908" /> +<TGConnectingPoint num="20" id="1909" /> +<TGConnectingPoint num="21" id="1910" /> +<TGConnectingPoint num="22" id="1911" /> +<TGConnectingPoint num="23" id="1912" /> +<TGConnectingPoint num="24" id="1913" /> +<TGConnectingPoint num="25" id="1914" /> +<TGConnectingPoint num="26" id="1915" /> +<TGConnectingPoint num="27" id="1916" /> +<TGConnectingPoint num="28" id="1917" /> +<TGConnectingPoint num="29" id="1918" /> +<TGConnectingPoint num="30" id="1919" /> +<TGConnectingPoint num="31" id="1920" /> +<TGConnectingPoint num="32" id="1921" /> +<TGConnectingPoint num="33" id="1922" /> +<TGConnectingPoint num="34" id="1923" /> +<TGConnectingPoint num="35" id="1924" /> +<TGConnectingPoint num="36" id="1925" /> +<TGConnectingPoint num="37" id="1926" /> +<TGConnectingPoint num="38" id="1927" /> +<TGConnectingPoint num="39" id="1928" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="1940" > +<cdparam x="374" y="542" /> +<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Send signal" value="chout(m1)" /> +<TGConnectingPoint num="0" id="1930" /> +<TGConnectingPoint num="1" id="1931" /> +<TGConnectingPoint num="2" id="1932" /> +<TGConnectingPoint num="3" id="1933" /> +<TGConnectingPoint num="4" id="1934" /> +<TGConnectingPoint num="5" id="1935" /> +<TGConnectingPoint num="6" id="1936" /> +<TGConnectingPoint num="7" id="1937" /> +<TGConnectingPoint num="8" id="1938" /> +<TGConnectingPoint num="9" id="1939" /> +</COMPONENT> + +<COMPONENT type="5101" id="1942" > +<cdparam x="428" y="708" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1941" /> +</COMPONENT> + +<COMPONENT type="5106" id="1983" > +<cdparam x="340" y="468" /> +<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="sendingMessage" /> +<TGConnectingPoint num="0" id="1943" /> +<TGConnectingPoint num="1" id="1944" /> +<TGConnectingPoint num="2" id="1945" /> +<TGConnectingPoint num="3" id="1946" /> +<TGConnectingPoint num="4" id="1947" /> +<TGConnectingPoint num="5" id="1948" /> +<TGConnectingPoint num="6" id="1949" /> +<TGConnectingPoint num="7" id="1950" /> +<TGConnectingPoint num="8" id="1951" /> +<TGConnectingPoint num="9" id="1952" /> +<TGConnectingPoint num="10" id="1953" /> +<TGConnectingPoint num="11" id="1954" /> +<TGConnectingPoint num="12" id="1955" /> +<TGConnectingPoint num="13" id="1956" /> +<TGConnectingPoint num="14" id="1957" /> +<TGConnectingPoint num="15" id="1958" /> +<TGConnectingPoint num="16" id="1959" /> +<TGConnectingPoint num="17" id="1960" /> +<TGConnectingPoint num="18" id="1961" /> +<TGConnectingPoint num="19" id="1962" /> +<TGConnectingPoint num="20" id="1963" /> +<TGConnectingPoint num="21" id="1964" /> +<TGConnectingPoint num="22" id="1965" /> +<TGConnectingPoint num="23" id="1966" /> +<TGConnectingPoint num="24" id="1967" /> +<TGConnectingPoint num="25" id="1968" /> +<TGConnectingPoint num="26" id="1969" /> +<TGConnectingPoint num="27" id="1970" /> +<TGConnectingPoint num="28" id="1971" /> +<TGConnectingPoint num="29" id="1972" /> +<TGConnectingPoint num="30" id="1973" /> +<TGConnectingPoint num="31" id="1974" /> +<TGConnectingPoint num="32" id="1975" /> +<TGConnectingPoint num="33" id="1976" /> +<TGConnectingPoint num="34" id="1977" /> +<TGConnectingPoint num="35" id="1978" /> +<TGConnectingPoint num="36" id="1979" /> +<TGConnectingPoint num="37" id="1980" /> +<TGConnectingPoint num="38" id="1981" /> +<TGConnectingPoint num="39" id="1982" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2024" > +<cdparam x="344" y="349" /> +<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="makingMessage" /> +<TGConnectingPoint num="0" id="1984" /> +<TGConnectingPoint num="1" id="1985" /> +<TGConnectingPoint num="2" id="1986" /> +<TGConnectingPoint num="3" id="1987" /> +<TGConnectingPoint num="4" id="1988" /> +<TGConnectingPoint num="5" id="1989" /> +<TGConnectingPoint num="6" id="1990" /> +<TGConnectingPoint num="7" id="1991" /> +<TGConnectingPoint num="8" id="1992" /> +<TGConnectingPoint num="9" id="1993" /> +<TGConnectingPoint num="10" id="1994" /> +<TGConnectingPoint num="11" id="1995" /> +<TGConnectingPoint num="12" id="1996" /> +<TGConnectingPoint num="13" id="1997" /> +<TGConnectingPoint num="14" id="1998" /> +<TGConnectingPoint num="15" id="1999" /> +<TGConnectingPoint num="16" id="2000" /> +<TGConnectingPoint num="17" id="2001" /> +<TGConnectingPoint num="18" id="2002" /> +<TGConnectingPoint num="19" id="2003" /> +<TGConnectingPoint num="20" id="2004" /> +<TGConnectingPoint num="21" id="2005" /> +<TGConnectingPoint num="22" id="2006" /> +<TGConnectingPoint num="23" id="2007" /> +<TGConnectingPoint num="24" id="2008" /> +<TGConnectingPoint num="25" id="2009" /> +<TGConnectingPoint num="26" id="2010" /> +<TGConnectingPoint num="27" id="2011" /> +<TGConnectingPoint num="28" id="2012" /> +<TGConnectingPoint num="29" id="2013" /> +<TGConnectingPoint num="30" id="2014" /> +<TGConnectingPoint num="31" id="2015" /> +<TGConnectingPoint num="32" id="2016" /> +<TGConnectingPoint num="33" id="2017" /> +<TGConnectingPoint num="34" id="2018" /> +<TGConnectingPoint num="35" id="2019" /> +<TGConnectingPoint num="36" id="2020" /> +<TGConnectingPoint num="37" id="2021" /> +<TGConnectingPoint num="38" id="2022" /> +<TGConnectingPoint num="39" id="2023" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2026" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2025" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="CA" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="2037" > +<cdparam x="331" y="296" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2034" /> +<TGConnectingPoint num="1" id="2035" /> +<TGConnectingPoint num="2" id="2036" /> +<P1 x="338" y="295" id="2135" /> +<P2 x="399" y="127" id="2209" /> +<Point x="90" y="296" /> +<Point x="90" y="127" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2027" > +<father id="2037" num="0" /> +<cdparam x="90" y="296" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2028" > +<father id="2037" num="1" /> +<cdparam x="90" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2033" > +<father id="2037" num="2" /> +<cdparam x="101" y="203" /> +<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2029" /> +<TGConnectingPoint num="1" id="2030" /> +<TGConnectingPoint num="2" id="2031" /> +<TGConnectingPoint num="3" id="2032" /> +<extraparam> +<guard value="[ else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2050" > +<cdparam x="799" y="260" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2046" /> +<TGConnectingPoint num="1" id="2047" /> +<TGConnectingPoint num="2" id="2048" /> +<TGConnectingPoint num="3" id="2049" /> +<P1 x="799" y="260" id="2122" /> +<P2 x="499" y="127" id="2210" /> +<Point x="799" y="295" /> +<Point x="1095" y="295" /> +<Point x="1095" y="127" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2038" > +<father id="2050" num="0" /> +<cdparam x="799" y="295" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2039" > +<father id="2050" num="1" /> +<cdparam x="1095" y="295" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2040" > +<father id="2050" num="2" /> +<cdparam x="1095" y="127" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2045" > +<father id="2050" num="3" /> +<cdparam x="649" y="193" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2041" /> +<TGConnectingPoint num="1" id="2042" /> +<TGConnectingPoint num="2" id="2043" /> +<TGConnectingPoint num="3" id="2044" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2063" > +<cdparam x="474" y="253" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2059" /> +<TGConnectingPoint num="1" id="2060" /> +<TGConnectingPoint num="2" id="2061" /> +<TGConnectingPoint num="3" id="2062" /> +<P1 x="474" y="253" id="2174" /> +<P2 x="499" y="112" id="2228" /> +<Point x="474" y="351" /> +<Point x="1122" y="352" /> +<Point x="1122" y="112" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2051" > +<father id="2063" num="0" /> +<cdparam x="474" y="351" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2052" > +<father id="2063" num="1" /> +<cdparam x="1122" y="352" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2053" > +<father id="2063" num="2" /> +<cdparam x="1122" y="112" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2058" > +<father id="2063" num="3" /> +<cdparam x="486" y="182" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2054" /> +<TGConnectingPoint num="1" id="2055" /> +<TGConnectingPoint num="2" id="2056" /> +<TGConnectingPoint num="3" id="2057" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2072" > +<cdparam x="499" y="137" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2070" /> +<TGConnectingPoint num="1" id="2071" /> +<P1 x="499" y="137" id="2219" /> +<P2 x="799" y="230" id="2121" /> +<Point x="799" y="137" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2064" > +<father id="2072" num="0" /> +<cdparam x="799" y="137" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2069" > +<father id="2072" num="1" /> +<cdparam x="816" y="160" /> +<sizeparam width="168" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2065" /> +<TGConnectingPoint num="1" id="2066" /> +<TGConnectingPoint num="2" id="2067" /> +<TGConnectingPoint num="3" id="2068" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="m1.data = bobPubK.data" /> +<actions value="m2.data = bobID" /> +<actions value="m = concat2(m1, m2)" /> +<actions value="m1 = sign(m, privK)" /> +<actions value="newCert = concat2(m, m1)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2079" > +<cdparam x="391" y="326" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2078" /> +<P1 x="388" y="320" id="2138" /> +<P2 x="381" y="428" id="2184" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2077" > +<father id="2079" num="0" /> +<cdparam x="126" y="354" /> +<sizeparam width="267" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2073" /> +<TGConnectingPoint num="1" id="2074" /> +<TGConnectingPoint num="2" id="2075" /> +<TGConnectingPoint num="3" id="2076" /> +<extraparam> +<guard value="[ (newID != aliceID) and (newID != bobID) ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="m1.data = newK.data" /> +<actions value="m2.data = newID" /> +<actions value="m = concat2(m1, m2)" /> +<actions value="m1 = sign(m, privK)" /> +<actions value="newCert = concat2(m, m1)" /> +<filesToIncludeLine value="" /> +<codeToIncludeLine value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2092" > +<cdparam x="381" y="290" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2088" /> +<TGConnectingPoint num="1" id="2089" /> +<TGConnectingPoint num="2" id="2090" /> +<TGConnectingPoint num="3" id="2091" /> +<P1 x="381" y="458" id="2185" /> +<P2 x="399" y="117" id="2216" /> +<Point x="381" y="519" /> +<Point x="44" y="519" /> +<Point x="44" y="117" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2080" > +<father id="2092" num="0" /> +<cdparam x="381" y="519" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2081" > +<father id="2092" num="1" /> +<cdparam x="44" y="519" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2082" > +<father id="2092" num="2" /> +<cdparam x="44" y="117" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2087" > +<father id="2092" num="3" /> +<cdparam x="390" y="203" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2083" /> +<TGConnectingPoint num="1" id="2084" /> +<TGConnectingPoint num="2" id="2085" /> +<TGConnectingPoint num="3" id="2086" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2099" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2098" /> +<P1 x="411" y="71" id="2247" /> +<P2 x="411" y="108" id="2222" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2097" > +<father id="2099" num="0" /> +<cdparam x="409" y="89" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2093" /> +<TGConnectingPoint num="1" id="2094" /> +<TGConnectingPoint num="2" id="2095" /> +<TGConnectingPoint num="3" id="2096" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2106" > +<cdparam x="399" y="147" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2105" /> +<P1 x="399" y="147" id="2211" /> +<P2 x="381" y="176" id="2195" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2104" > +<father id="2106" num="0" /> +<cdparam x="390" y="161" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2100" /> +<TGConnectingPoint num="1" id="2101" /> +<TGConnectingPoint num="2" id="2102" /> +<TGConnectingPoint num="3" id="2103" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2113" > +<cdparam x="381" y="206" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2112" /> +<P1 x="381" y="206" id="2196" /> +<P2 x="388" y="270" id="2133" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2111" > +<father id="2113" num="0" /> +<cdparam x="216" y="224" /> +<sizeparam width="135" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2107" /> +<TGConnectingPoint num="1" id="2108" /> +<TGConnectingPoint num="2" id="2109" /> +<TGConnectingPoint num="3" id="2110" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="get2(m, m1, m2)" /> +<actions value="newK.data = m1.data" /> +<actions value="newID = m2.data" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2120" > +<cdparam x="499" y="147" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2119" /> +<P1 x="474" y="147" id="2221" /> +<P2 x="474" y="223" id="2173" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2118" > +<father id="2120" num="0" /> +<cdparam x="496" y="166" /> +<sizeparam width="168" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2114" /> +<TGConnectingPoint num="1" id="2115" /> +<TGConnectingPoint num="2" id="2116" /> +<TGConnectingPoint num="3" id="2117" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<actions value="m1.data = alicePubK.data" /> +<actions value="m2.data = aliceID" /> +<actions value="m = concat2(m1, m2)" /> +<actions value="m1 = sign(m, privK)" /> +<actions value="newCert = concat2(m, m1)" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="2131" > +<cdparam x="746" y="235" /> +<sizeparam width="107" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(newCert)" /> +<TGConnectingPoint num="0" id="2121" /> +<TGConnectingPoint num="1" id="2122" /> +<TGConnectingPoint num="2" id="2123" /> +<TGConnectingPoint num="3" id="2124" /> +<TGConnectingPoint num="4" id="2125" /> +<TGConnectingPoint num="5" id="2126" /> +<TGConnectingPoint num="6" id="2127" /> +<TGConnectingPoint num="7" id="2128" /> +<TGConnectingPoint num="8" id="2129" /> +<TGConnectingPoint num="9" id="2130" /> +</COMPONENT> + +<COMPONENT type="5106" id="2172" > +<cdparam x="338" y="270" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="verifyID" /> +<TGConnectingPoint num="0" id="2132" /> +<TGConnectingPoint num="1" id="2133" /> +<TGConnectingPoint num="2" id="2134" /> +<TGConnectingPoint num="3" id="2135" /> +<TGConnectingPoint num="4" id="2136" /> +<TGConnectingPoint num="5" id="2137" /> +<TGConnectingPoint num="6" id="2138" /> +<TGConnectingPoint num="7" id="2139" /> +<TGConnectingPoint num="8" id="2140" /> +<TGConnectingPoint num="9" id="2141" /> +<TGConnectingPoint num="10" id="2142" /> +<TGConnectingPoint num="11" id="2143" /> +<TGConnectingPoint num="12" id="2144" /> +<TGConnectingPoint num="13" id="2145" /> +<TGConnectingPoint num="14" id="2146" /> +<TGConnectingPoint num="15" id="2147" /> +<TGConnectingPoint num="16" id="2148" /> +<TGConnectingPoint num="17" id="2149" /> +<TGConnectingPoint num="18" id="2150" /> +<TGConnectingPoint num="19" id="2151" /> +<TGConnectingPoint num="20" id="2152" /> +<TGConnectingPoint num="21" id="2153" /> +<TGConnectingPoint num="22" id="2154" /> +<TGConnectingPoint num="23" id="2155" /> +<TGConnectingPoint num="24" id="2156" /> +<TGConnectingPoint num="25" id="2157" /> +<TGConnectingPoint num="26" id="2158" /> +<TGConnectingPoint num="27" id="2159" /> +<TGConnectingPoint num="28" id="2160" /> +<TGConnectingPoint num="29" id="2161" /> +<TGConnectingPoint num="30" id="2162" /> +<TGConnectingPoint num="31" id="2163" /> +<TGConnectingPoint num="32" id="2164" /> +<TGConnectingPoint num="33" id="2165" /> +<TGConnectingPoint num="34" id="2166" /> +<TGConnectingPoint num="35" id="2167" /> +<TGConnectingPoint num="36" id="2168" /> +<TGConnectingPoint num="37" id="2169" /> +<TGConnectingPoint num="38" id="2170" /> +<TGConnectingPoint num="39" id="2171" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="2183" > +<cdparam x="421" y="228" /> +<sizeparam width="107" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(newCert)" /> +<TGConnectingPoint num="0" id="2173" /> +<TGConnectingPoint num="1" id="2174" /> +<TGConnectingPoint num="2" id="2175" /> +<TGConnectingPoint num="3" id="2176" /> +<TGConnectingPoint num="4" id="2177" /> +<TGConnectingPoint num="5" id="2178" /> +<TGConnectingPoint num="6" id="2179" /> +<TGConnectingPoint num="7" id="2180" /> +<TGConnectingPoint num="8" id="2181" /> +<TGConnectingPoint num="9" id="2182" /> +</COMPONENT> + +<COMPONENT type="5103" id="2194" > +<cdparam x="328" y="433" /> +<sizeparam width="107" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(newCert)" /> +<TGConnectingPoint num="0" id="2184" /> +<TGConnectingPoint num="1" id="2185" /> +<TGConnectingPoint num="2" id="2186" /> +<TGConnectingPoint num="3" id="2187" /> +<TGConnectingPoint num="4" id="2188" /> +<TGConnectingPoint num="5" id="2189" /> +<TGConnectingPoint num="6" id="2190" /> +<TGConnectingPoint num="7" id="2191" /> +<TGConnectingPoint num="8" id="2192" /> +<TGConnectingPoint num="9" id="2193" /> +</COMPONENT> + +<COMPONENT type="5104" id="2205" > +<cdparam x="349" y="181" /> +<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="chin(m)" /> +<TGConnectingPoint num="0" id="2195" /> +<TGConnectingPoint num="1" id="2196" /> +<TGConnectingPoint num="2" id="2197" /> +<TGConnectingPoint num="3" id="2198" /> +<TGConnectingPoint num="4" id="2199" /> +<TGConnectingPoint num="5" id="2200" /> +<TGConnectingPoint num="6" id="2201" /> +<TGConnectingPoint num="7" id="2202" /> +<TGConnectingPoint num="8" id="2203" /> +<TGConnectingPoint num="9" id="2204" /> +</COMPONENT> + +<COMPONENT type="5106" id="2246" > +<cdparam x="399" y="108" /> +<sizeparam width="100" height="39" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="waiting" /> +<TGConnectingPoint num="0" id="2206" /> +<TGConnectingPoint num="1" id="2207" /> +<TGConnectingPoint num="2" id="2208" /> +<TGConnectingPoint num="3" id="2209" /> +<TGConnectingPoint num="4" id="2210" /> +<TGConnectingPoint num="5" id="2211" /> +<TGConnectingPoint num="6" id="2212" /> +<TGConnectingPoint num="7" id="2213" /> +<TGConnectingPoint num="8" id="2214" /> +<TGConnectingPoint num="9" id="2215" /> +<TGConnectingPoint num="10" id="2216" /> +<TGConnectingPoint num="11" id="2217" /> +<TGConnectingPoint num="12" id="2218" /> +<TGConnectingPoint num="13" id="2219" /> +<TGConnectingPoint num="14" id="2220" /> +<TGConnectingPoint num="15" id="2221" /> +<TGConnectingPoint num="16" id="2222" /> +<TGConnectingPoint num="17" id="2223" /> +<TGConnectingPoint num="18" id="2224" /> +<TGConnectingPoint num="19" id="2225" /> +<TGConnectingPoint num="20" id="2226" /> +<TGConnectingPoint num="21" id="2227" /> +<TGConnectingPoint num="22" id="2228" /> +<TGConnectingPoint num="23" id="2229" /> +<TGConnectingPoint num="24" id="2230" /> +<TGConnectingPoint num="25" id="2231" /> +<TGConnectingPoint num="26" id="2232" /> +<TGConnectingPoint num="27" id="2233" /> +<TGConnectingPoint num="28" id="2234" /> +<TGConnectingPoint num="29" id="2235" /> +<TGConnectingPoint num="30" id="2236" /> +<TGConnectingPoint num="31" id="2237" /> +<TGConnectingPoint num="32" id="2238" /> +<TGConnectingPoint num="33" id="2239" /> +<TGConnectingPoint num="34" id="2240" /> +<TGConnectingPoint num="35" id="2241" /> +<TGConnectingPoint num="36" id="2242" /> +<TGConnectingPoint num="37" id="2243" /> +<TGConnectingPoint num="38" id="2244" /> +<TGConnectingPoint num="39" id="2245" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="2248" > +<cdparam x="404" y="51" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2247" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + </TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/SysMLSec/README b/modeling/SysMLSec/README new file mode 100644 index 0000000000000000000000000000000000000000..004859fa868995cbb40ab905a4cf1958201b0bfa --- /dev/null +++ b/modeling/SysMLSec/README @@ -0,0 +1 @@ +All xml files here are pushed to the website of SysMLSec with the ttoolnighltybuild script \ No newline at end of file diff --git a/modeling/SysMLSec/at_zeuszitmo.xml b/modeling/SysMLSec/at_zeuszitmo.xml index d33361aad38c18554281556729a9c647018cde9c..f0feeacf2eef0a609e426d5569a8bf112a5c424e 100644 --- a/modeling/SysMLSec/at_zeuszitmo.xml +++ b/modeling/SysMLSec/at_zeuszitmo.xml @@ -4,54 +4,54 @@ <Modeling type="AttackTree" nameTab="Attack Trees" > <AttackTreeDiagramPanel name="Attack Tree" minX="10" maxX="1900" minY="10" maxY="1900" zoom="1.0000000000000016" > -<CONNECTOR type="133" id="587" > +<CONNECTOR type="133" id="2" > <cdparam x="645" y="785" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector" value="" /> -<TGConnectingPoint num="0" id="588" /> -<P1 x="645" y="785" id="231" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="663" y="785" id="231" /> <P2 x="757" y="658" id="167" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="2" > +<CONNECTOR type="133" id="4" > <cdparam x="262" y="1202" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="1" /> -<P1 x="288" y="937" id="53" /> +<TGConnectingPoint num="0" id="3" /> +<P1 x="290" y="937" id="53" /> <P2 x="280" y="906" id="180" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="4" > +<CONNECTOR type="133" id="6" > <cdparam x="415" y="453" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="3" /> -<P1 x="568" y="361" id="98" /> +<TGConnectingPoint num="0" id="5" /> +<P1 x="581" y="361" id="98" /> <P2 x="757" y="623" id="164" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="6" > +<CONNECTOR type="133" id="8" > <cdparam x="1033" y="642" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="5" /> -<P1 x="910" y="416" id="459" /> -<P2 x="943" y="381" id="449" /> +<TGConnectingPoint num="0" id="7" /> +<P1 x="938" y="416" id="459" /> +<P2 x="937" y="382" id="449" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="10" > +<CONNECTOR type="133" id="12" > <cdparam x="1016" y="560" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="2" /> -<TGConnectingPoint num="0" id="8" /> -<TGConnectingPoint num="1" id="9" /> -<P1 x="943" y="346" id="446" /> -<P2 x="915" y="314" id="483" /> +<TGConnectingPoint num="0" id="10" /> +<TGConnectingPoint num="1" id="11" /> +<P1 x="937" y="347" id="446" /> +<P2 x="892" y="314" id="483" /> <Point x="931" y="331" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="7" > -<father id="10" num="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="9" > +<father id="12" num="0" /> <cdparam x="931" y="331" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> @@ -59,120 +59,120 @@ <infoparam name="point " value="null" /> </SUBCOMPONENT> -<CONNECTOR type="133" id="12" > +<CONNECTOR type="133" id="14" > <cdparam x="916" y="476" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="11" /> -<P1 x="884" y="279" id="472" /> -<P2 x="831" y="250" id="423" /> +<TGConnectingPoint num="0" id="13" /> +<P1 x="861" y="279" id="472" /> +<P2 x="821" y="250" id="423" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="14" > +<CONNECTOR type="133" id="16" > <cdparam x="831" y="1116" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="1" /> -<TGConnectingPoint num="0" id="13" /> -<P1 x="659" y="840" id="192" /> +<TGConnectingPoint num="0" id="15" /> +<P1 x="663" y="840" id="192" /> <P2 x="726" y="814" id="161" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="16" > +<CONNECTOR type="133" id="18" > <cdparam x="1122" y="893" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="15" /> -<P1 x="903" y="783" id="297" /> +<TGConnectingPoint num="0" id="17" /> +<P1 x="893" y="783" id="297" /> <P2 x="917" y="682" id="148" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="18" > +<CONNECTOR type="133" id="20" > <cdparam x="1138" y="973" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="17" /> +<TGConnectingPoint num="0" id="19" /> <P1 x="819" y="805" id="160" /> -<P2 x="852" y="800" id="294" /> +<P2 x="838" y="800" id="294" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="20" > +<CONNECTOR type="133" id="22" > <cdparam x="1098" y="980" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="19" /> +<TGConnectingPoint num="0" id="21" /> <P1 x="948" y="647" id="138" /> -<P2 x="950" y="613" id="283" /> +<P2 x="955" y="613" id="283" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="22" > +<CONNECTOR type="133" id="24" > <cdparam x="1239" y="878" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="21" /> -<P1 x="972" y="720" id="272" /> +<TGConnectingPoint num="0" id="23" /> +<P1 x="983" y="720" id="272" /> <P2 x="979" y="682" id="149" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="24" > +<CONNECTOR type="133" id="26" > <cdparam x="484" y="806" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="0" /> -<TGConnectingPoint num="0" id="23" /> +<TGConnectingPoint num="0" id="25" /> <P1 x="788" y="658" id="175" /> <P2 x="788" y="779" id="156" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="26" > +<CONNECTOR type="133" id="28" > <cdparam x="919" y="515" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="1" /> -<TGConnectingPoint num="0" id="25" /> -<P1 x="731" y="347" id="437" /> -<P2 x="853" y="314" id="482" /> +<TGConnectingPoint num="0" id="27" /> +<P1 x="711" y="347" id="437" /> +<P2 x="830" y="314" id="482" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="28" > +<CONNECTOR type="133" id="30" > <cdparam x="1010" y="578" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="0" /> -<TGConnectingPoint num="0" id="27" /> -<P1 x="821" y="435" id="487" /> -<P2 x="849" y="433" id="460" /> +<TGConnectingPoint num="0" id="29" /> +<P1 x="805" y="435" id="487" /> +<P2 x="877" y="433" id="460" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="30" > +<CONNECTOR type="133" id="32" > <cdparam x="296" y="769" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="29" /> -<P1 x="283" y="643" id="387" /> +<TGConnectingPoint num="0" id="31" /> +<P1 x="289" y="643" id="387" /> <P2 x="491" y="589" id="531" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="32" > +<CONNECTOR type="133" id="34" > <cdparam x="1291" y="918" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="1" /> -<TGConnectingPoint num="0" id="31" /> -<P1 x="950" y="578" id="280" /> -<P2 x="910" y="451" id="462" /> +<TGConnectingPoint num="0" id="33" /> +<P1 x="955" y="578" id="280" /> +<P2 x="938" y="451" id="462" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="34" > +<CONNECTOR type="133" id="36" > <cdparam x="540" y="630" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="33" /> -<P1 x="641" y="563" id="528" /> -<P2 x="699" y="373" id="441" /> +<TGConnectingPoint num="0" id="35" /> +<P1 x="653" y="563" id="528" /> +<P2 x="676" y="373" id="441" /> <AutomaticDrawing data="true" /> </CONNECTOR> -<CONNECTOR type="133" id="36" > +<CONNECTOR type="133" id="38" > <cdparam x="622" y="860" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> -<TGConnectingPoint num="0" id="35" /> -<P1 x="661" y="648" id="127" /> +<TGConnectingPoint num="0" id="37" /> +<P1 x="671" y="648" id="127" /> <P2 x="696" y="649" id="172" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -181,7 +181,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="39" /> -<P1 x="587" y="733" id="218" /> +<P1 x="600" y="733" id="218" /> <P2 x="726" y="658" id="174" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -199,7 +199,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="43" /> -<P1 x="241" y="830" id="334" /> +<P1 x="244" y="830" id="334" /> <P2 x="249" y="871" id="181" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -218,7 +218,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="47" /> <P1 x="249" y="747" id="344" /> -<P2 x="255" y="678" id="385" /> +<P2 x="259" y="678" id="385" /> <AutomaticDrawing data="true" /> </CONNECTOR> <COMPONENT type="1400" id="86" > @@ -255,10 +255,10 @@ <SUBCOMPONENT type="1401" id="61" > <father id="86" num="0" /> <cdparam x="256" y="937" /> -<sizeparam width="130" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="137" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="117" minY="0" maxY="48" /> +<cdrectangleparam minX="0" maxX="110" minY="0" maxY="48" /> <infoparam name="TGComponent" value="ExploitVulnerability" /> <TGConnectingPoint num="0" id="49" /> <TGConnectingPoint num="1" id="50" /> @@ -311,10 +311,10 @@ <SUBCOMPONENT type="1401" id="99" > <father id="124" num="0" /> <cdparam x="439" y="326" /> -<sizeparam width="173" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="190" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="74" minY="0" maxY="73" /> +<cdrectangleparam minX="0" maxX="57" minY="0" maxY="73" /> <infoparam name="TGComponent" value="GenerateFakeBankWebsite" /> <TGConnectingPoint num="0" id="87" /> <TGConnectingPoint num="1" id="88" /> @@ -335,7 +335,7 @@ <COMPONENT type="1401" id="137" > <cdparam x="491" y="631" /> -<sizeparam width="170" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="180" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> <cdrectangleparam minX="10" maxX="1901" minY="10" maxY="1901" /> @@ -399,7 +399,7 @@ <TGConnectingPoint num="10" id="161" /> <TGConnectingPoint num="11" id="162" /> <extraparam> -<info equation="t(a1)<t(a2)" /> +<info equation="" /> </extraparam> </COMPONENT> @@ -482,11 +482,11 @@ </COMPONENT> <SUBCOMPONENT type="1401" id="202" > <father id="266" num="0" /> -<cdparam x="361" y="823" /> -<sizeparam width="298" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="340" y="823" /> +<sizeparam width="323" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="5" minY="0" maxY="205" /> +<cdrectangleparam minX="0" maxX="-20" minY="0" maxY="205" /> <infoparam name="TGComponent" value="RequestUserToInstallMobileFakeBankApplication" /> <TGConnectingPoint num="0" id="190" /> <TGConnectingPoint num="1" id="191" /> @@ -507,10 +507,10 @@ <SUBCOMPONENT type="1401" id="215" > <father id="266" num="1" /> <cdparam x="395" y="871" /> -<sizeparam width="127" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="134" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="176" minY="0" maxY="205" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="205" /> <infoparam name="TGComponent" value="ExploitVunerability" /> <TGConnectingPoint num="0" id="203" /> <TGConnectingPoint num="1" id="204" /> @@ -531,10 +531,10 @@ <SUBCOMPONENT type="1401" id="228" > <father id="266" num="2" /> <cdparam x="448" y="716" /> -<sizeparam width="139" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="152" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="164" minY="0" maxY="205" /> +<cdrectangleparam minX="0" maxX="151" minY="0" maxY="205" /> <infoparam name="TGComponent" value="InstallMaliciousPlugin" /> <TGConnectingPoint num="0" id="216" /> <TGConnectingPoint num="1" id="217" /> @@ -554,11 +554,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1401" id="241" > <father id="266" num="3" /> -<cdparam x="371" y="768" /> -<sizeparam width="274" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="370" y="768" /> +<sizeparam width="293" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="29" minY="0" maxY="205" /> +<cdrectangleparam minX="0" maxX="10" minY="0" maxY="205" /> <infoparam name="TGComponent" value="RedirectHTTPRequestFromBankToFakeBank" /> <TGConnectingPoint num="0" id="229" /> <TGConnectingPoint num="1" id="230" /> @@ -611,10 +611,10 @@ <SUBCOMPONENT type="1401" id="279" > <father id="330" num="0" /> <cdparam x="873" y="720" /> -<sizeparam width="132" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="147" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="92" minY="0" maxY="296" /> +<cdrectangleparam minX="0" maxX="77" minY="0" maxY="296" /> <infoparam name="TGComponent" value="SilentlyInterceptSMS" /> <TGConnectingPoint num="0" id="267" /> <TGConnectingPoint num="1" id="268" /> @@ -635,10 +635,10 @@ <SUBCOMPONENT type="1401" id="292" > <father id="330" num="1" /> <cdparam x="871" y="578" /> -<sizeparam width="159" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="169" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="65" minY="0" maxY="296" /> +<cdrectangleparam minX="0" maxX="55" minY="0" maxY="296" /> <infoparam name="TGComponent" value="RetrieveTransactionTAN" /> <TGConnectingPoint num="0" id="280" /> <TGConnectingPoint num="1" id="281" /> @@ -658,11 +658,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1401" id="305" > <father id="330" num="2" /> -<cdparam x="852" y="783" /> -<sizeparam width="204" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="838" y="783" /> +<sizeparam width="223" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="20" minY="0" maxY="296" /> +<cdrectangleparam minX="0" maxX="1" minY="0" maxY="296" /> <infoparam name="TGComponent" value="UserInstallsFakeBankApplication" /> <TGConnectingPoint num="0" id="293" /> <TGConnectingPoint num="1" id="294" /> @@ -715,10 +715,10 @@ <SUBCOMPONENT type="1401" id="343" > <father id="381" num="0" /> <cdparam x="176" y="795" /> -<sizeparam width="130" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="137" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="14" minY="0" maxY="93" /> +<cdrectangleparam minX="0" maxX="7" minY="0" maxY="93" /> <infoparam name="TGComponent" value="ExploitVulnerability" /> <TGConnectingPoint num="0" id="331" /> <TGConnectingPoint num="1" id="332" /> @@ -795,10 +795,10 @@ <SUBCOMPONENT type="1401" id="394" > <father id="419" num="0" /> <cdparam x="199" y="643" /> -<sizeparam width="113" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="121" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="390" minY="0" maxY="383" /> +<cdrectangleparam minX="0" maxX="382" minY="0" maxY="383" /> <infoparam name="TGComponent" value="InstallKeyLogger" /> <TGConnectingPoint num="0" id="382" /> <TGConnectingPoint num="1" id="383" /> @@ -818,8 +818,8 @@ </SUBCOMPONENT> <COMPONENT type="1400" id="522" > -<cdparam x="688" y="176" /> -<sizeparam width="368" height="299" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="665" y="176" /> +<sizeparam width="391" height="299" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1901" minY="10" maxY="1901" /> <infoparam name="Block5" value="AttackerPC" /> @@ -850,11 +850,11 @@ </COMPONENT> <SUBCOMPONENT type="1401" id="432" > <father id="522" num="0" /> -<cdparam x="691" y="215" /> -<sizeparam width="280" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="668" y="215" /> +<sizeparam width="306" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="88" minY="0" maxY="264" /> +<cdrectangleparam minX="0" maxX="85" minY="0" maxY="264" /> <infoparam name="TGComponent" value="IllegalBankAccountTransactionBasedOnToken" /> <TGConnectingPoint num="0" id="420" /> <TGConnectingPoint num="1" id="421" /> @@ -874,11 +874,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1401" id="445" > <father id="522" num="1" /> -<cdparam x="699" y="347" /> -<sizeparam width="129" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="676" y="347" /> +<sizeparam width="141" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="239" minY="0" maxY="264" /> +<cdrectangleparam minX="0" maxX="250" minY="0" maxY="264" /> <infoparam name="TGComponent" value="LogOnBankAccount" /> <TGConnectingPoint num="0" id="433" /> <TGConnectingPoint num="1" id="434" /> @@ -898,11 +898,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1401" id="458" > <father id="522" num="2" /> -<cdparam x="834" y="346" /> -<sizeparam width="218" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="818" y="347" /> +<sizeparam width="238" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="150" minY="0" maxY="264" /> +<cdrectangleparam minX="0" maxX="153" minY="0" maxY="264" /> <infoparam name="TGComponent" value="PerformTokenBasedAuthentication" /> <TGConnectingPoint num="0" id="446" /> <TGConnectingPoint num="1" id="447" /> @@ -916,13 +916,14 @@ <TGConnectingPoint num="9" id="455" /> <TGConnectingPoint num="10" id="456" /> <TGConnectingPoint num="11" id="457" /> +<latencyCheck /> <extraparam> <info description="blah blah blah" root="false" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="1402" id="471" > <father id="522" num="3" /> -<cdparam x="849" y="416" /> +<cdparam x="877" y="416" /> <sizeparam width="123" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="245" minY="0" maxY="264" /> @@ -945,7 +946,7 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1402" id="484" > <father id="522" num="4" /> -<cdparam x="823" y="279" /> +<cdparam x="800" y="279" /> <sizeparam width="123" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="245" minY="0" maxY="264" /> @@ -963,16 +964,16 @@ <TGConnectingPoint num="10" id="482" /> <TGConnectingPoint num="11" id="483" /> <extraparam> -<info equation="t(a1)<t(a2)" /> +<info equation="" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="1401" id="497" > <father id="522" num="5" /> -<cdparam x="697" y="418" /> -<sizeparam width="124" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="674" y="418" /> +<sizeparam width="131" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="244" minY="0" maxY="264" /> +<cdrectangleparam minX="0" maxX="260" minY="0" maxY="264" /> <infoparam name="TGComponent" value="SendTANToServer" /> <TGConnectingPoint num="0" id="485" /> <TGConnectingPoint num="1" id="486" /> @@ -1025,10 +1026,10 @@ <SUBCOMPONENT type="1401" id="535" > <father id="560" num="0" /> <cdparam x="491" y="563" /> -<sizeparam width="201" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="217" height="35" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <enabled value="true" /> -<cdrectangleparam minX="0" maxX="711" minY="0" maxY="493" /> +<cdrectangleparam minX="0" maxX="695" minY="0" maxY="493" /> <infoparam name="TGComponent" value="RetrieveUserLoginAndPassword" /> <TGConnectingPoint num="0" id="523" /> <TGConnectingPoint num="1" id="524" /> diff --git a/simulators/c++2/.gitignore b/simulators/c++2/.gitignore index 3df573fe623699c4038ba9501388748f93485913..e1c7e60115f578c0ad2dc9c5c6c4e487c36c770e 100644 --- a/simulators/c++2/.gitignore +++ b/simulators/c++2/.gitignore @@ -1 +1,2 @@ /Debug/ +/lib/ diff --git a/simulators/c++2/launch_configurations/c++2 Debug.launch b/simulators/c++2/launch_configurations/c++2 Debug.launch index f0ef513b0c13d8c923358a236829ed2250e386c0..fe7bda9208921ebac8cebdc8239787dedeecb0d9 100644 --- a/simulators/c++2/launch_configurations/c++2 Debug.launch +++ b/simulators/c++2/launch_configurations/c++2 Debug.launch @@ -16,12 +16,14 @@ <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_ID" value="gdb"/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="run"/> -<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/> +<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="false"/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/> +<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_ARGUMENTS" value="-ohtml /home/dblouin/temp/vcddump.html"/> <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/c++2"/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="c++2"/> <booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/> <stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="cdt.managedbuild.config.gnu.cygwin.exe.debug.999163173"/> +<stringAttribute key="org.eclipse.cdt.launch.WORKING_DIRECTORY" value="${workspace_loc:bin}"/> <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> <listEntry value="/c++2"/> </listAttribute> diff --git a/simulators/c++2/schedstyle.css b/simulators/c++2/schedstyle.css deleted file mode 100755 index 4a2dbd77f9a03147885ce51b51116def6fc055a1..0000000000000000000000000000000000000000 --- a/simulators/c++2/schedstyle.css +++ /dev/null @@ -1,55 +0,0 @@ -table{ - border-collapse: collapse; - empty-cells: show; - margin: 0.4cm; -} - -td{ - padding: 10px 5px; - border: 1px solid black; -} - -th{ - padding: 5px; - border-left: 1px dotted black; - border-right: 1px dotted black; -} - -.sc{ - border-style: none; - padding: 0px; -} - -h2 { - border-bottom: 1px solid #666; -} - -h2 span { - position: relative; - left: -0.3em; - bottom: -0.6em; - padding: 1px 0.5em; - border-style: solid; - border-width: 1px 1px 1px 0.8em; - border-color: #666 #666 #666 #008; - background-color: #ddd; -} - -.space{border-style: none;} -.not{background-color: white;} -.t1{background-color: yellow;} -.t2{background-color: purple;} -.t3{background-color: red;} -.t4{background-color: silver;} -.t5{background-color: teal;} -.t6{background-color: aqua;} -.t7{background-color: olive;} -.t8{background-color: navy;} -.t9{background-color: maroon;} -.t10{background-color: lime;} -.t11{background-color: green;} -.t12{background-color: gray;} -.t13{background-color: fuchsia;} -.t14{background-color: blue;} -.t15{background-color: black;} -.t16{background-color: white;} \ No newline at end of file diff --git a/simulators/c++2/src_simulator/definitions.h b/simulators/c++2/src_simulator/definitions.h index 2e8d282878e012516a9f20bb76698428ef8d6d7b..fca965bbce261bb5c16dc59c8218405fac7fbf01 100644 --- a/simulators/c++2/src_simulator/definitions.h +++ b/simulators/c++2/src_simulator/definitions.h @@ -225,6 +225,74 @@ using std::max; #define TAG_ENERGYo "<energy>" #define TAG_ENERGYc "</energy>" +// Issue #4 HTML Trace Constants +#define EXT_SEP "." +#define CSS "css" +#define SCHED_CSS_FILE_NAME "schedstyle.css" +#define SCHED_HTML_DOC "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n" +#define SCHED_HTML_BEG_HTML "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n" +#define SCHED_HTML_END_HTML "</html>\n" +#define SCHED_HTML_BEG_HEAD "<head>\n" +#define SCHED_HTML_END_HEAD "</head>\n" +#define SCHED_HTML_META "<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" />\n" +#define SCHED_HTML_BEG_TITLE "<title>" +#define SCHED_HTML_END_TITLE "</title>\n" +#define SCHED_HTML_BEG_BODY "<body>\n" +#define SCHED_HTML_END_BODY "</body>\n" +#define SCHED_HTML_BEG_STYLE "<style>\n" +#define SCHED_HTML_END_STYLE "</style>\n" +#define SCHED_HTML_CSS_BEG_LINK "<link rel=\"stylesheet\" type=\"text/css\" href=\"" +#define SCHED_HTML_CSS_END_LINK "\" />\n" + +#define SCHED_HTML_CSS_CONTENT "table{\n \ + border-collapse: collapse;\n \ + empty-cells: show;\n \ + margin: 0.4cm;\n \ +}\n \ +td{\n \ + padding: 10px 5px;\n \ + border: 1px solid black;\n \ +}\n \ +th{\n \ + padding: 5px;\n \ + border-left: 1px dotted black;\n \ + border-right: 1px dotted black;\n \ +}\n \ +.sc{\n \ + border-style: none;\n \ + padding: 0px;\n \ +}\n \ +h2 {\n \ + border-bottom: 1px solid #666;\n \ +}\n \ +h2 span {\n \ + position: relative;\n \ + left: -0.3em;\n \ + bottom: -0.6em;\n \ + padding: 1px 0.5em;\n \ + border-style: solid;\n \ + border-width: 1px 1px 1px 0.8em;\n \ + border-color: #666 #666 #666 #008;\n \ + background-color: #ddd;\n \ +}\n \ +.space{border-style: none;}\n \ +.not{background-color: white;}\n \ +.t1{background-color: yellow;}\n \ +.t2{background-color: purple;}\n \ +.t3{background-color: red;}\n \ +.t4{background-color: silver;}\n \ +.t5{background-color: teal;}\n \ +.t6{background-color: aqua;}\n \ +.t7{background-color: olive;}\n \ +.t8{background-color: navy;}\n \ +.t9{background-color: maroon;}\n \ +.t10{background-color: lime;}\n \ +.t11{background-color: green;}\n \ +.t12{background-color: gray;}\n \ +.t13{background-color: fuchsia;}\n \ +.t14{background-color: blue;}\n \ +.t15{background-color: black;}\n \ +.t16{background-color: white;}" class TMLTask; class TMLTransaction; diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp index 3f510478132a95a1e479ae2a18577d23255178b6..b1c2360bdebd1cfcfc7c9d08f3e699f4ad1f2873 100644 --- a/simulators/c++2/src_simulator/sim/Simulator.cpp +++ b/simulators/c++2/src_simulator/sim/Simulator.cpp @@ -191,7 +191,6 @@ ID Simulator::schedule2GraphDOT(std::ostream& iDOTFile, std::ostream& iAUTFile, return aStartState; } - void Simulator::schedule2Graph(std::string& iTraceFileName) const{ struct timeval aBegin,aEnd; gettimeofday(&aBegin,NULL); @@ -282,14 +281,52 @@ void Simulator::latencies2XML(std::ostringstream& glob, int id1, int id2) { } } - -void Simulator::schedule2HTML(std::string& iTraceFileName) const{ +void Simulator::schedule2HTML(std::string& iTraceFileName) const { struct timeval aBegin,aEnd; gettimeofday(&aBegin,NULL); std::ofstream myfile (iTraceFileName.c_str()); - if (myfile.is_open()){ - myfile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; - myfile << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"schedstyle.css\" />\n<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" />\n<title>Scheduling</title>\n</head>\n<body>\n"; + + if (myfile.is_open()) { + // DB: Issue #4 + myfile << SCHED_HTML_DOC; // <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n + myfile << SCHED_HTML_BEG_HTML; // <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n + myfile << SCHED_HTML_BEG_HEAD; // <head>\n + + const int indexSlash = iTraceFileName.find_last_of( "/" ); + const int indexExt = iTraceFileName.find_last_of( EXT_SEP ); + std::string cssFileName; + + if ( indexExt >= 0 ) { + cssFileName = iTraceFileName.substr( indexSlash + 1, indexExt - indexSlash ) + CSS; + } + else { + cssFileName = iTraceFileName.substr( indexSlash + 1 ).append( EXT_SEP ).append( CSS ); + } + + const std::string cssFullFileName = iTraceFileName.substr( 0, indexSlash + 1 ) + cssFileName; + std::ofstream cssfile( cssFullFileName.c_str() ); + + if ( cssfile.is_open() ) { + cssfile << SCHED_HTML_CSS_CONTENT; + cssfile.close(); + + myfile << SCHED_HTML_CSS_BEG_LINK; + myfile << cssFileName; + myfile << SCHED_HTML_CSS_END_LINK; + } + else { + myfile << SCHED_HTML_BEG_STYLE; // <style>\n"; + myfile << SCHED_HTML_CSS_CONTENT; + myfile << SCHED_HTML_END_STYLE; // <style>\n"; + } + + myfile << SCHED_HTML_META; // <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" />\n + myfile << SCHED_HTML_BEG_TITLE; // <title> + myfile << "Scheduling"; + myfile << SCHED_HTML_END_TITLE; // </title>\n + myfile << SCHED_HTML_END_HEAD; // </head>\n + myfile << SCHED_HTML_BEG_BODY; // <body>\n + //for(CPUList::const_iterator i=_simComp->getCPUIterator(false); i != _simComp->getCPUIterator(true); ++i){ for(CPUList::const_iterator i=_simComp->getCPUList().begin(); i != _simComp->getCPUList().end(); ++i){ (*i)->schedule2HTML(myfile); @@ -299,11 +336,16 @@ void Simulator::schedule2HTML(std::string& iTraceFileName) const{ (*j)->schedule2HTML(myfile); } //for_each(iCPUlist.begin(), iCPUlist.end(),std::bind2nd(std::mem_fun(&CPU::schedule2HTML),myfile)); - myfile << "</body>\n</html>\n"; + + myfile << SCHED_HTML_END_BODY; // </body>\n + myfile << SCHED_HTML_END_HTML; // </html>\n + myfile.close(); } - else + else { std::cout << "Unable to open HTML output file." << std::endl; + } + gettimeofday(&aEnd,NULL); std::cout << "The HTML output took " << getTimeDiff(aBegin,aEnd) << "usec. File: " << iTraceFileName << std::endl; } diff --git a/src/.classpath b/src/.classpath index b2389cc1db7702f29a95ac740312456c4e248d87..b0a20ce480faefffa9e02bf6dd2e750473b5b15a 100644 --- a/src/.classpath +++ b/src/.classpath @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry excluding="android/|tmltranslator/modelcompiler/DMAContext.java|tmltranslator/toavatar/TML2AvatarDP.java|ui/sd/TGConnectorMessageAsyncOrSyncSD.java|tmltranslator/modelcompiler/PECUnit.java|launch_configurations/|compiler/tmlgrammar/|compiler/tmlCPparser/" kind="src" path=""/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="lib" path="/bin/commons-codec-1.10.jar"/> - <classpathentry kind="lib" path="/bin/commons-io-2.4.jar"/> - <classpathentry kind="lib" path="/bin/derby.jar"/> - <classpathentry kind="lib" path="/bin/derbynet.jar"/> - <classpathentry kind="lib" path="/bin/JavaPlot.jar"/> - <classpathentry kind="lib" path="/bin/jsoup-1.8.1.jar"/> - <classpathentry kind="lib" path="/bin/opencloud.jar"/> - <classpathentry kind="lib" path="/bin/gs-core-1.3.jar"/> - <classpathentry kind="output" path="bin"/> -</classpath> +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry excluding="android/|tmltranslator/modelcompiler/DMAContext.java|tmltranslator/toavatar/TML2AvatarDP.java|ui/sd/TGConnectorMessageAsyncOrSyncSD.java|tmltranslator/modelcompiler/PECUnit.java|launch_configurations/|compiler/tmlgrammar/|compiler/tmlCPparser/" kind="src" path=""/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="lib" path="/bin/commons-codec-1.10.jar"/> + <classpathentry kind="lib" path="/bin/commons-io-2.4.jar"/> + <classpathentry kind="lib" path="/bin/derby.jar"/> + <classpathentry kind="lib" path="/bin/derbynet.jar"/> + <classpathentry kind="lib" path="/bin/JavaPlot.jar"/> + <classpathentry kind="lib" path="/bin/jsoup-1.8.1.jar"/> + <classpathentry kind="lib" path="/bin/opencloud.jar"/> + <classpathentry kind="lib" path="/bin/gs-core-1.3.jar"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/src/Test.java b/src/Test.java index 2307fb3cfa4b652ecceeeab2471741b69b234049..9d61fdb80fdd85f4123398ffb8368c0257f30c14 100755 --- a/src/Test.java +++ b/src/Test.java @@ -110,6 +110,9 @@ public class Test { nbOfPb += evalBoolInt("1+2==3", true, false); nbOfPb += evalBoolInt("1+2+3+4+5==3+7", false, false); nbOfPb += evalBoolInt("(1+2==3)==(8==4+5)", false, false); + nbOfPb += evalBoolInt("2*3==6", true, false); + nbOfPb += evalBoolInt("1*4+2==6", true, false); + nbOfPb += evalBoolInt("2+1*4==6", true, false); //nbOfPb += evalBoolInt("1+2==3", true, false); System.out.println("Nb of problems found:" + nbOfPb); @@ -125,13 +128,15 @@ public class Test { if ((val != expectedValue) || (err != expectedError)) { - System.out.println("\nUnexpected result or error-------------------->Result of " + s + " =" + val); - if (bee.hasError()) { + System.out.println("\nUnexpected result or error-------------------->Result of " + s + " =" + val); + if (bee.hasError()) { System.out.println("Error = " + bee.getFullError()); - } - System.out.println("\n\n"); - return 1; - } + } + System.out.println("\n\n"); + return 1; + } else { + System.out.println("all ok\n\n"); + } return 0; diff --git a/src/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/avatartranslator/toproverif/AVATAR2ProVerif.java index a95368b344094abc1b5fe44cd69c5b59f0702ee1..082abfe7f62fb011139bb477cd37bd68955620a8 100755 --- a/src/avatartranslator/toproverif/AVATAR2ProVerif.java +++ b/src/avatartranslator/toproverif/AVATAR2ProVerif.java @@ -83,6 +83,8 @@ public class AVATAR2ProVerif implements AvatarTranslator { private final static String SK_ENCRYPT = "sencrypt"; private final static String SK_DECRYPT = "sdecrypt"; + private final static String DH_DH = "DH"; + private final static String MAC_MAC = "MAC"; private final static String MAC_VERIFYMAC = "verifyMAC"; @@ -447,6 +449,10 @@ public class AVATAR2ProVerif implements AvatarTranslator { this.spec.addDeclaration (new ProVerifFunc (SK_ENCRYPT, new String[] {"bitstring", "bitstring"}, "bitstring")); this.spec.addDeclaration (new ProVerifReduc (new ProVerifVar[] {new ProVerifVar ("x", "bitstring"), new ProVerifVar ("k", "bitstring")}, SK_DECRYPT + " (" + SK_ENCRYPT + " (x, k), k) = x")); + this.spec.addDeclaration (new ProVerifComment ("Diffie-Hellman")); + this.spec.addDeclaration (new ProVerifFunc (DH_DH, new String[] {"bitstring", "bitstring"}, "bitstring")); + this.spec.addDeclaration (new ProVerifEquation (new ProVerifVar[] {new ProVerifVar ("x", "bitstring"), new ProVerifVar ("y", "bitstring")}, DH_DH + " (" + PK_PK + " (x), y) = " + DH_DH + " (" + PK_PK + " (y), x)")); + this.spec.addDeclaration (new ProVerifComment ("MAC")); this.spec.addDeclaration (new ProVerifFunc (MAC_MAC, new String[] {"bitstring", "bitstring"}, "bitstring")); this.spec.addDeclaration (new ProVerifFunc (MAC_VERIFYMAC, new String[] {"bitstring", "bitstring", "bitstring"}, "bitstring", diff --git a/src/myutil/BoolExpressionEvaluator.java b/src/myutil/BoolExpressionEvaluator.java index 9d149d7ebdf9cc0476d9a5c1919978e1040b18e8..b339a950adf8f472ddead46be1313389e98c3ea6 100755 --- a/src/myutil/BoolExpressionEvaluator.java +++ b/src/myutil/BoolExpressionEvaluator.java @@ -57,9 +57,9 @@ public class BoolExpressionEvaluator { public static final int INT_BINARY_OP = 3; public static final int BOOL_BINARY_OP = 4; public static final int BOOL_UNARY_OP = 5; - public static final int OPEN_PARENTHESIS = 6; + public static final int OPEN_PARENTHESIS = 6; - public int id = (int)(Math.ceil(Math.random() * 10000000)); + public int id = (int)(Math.ceil(Math.random() * 10000000)); public int i = -18; public boolean b; public int res; //-1: available, 0:int, 2:bool, 3:ko, others : OPs @@ -126,34 +126,34 @@ public class BoolExpressionEvaluator { return news; } - public IntBoolRes addOpenParenthesis() { - if ((left != null) && (right != null)) { - return null; - } + public IntBoolRes addOpenParenthesis() { + if ((left != null) && (right != null)) { + return null; + } - if ((left != null) && (op == 0)) { - return null; - } + if ((left != null) && (op == 0)) { + return null; + } - IntBoolRes newE = new IntBoolRes(OPEN_PARENTHESIS, OPEN_PAR_TOKEN, this); + IntBoolRes newE = new IntBoolRes(OPEN_PARENTHESIS, OPEN_PAR_TOKEN, this); - if (left == null) { - left = newE; - } else { - right = newE; - } + if (left == null) { + left = newE; + } else { + right = newE; + } - - IntBoolRes topPar = new IntBoolRes(); - topPar.father = newE; - newE.left = topPar; - - return topPar; - - } + IntBoolRes topPar = new IntBoolRes(); + topPar.father = newE; + newE.left = topPar; - public IntBoolRes addIntOperator(int _op) { + return topPar; + + } + + + public IntBoolRes addIntOperator(int _op) { // Must have at least one right operator TraceManager.addDev("Add int op"); if (left == null) { @@ -164,11 +164,12 @@ public class BoolExpressionEvaluator { if (right != null) { // Must change the tree structure according to the operator priority IntBoolRes newE = new IntBoolRes(INT_BINARY_OP, _op, this); - newE.left = right; - newE.father = right.father; + return addBinaryChangeTreeStruct(newE); + /*newE.left = right; + newE.father = right.father; right.father = newE; - this.right = newE; - return newE; + this.right = newE; + return newE;*/ } @@ -177,6 +178,7 @@ public class BoolExpressionEvaluator { if (!isAvailable()) { return null; } + res = INT_BINARY_OP; op = _op; return this; @@ -193,70 +195,82 @@ public class BoolExpressionEvaluator { if (right != null) { // Must change the tree structure accoding to the operator priority IntBoolRes newE = new IntBoolRes(BOOL_BINARY_OP, _op, this); + return addBinaryChangeTreeStruct(newE); - // Look for the father - if (isABinaryOperator() && (newE.getPriority()>=getPriority())) { - newE.left = right; - right.father = newE; - this.right = newE; - return newE; - } else { - // We must find the father where to add the operator - // We thus look for the first father with no binary operator - // or with a binary operator that has a higher priority - IntBoolRes targetF = this.father; - - boolean go = true; - while(go == true) { - if (targetF == null) { - go = false; - } else { - if (!(targetF.isABinaryOperator())) { - go = false; - } else if (targetF.hasAHigherPriorityThan(newE)) { - targetF = targetF.father; - } - } - } - - if (targetF == null) { - newE.left = top; - top.father = newE; - top = newE; - return top; - } else { - if (targetF.isABinaryOperator()) { - newE.right = targetF.left; - targetF.left = newE; - newE.father = targetF.father; - targetF.father = newE; - return newE; - } else { - newE.right = targetF.right; - targetF.right = newE; - newE.father = targetF; - return newE; - } - - } - - - } - - } - // Element added at the root of the current // If the current has no type .. if (!isAvailable()) { return null; } + res = BOOL_BINARY_OP; op = _op; return this; } + public IntBoolRes addBinaryChangeTreeStruct(IntBoolRes newE) { + + // Look for the father + if (isABinaryOperator() && (newE.getPriority()>=getPriority())) { + newE.left = right; + right.father = newE; + this.right = newE; + return newE; + } else { + // We must find the father where to add the operator + // We thus look for the first father with no binary operator + // or with a binary operator that has a higher priority + TraceManager.addDev("----- Must find a target"); + IntBoolRes targetF = this.father; + + boolean go = true; + while(go == true) { + TraceManager.addDev("in loop targetF=" + targetF); + if (targetF == null) { + go = false; + } else { + if (!(targetF.isABinaryOperator())) { + go = false; + } else if (targetF.hasAHigherPriorityThan(newE)) { + IntBoolRes nexT = targetF.father; + if (nexT == targetF) { + go = false; + } + targetF = nexT; + } else { + go = false; + } + } + } + + TraceManager.addDev("**************** Considering targetF=" + targetF); + + if (targetF == null) { + newE.left = top; + top.father = newE; + newE.father = null; + top = newE; + return top; + } else { + if (targetF.isABinaryOperator()) { + newE.right = targetF.left; + targetF.left = newE; + newE.father = targetF.father; + targetF.father = newE; + return newE; + } else { + TraceManager.addDev("Unaryoperator"); + newE.left = targetF.left; + targetF.left = newE; + newE.father = targetF; + return newE; + } + } + } + } + public boolean isAvailable() { return res == AVAILABLE; @@ -274,44 +288,45 @@ public class BoolExpressionEvaluator { return (res == INT_TERM) || (res == BOOL_TERM); } - public boolean isRight() { - if (father != null) { - return father.right == this; - } - return false; - } - - public boolean isLeft() { - if (father != null) { - return father.left == this; - } - return false; - } - - public boolean isABinaryOperator(){ - return (res == INT_BINARY_OP) || (res == BOOL_BINARY_OP); - } - - public boolean hasAHigherPriorityThan(IntBoolRes _other) { - return (getPriority() > _other.getPriority()); - } - - public int getPriority() { - if (res == BOOL_BINARY_OP) { - return 1; - } - - if (res == INT_BINARY_OP) { - if ((op == PLUS_TOKEN) || (op == MINUS_TOKEN)) - return 2; - else { - return 3; - } - } - - return 0; - } - + public boolean isRight() { + if (father != null) { + return father.right == this; + } + return false; + } + + public boolean isLeft() { + if (father != null) { + return father.left == this; + } + return false; + } + + public boolean isABinaryOperator(){ + return (res == INT_BINARY_OP) || (res == BOOL_BINARY_OP); + } + + public boolean hasAHigherPriorityThan(IntBoolRes _other) { + return (getPriority() > _other.getPriority()); + } + + public int getPriority() { + if (res == BOOL_BINARY_OP) { + return 1; + } + + if (res == INT_BINARY_OP) { + if ((op == PLUS_TOKEN) || (op == MINUS_TOKEN)) + return 2; + else { + TraceManager.addDev("HAVE PRIORITY 3"); + return 3; + } + } + + return 0; + } + public String getValueString() { if (res == 0) { @@ -351,11 +366,23 @@ public class BoolExpressionEvaluator { return null; } - private Integer makeIntegerOp(int op, int elt1, int elt2) { + private Integer makeIntegerOp(int op, int elt1, int elt2) { if (op == PLUS_TOKEN) { return new Integer(elt1 + elt2); } + if (op == MINUS_TOKEN) { + return new Integer(elt1 - elt2); + } + + if (op == MULT_TOKEN) { + return new Integer(elt1 * elt2); + } + + if (op == DIV_TOKEN) { + return new Integer(elt1 / elt2); + } + return null; } @@ -384,19 +411,19 @@ public class BoolExpressionEvaluator { } } - if (res == INT_BINARY_OP) { - TraceManager.addDev("Found binary int expr"); + if (res == INT_BINARY_OP) { + TraceManager.addDev("Found binary int expr"); if ((right == null) || (left == null)) { errorMessage = "Badly formatted binary int operator"; - TraceManager.addDev("Found binary int expr in null"); + TraceManager.addDev("Found binary int expr in null"); return null; } Object ob1 = right.computeValue(); Object ob2 = left.computeValue(); if ((ob1 == null) || (ob2 == null)) { - TraceManager.addDev("Found binary int expr in null elt"); + TraceManager.addDev("Found binary int expr in null elt"); return null; - } + } if ((ob1 instanceof Integer) && (ob2 instanceof Integer)) { int elt1 = analysisArg(ob1); int elt2 = analysisArg(ob2); @@ -405,62 +432,62 @@ public class BoolExpressionEvaluator { TraceManager.addDev("Result int=" + result); return result; } else { - errorMessage = "Invalid operands in integer operations"; - return null; - } + errorMessage = "Invalid operands in integer operations"; + return null; + } } - - if (res == OPEN_PARENTHESIS) { - if (left == null) { - return null; - } - return left.computeValue(); - } - errorMessage = "Badly formatted expression from:" + this; - + if (res == OPEN_PARENTHESIS) { + if (left == null) { + return null; + } + return left.computeValue(); + } + + errorMessage = "Badly formatted expression from:" + this; + return null; } - public String toString() { - return toString(0); - } - - public String toString(int dec) { - String s = "\n" + newLine(dec); - if (isRight()) { - s = s + "R->"; - } - if (isLeft()) { - s = s + "L->"; - } - s += id; - if (father == null) { - s += " father= no"; - } else { - s += " father=" + id; - } - s += " type:" + res + " op:" + toStringAction(op) + " int:" + i + " bool:" + b; - - if (left != null) { - s += left.toString(dec+1); - } - if (right != null) { - s += right.toString(dec+1); - } - return s; - } - - private String newLine(int dec) { - String s = ""; - for (int i=0; i<dec; i++) { - s += "\t"; - } - return s; - } - + public String toString() { + return toString(0); + } + + public String toString(int dec) { + String s = "\n" + newLine(dec); + if (isRight()) { + s = s + "R->"; + } + if (isLeft()) { + s = s + "L->"; + } + s += id; + if (father == null) { + s += " father= no"; + } else { + s += " father=" + id; + } + s += " type:" + res + " op:" + toStringAction(op) + " int:" + i + " bool:" + b; + + if (left != null) { + s += left.toString(dec+1); + } + if (right != null) { + s += right.toString(dec+1); + } + return s; + } + + private String newLine(int dec) { + String s = ""; + for (int i=0; i<dec; i++) { + s += "\t"; + } + return s; + } + } // ---------------------------------------- @@ -472,7 +499,7 @@ public class BoolExpressionEvaluator { public static final int FALSE_VALUE = 0; - + public static final int NUMBER_TOKEN = -1; public static final int BOOL_TOKEN = -2; public static final int EQUAL_TOKEN = -3; @@ -496,13 +523,13 @@ public class BoolExpressionEvaluator { public static final String [] VAL_S = {"true", "false", "nb", "bool", "==", "<", ">", "not", "or", "and", "=<", ">=", "eol", "(", ")", " ", "!=", "-", "/", "*", "+"}; public static String toStringAction(int val) { - if (val >= 0) { - return VAL_S[val]; - } + if (val >= 0) { + return VAL_S[val]; + } - return VAL_S[Math.abs(val) + 1]; + return VAL_S[Math.abs(val) + 1]; } - + public static int ID = 0; @@ -1497,18 +1524,18 @@ public class BoolExpressionEvaluator { return false; } - - TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree"); + + TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree"); Object res = resIBR.computeValue(); - if (res == null) { + if (res == null) { return false; } - TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree"); - + TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree"); + if(res instanceof Integer) { errorMessage = "Integer expression. Was expecting a boolean expression"; } @@ -1517,13 +1544,13 @@ public class BoolExpressionEvaluator { TraceManager.addDev("Error: " + getError()); } - if (res instanceof Boolean) { - boolean result = ((Boolean)(res)).booleanValue(); - return result; - } + if (res instanceof Boolean) { + boolean result = ((Boolean)(res)).booleanValue(); + return result; + } + + errorMessage = "Invalid boolean expression"; - errorMessage = "Invalid boolean expression"; - return false; } @@ -1563,11 +1590,11 @@ public class BoolExpressionEvaluator { } public IntBoolRes parseAndMakeTree(IntBoolRes current, String token) { - ID = 0; + ID = 0; IntBoolRes newElt; - TraceManager.addDev("Dealing with token=" + token + " with current=" + current); - + TraceManager.addDev("<><><><><><> Dealing with token:" + token); + char c1 = token.charAt(0); @@ -1602,103 +1629,88 @@ public class BoolExpressionEvaluator { } - // INT BINARY OP - if (c1 == '+') { + // INT BINARY OP + if (c1 == '+') { newElt = current.addIntOperator(PLUS_TOKEN); if (newElt == null) { - errorMessage = "Badly placed bool operator:" + token; + errorMessage = "Badly placed int operator:" + token; return null; } return newElt; } - // BOOL BINARY OP - if (c1 == '=') { - newElt = current.addBinaryOperator(EQUAL_TOKEN); + if (c1 == '-') { + newElt = current.addIntOperator(MINUS_TOKEN); if (newElt == null) { - errorMessage = "Badly placed bool operator:" + token; + errorMessage = "Badly placed int operator:" + token; return null; } return newElt; } - // PARENTHESIS - if (c1 == '(') { - - newElt = current.addOpenParenthesis(); + if (c1 == '*') { + newElt = current.addIntOperator(MULT_TOKEN); if (newElt == null) { - errorMessage = "Badly placed parenthesis:"; + errorMessage = "Badly placed int operator:" + token; return null; } return newElt; - } - - - if (c1 == ')') { - // Must find corresponding parenthesis - // Looking for father of the correspoing parenthesis; - IntBoolRes father = current.father; - while(father != null) { - if (father.op == OPEN_PAR_TOKEN) { - break; - } - father = father.father; - } - if (father == null) { - return null; - } - return father.father; - - } - - - return null; - - - } - - /*public IntBoolRes findValueFromExpr() { - String s = getNextToken(); - if (s == null) { - return null; - } + } - // Space symbol - if (c1 == ' ') { - return findValueFromExpr(); - } + if (c1 == '/') { + newElt = current.addIntOperator(DIV_TOKEN); + if (newElt == null) { + errorMessage = "Badly placed int operator:" + token; + return null; + } + return newElt; + } - // Terminal symbol - if (Character.isDigit(c1)) { - try { - return new IntBoolRes(Integer.valueOf(s).intValue()); - } catch (NumberFormatException x) { - errorMessage = "Illegal format for a number."; - return null; - } - } - if (c1 == 't') { + // BOOL BINARY OP + if (c1 == '=') { + newElt = current.addBinaryOperator(EQUAL_TOKEN); + if (newElt == null) { + errorMessage = "Badly placed bool operator:" + token; + return null; + } + return newElt; + } - return IntBoolRes(true); - } + // PARENTHESIS + if (c1 == '(') { - if (c1 == 'f') { - return IntBoolRes(false); - } + newElt = current.addOpenParenthesis(); + if (newElt == null) { + errorMessage = "Badly placed parenthesis:"; + return null; + } + return newElt; + } - // int operator - if (c1 == '+') { - return IntBoolRes(IntBoolRes.INT_OP, PLUS, c1); - } + if (c1 == ')') { + // Must find corresponding parenthesis + // Looking for father of the correspoing parenthesis; + IntBoolRes father = current.father; + while(father != null) { + if (father.op == OPEN_PAR_TOKEN) { + break; + } + father = father.father; + } + if (father == null) { + return null; + } + return father.father; + } - return null; - }*/ + return null; + } } diff --git a/src/proverifspec/ProVerifEquation.java b/src/proverifspec/ProVerifEquation.java new file mode 100644 index 0000000000000000000000000000000000000000..53ca95e6572377783e9b01231a2ce75ffea91ad1 --- /dev/null +++ b/src/proverifspec/ProVerifEquation.java @@ -0,0 +1,60 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * + * /** + * Class ProVerifFunc + * Creation: 06/04/2017 + * @version 1.0 06/04/2017 + * @author Florian LUGOU + * @see + */ + +package proverifspec; + +public class ProVerifEquation implements ProVerifDeclaration { + protected ProVerifVar[] vars; + protected String formula; + + public ProVerifEquation (ProVerifVar[] _vars, String _formula) { + this.vars = _vars; + this.formula = _formula; + } + + public void translate (ProVerifSyntaxer _syntaxer, int _alinea) { + _syntaxer.translateEquation (this, _alinea); + } +} diff --git a/src/proverifspec/ProVerifPiSyntaxer.java b/src/proverifspec/ProVerifPiSyntaxer.java index 7b3f1749f6e6b09a6969ea46ada7ce2659bbb948..731852d25057bdeba81d7d640dfe2f71971248c8 100644 --- a/src/proverifspec/ProVerifPiSyntaxer.java +++ b/src/proverifspec/ProVerifPiSyntaxer.java @@ -83,6 +83,11 @@ public class ProVerifPiSyntaxer extends ProVerifSyntaxer { this.fullSpec += "."; } + protected void translateEquation (ProVerifEquation _node, int _alinea) { + this.fullSpec += "\n" + this.printAlinea (_alinea); + this.fullSpec += "equation " + _node.formula + "."; + } + protected void translateVar (ProVerifVar _node, int _alinea) { this.fullSpec += "\n" + this.printAlinea (_alinea); if (_node.priv) diff --git a/src/proverifspec/ProVerifPitypeSyntaxer.java b/src/proverifspec/ProVerifPitypeSyntaxer.java index be64de5a75b0fc2e71dd2ebd7653119b1bba9917..ed39452f829cd20da303b311f85718a83e1b44eb 100644 --- a/src/proverifspec/ProVerifPitypeSyntaxer.java +++ b/src/proverifspec/ProVerifPitypeSyntaxer.java @@ -117,6 +117,24 @@ public class ProVerifPitypeSyntaxer extends ProVerifSyntaxer { this.fullSpec += "."; } + protected void translateEquation (ProVerifEquation _node, int _alinea) { + this.fullSpec += "\n" + this.printAlinea (_alinea); + this.fullSpec += "equation "; + if (_node.vars.length > 0) { + this.fullSpec += "forall "; + boolean first = true; + for (ProVerifVar var: _node.vars) { + if (first) + first = false; + else + this.fullSpec += ", "; + this.fullSpec += var.name + ": " + var.type; + } + this.fullSpec += "; "; + } + this.fullSpec += _node.formula + "."; + } + protected void translateVar (ProVerifVar _node, int _alinea) { this.fullSpec += "\n" + this.printAlinea (_alinea); this.fullSpec += "free " + _node.name + ": " + _node.type; diff --git a/src/proverifspec/ProVerifSyntaxer.java b/src/proverifspec/ProVerifSyntaxer.java index 9ed8d2440c939f8edbadabb7e8b456ee88d5c31e..318cd20b1c2553b1f4d173f983900b77e9cfbc51 100644 --- a/src/proverifspec/ProVerifSyntaxer.java +++ b/src/proverifspec/ProVerifSyntaxer.java @@ -185,6 +185,7 @@ public abstract class ProVerifSyntaxer { protected abstract void translateConst (ProVerifConst _node, int _alinea); protected abstract void translateFunc (ProVerifFunc _node, int _alinea); protected abstract void translateReduc (ProVerifReduc _node, int _alinea); + protected abstract void translateEquation (ProVerifEquation _node, int _alinea); protected abstract void translateVar (ProVerifVar _node, int _alinea); protected abstract void translateQueryAtt (ProVerifQueryAtt _node, int _alinea); protected abstract void translateQueryEv (ProVerifQueryEv _node, int _alinea); diff --git a/src/tmltranslator/toproverif/TML2ProVerif.java b/src/tmltranslator/toproverif/TML2ProVerif.java index 6ecbf603504e342e44803a59aa6abd9ba82dbc02..af640f50fd4f49491d94eb6638a0043c021d13b9 100644 --- a/src/tmltranslator/toproverif/TML2ProVerif.java +++ b/src/tmltranslator/toproverif/TML2ProVerif.java @@ -82,6 +82,8 @@ public class TML2ProVerif { private final static String SK_ENCRYPT = "sencrypt"; private final static String SK_DECRYPT = "sdecrypt"; + private final static String DH_DH = "DH"; + private final static String MAC_MAC = "MAC"; private final static String MAC_VERIFYMAC = "verifyMAC"; @@ -317,6 +319,10 @@ public class TML2ProVerif { this.spec.addDeclaration (new ProVerifFunc (SK_ENCRYPT, new String[] {"bitstring", "bitstring"}, "bitstring")); this.spec.addDeclaration (new ProVerifReduc (new ProVerifVar[] {new ProVerifVar ("x", "bitstring"), new ProVerifVar ("k", "bitstring")}, SK_DECRYPT + " (" + SK_ENCRYPT + " (x, k), k) = x")); + this.spec.addDeclaration (new ProVerifComment ("Diffie-Hellman")); + this.spec.addDeclaration (new ProVerifFunc (DH_DH, new String[] {"bitstring", "bitstring"}, "bitstring")); + this.spec.addDeclaration (new ProVerifEquation (new ProVerifVar[] {new ProVerifVar ("x", "bitstring"), new ProVerifVar ("y", "bitstring")}, DH_DH + " (" + PK_PK + " (x), y) = " + DH_DH + " (" + PK_PK + " (y), x)")); + this.spec.addDeclaration (new ProVerifComment ("MAC")); this.spec.addDeclaration (new ProVerifFunc (MAC_MAC, new String[] {"bitstring", "bitstring"}, "bitstring")); this.spec.addDeclaration (new ProVerifFunc (MAC_VERIFYMAC, new String[] {"bitstring", "bitstring", "bitstring"}, "bitstring", diff --git a/src/ui/ADDPanel.java b/src/ui/ADDPanel.java index e4f99484a478d62ffc879a26fc6ab3ee5891b9f4..2007521124e7343687ca3497631e76f741136c18 100755 --- a/src/ui/ADDPanel.java +++ b/src/ui/ADDPanel.java @@ -98,8 +98,11 @@ public class ADDPanel extends TURTLEPanel { return true; } - public String saveHeaderInXml() { - return "<Modeling type=\"ADD\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"ADD\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"ADD\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/AnalysisPanel.java b/src/ui/AnalysisPanel.java index e1c337f714ab5ad7a3bc0bc427b5e7ba6cf6f9d2..d8400451a4bfca79c326eb9f02ee51c7ada44231 100755 --- a/src/ui/AnalysisPanel.java +++ b/src/ui/AnalysisPanel.java @@ -245,8 +245,11 @@ public class AnalysisPanel extends TURTLEPanel { }*/ - public String saveHeaderInXml() { - return "<Modeling type=\"Analysis\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Analysis\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Analysis\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/AttackTreePanel.java b/src/ui/AttackTreePanel.java index 3825bfe93e7a82ad3dff9d2a64a1267267dbbe44..8243a898e81d21e1735c4c3722282a8dd6eeb545 100755 --- a/src/ui/AttackTreePanel.java +++ b/src/ui/AttackTreePanel.java @@ -112,9 +112,11 @@ public class AttackTreePanel extends TURTLEPanel { return true; } - - public String saveHeaderInXml() { - return "<Modeling type=\"AttackTree\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"AttackTree\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"AttackTree\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/AvatarAnalysisPanel.java b/src/ui/AvatarAnalysisPanel.java index a286eb445bc674f285daf58ab507f93357b01af2..d71622d6469a52b51f319a0ccfe71f6730293087 100755 --- a/src/ui/AvatarAnalysisPanel.java +++ b/src/ui/AvatarAnalysisPanel.java @@ -199,8 +199,12 @@ public class AvatarAnalysisPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"Avatar Analysis\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Avatar Analysis\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Avatar Analysis\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + } public String saveTailInXml() { diff --git a/src/ui/AvatarDesignPanel.java b/src/ui/AvatarDesignPanel.java index 825fbd3ac8daa88e0da77238ca4238a47da5b443..daa5a61fb0fae5c60eb45c9e1dbd8fcfad4b85b7 100644 --- a/src/ui/AvatarDesignPanel.java +++ b/src/ui/AvatarDesignPanel.java @@ -202,9 +202,12 @@ public class AvatarDesignPanel extends TURTLEPanel { public LinkedList<String> getAllTimers(String _name) { return abdp.getAllTimersOfBlock(_name); } - - public String saveHeaderInXml() { - return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/AvatarMADsPanel.java b/src/ui/AvatarMADsPanel.java index 3be35dd185385be7ffb2ceaf2717eed5195f124d..f3591db9c5a0ec5444460020142d60e606008b6d 100644 --- a/src/ui/AvatarMADsPanel.java +++ b/src/ui/AvatarMADsPanel.java @@ -132,9 +132,12 @@ public class AvatarMADsPanel extends TURTLEPanel { } - - public String saveHeaderInXml() { - return "<Modeling type=\"Avatar MAD\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Avatar MAD\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Avatar MAD\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/AvatarMethod.java b/src/ui/AvatarMethod.java index 44954829087d3b879960105d4260c6d9c1415cf7..6ed469873fcc2300d8155710c15f9367caf6d804 100644 --- a/src/ui/AvatarMethod.java +++ b/src/ui/AvatarMethod.java @@ -66,6 +66,7 @@ public class AvatarMethod { "Key getpk(Message cert)", "Message sencrypt(Message msg, Key k)", "Message sdecrypt(Message msg, Key k)", + "Key DH(Key pubK, Key privK)", "Message hash(Message msg)", "Message MAC(Message msg, Key k)", "bool verifyMAC(Message msg, Key k, Message macmsg)", diff --git a/src/ui/AvatarMethodologyPanel.java b/src/ui/AvatarMethodologyPanel.java index ec1eb3e178d828792f0d0dbcc0e27b1a9a75cfff..b1de004ee3c4512b0d6e99b56240945d1ef2510f 100755 --- a/src/ui/AvatarMethodologyPanel.java +++ b/src/ui/AvatarMethodologyPanel.java @@ -1,48 +1,48 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille -ludovic.apvrille AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class AvatarMethodologyPanel - * Managenemt of the avatar methodology panels - * Creation: 27/08/2014 - * @version 1.1 27/08/2014 - * @author Ludovic APVRILLE - * @see MainGUI - */ + ludovic.apvrille AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class AvatarMethodologyPanel + * Managenemt of the avatar methodology panels + * Creation: 27/08/2014 + * @version 1.1 27/08/2014 + * @author Ludovic APVRILLE + * @see MainGUI + */ package ui; @@ -56,174 +56,176 @@ import java.util.*; public class AvatarMethodologyPanel extends TURTLEPanel { public AvatarMethodologyDiagramPanel dmd; - + public AvatarMethodologyPanel(MainGUI _mgui) { super(_mgui); - + tabbedPane = new JTabbedPane(); - UIManager.put("TabbedPane.tabAreaBackground", _mgui.BACK_COLOR); - UIManager.put("TabbedPane.selected", _mgui.BACK_COLOR); - SwingUtilities.updateComponentTreeUI(tabbedPane); - //tabbedPane.setOpaque(true); - + UIManager.put("TabbedPane.tabAreaBackground", _mgui.BACK_COLOR); + UIManager.put("TabbedPane.selected", _mgui.BACK_COLOR); + SwingUtilities.updateComponentTreeUI(tabbedPane); + //tabbedPane.setOpaque(true); + cl = new ChangeListener() { - public void stateChanged(ChangeEvent e){ - mgui.paneDiplodocusMethodologyAction(e); - } - }; + public void stateChanged(ChangeEvent e){ + mgui.paneDiplodocusMethodologyAction(e); + } + }; tabbedPane.addChangeListener(cl); tabbedPane.addMouseListener(new TURTLEPanelPopupListener(this, mgui)); - + } - + // Put the methodology public void initElements() { - TGComponent tgc1 = dmd.addComponent(150, 100, TGComponentManager.AVATARMETHODOLOGY_REF_ASSUMPTIONS, false); - TGComponent tgc2 = dmd.addComponent(250, 200, TGComponentManager.AVATARMETHODOLOGY_REF_REQUIREMENT, false); - TGComponent tgc3 = dmd.addComponent(350, 300, TGComponentManager.AVATARMETHODOLOGY_REF_ANALYSIS, false); - TGComponent tgc4 = dmd.addComponent(450, 400, TGComponentManager.AVATARMETHODOLOGY_REF_DESIGN, false); - TGComponent tgc5 = dmd.addComponent(550, 500, TGComponentManager.AVATARMETHODOLOGY_REF_PROTOTYPE, false); - TGComponent tgc6 = dmd.addComponent(200, 400, TGComponentManager.AVATARMETHODOLOGY_REF_PROPERTIES, false); - - - //Connectors - - // Assumptions -> reqs - TGConnectingPoint p1, p2; - p1 = tgc1.getTGConnectingPointAtIndex(0); - p2 = tgc2.getTGConnectingPointAtIndex(0); - Vector listPoint = new Vector(); - Point p = new Point(210, 235); - listPoint.add(p); - TGConnector tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); - p1.setFree(false); - p2.setFree(false); - dmd.getComponentList().add(0, tgco); - - // Reqs -> Analysis - p1 = tgc2.getTGConnectingPointAtIndex(1); - p2 = tgc3.getTGConnectingPointAtIndex(0); - listPoint = new Vector(); - p = new Point(310, 335); - listPoint.add(p); - tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); - p1.setFree(false); - p2.setFree(false); - dmd.getComponentList().add(0, tgco); - - // Analysis -> Design - p1 = tgc3.getTGConnectingPointAtIndex(1); - p2 = tgc4.getTGConnectingPointAtIndex(0); - listPoint = new Vector(); - p = new Point(410, 435); - listPoint.add(p); - tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); - p1.setFree(false); - p2.setFree(false); - dmd.getComponentList().add(0, tgco); - - // Design -> Prototyping - p1 = tgc4.getTGConnectingPointAtIndex(1); - p2 = tgc5.getTGConnectingPointAtIndex(0); - listPoint = new Vector(); - p = new Point(510, 535); - listPoint.add(p); - tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); - p1.setFree(false); - p2.setFree(false); - dmd.getComponentList().add(0, tgco); - - // Reqs -> Prop - p1 = tgc2.getTGConnectingPointAtIndex(2); - p2 = tgc6.getTGConnectingPointAtIndex(0); - listPoint = new Vector(); - tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); - p1.setFree(false); - p2.setFree(false); - dmd.getComponentList().add(0, tgco); - - + TGComponent tgc1 = dmd.addComponent(150, 100, TGComponentManager.AVATARMETHODOLOGY_REF_ASSUMPTIONS, false); + TGComponent tgc2 = dmd.addComponent(250, 200, TGComponentManager.AVATARMETHODOLOGY_REF_REQUIREMENT, false); + TGComponent tgc3 = dmd.addComponent(350, 300, TGComponentManager.AVATARMETHODOLOGY_REF_ANALYSIS, false); + TGComponent tgc4 = dmd.addComponent(450, 400, TGComponentManager.AVATARMETHODOLOGY_REF_DESIGN, false); + TGComponent tgc5 = dmd.addComponent(550, 500, TGComponentManager.AVATARMETHODOLOGY_REF_PROTOTYPE, false); + TGComponent tgc6 = dmd.addComponent(200, 400, TGComponentManager.AVATARMETHODOLOGY_REF_PROPERTIES, false); + + + //Connectors + + // Assumptions -> reqs + TGConnectingPoint p1, p2; + p1 = tgc1.getTGConnectingPointAtIndex(0); + p2 = tgc2.getTGConnectingPointAtIndex(0); + Vector listPoint = new Vector(); + Point p = new Point(210, 235); + listPoint.add(p); + TGConnector tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); + p1.setFree(false); + p2.setFree(false); + dmd.getComponentList().add(0, tgco); + + // Reqs -> Analysis + p1 = tgc2.getTGConnectingPointAtIndex(1); + p2 = tgc3.getTGConnectingPointAtIndex(0); + listPoint = new Vector(); + p = new Point(310, 335); + listPoint.add(p); + tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); + p1.setFree(false); + p2.setFree(false); + dmd.getComponentList().add(0, tgco); + + // Analysis -> Design + p1 = tgc3.getTGConnectingPointAtIndex(1); + p2 = tgc4.getTGConnectingPointAtIndex(0); + listPoint = new Vector(); + p = new Point(410, 435); + listPoint.add(p); + tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); + p1.setFree(false); + p2.setFree(false); + dmd.getComponentList().add(0, tgco); + + // Design -> Prototyping + p1 = tgc4.getTGConnectingPointAtIndex(1); + p2 = tgc5.getTGConnectingPointAtIndex(0); + listPoint = new Vector(); + p = new Point(510, 535); + listPoint.add(p); + tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); + p1.setFree(false); + p2.setFree(false); + dmd.getComponentList().add(0, tgco); + + // Reqs -> Prop + p1 = tgc2.getTGConnectingPointAtIndex(2); + p2 = tgc6.getTGConnectingPointAtIndex(0); + listPoint = new Vector(); + tgco = TGComponentManager.addConnector(p1.getX(), p1.getY(), TGComponentManager.AVATARMETHODOLOGY_CONNECTOR, dmd, p1, p2, listPoint); + p1.setFree(false); + p2.setFree(false); + dmd.getComponentList().add(0, tgco); + + } - + public void init() { - init("Avatar methodology"); + init("Avatar methodology"); } - + public void init(String name) { addAvatarMethodologyDiagram(name); - + // Requirement Diagram toolbar //addRequirementDiagram("Requirement Diagram"); - + //jsp.setVisible(true); } - + public boolean addAvatarMethodologyDiagram(String s) { AvatarMethodologyDiagramToolbar dmdt = new AvatarMethodologyDiagramToolbar(mgui); toolbars.add(dmdt); - + toolBarPanel = new JPanel(); - //toolBarPanel.setBackground(Color.red); + //toolBarPanel.setBackground(Color.red); toolBarPanel.setLayout(new BorderLayout()); - //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); - - //Class diagram + //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); + + //Class diagram dmd = new AvatarMethodologyDiagramPanel(mgui, dmdt); dmd.setName(s); dmd.tp = this; tdp = dmd; panels.add(dmd); - JScrollDiagramPanel jsp = new JScrollDiagramPanel(dmd); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(dmd); dmd.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement(mgui.INCREMENT); toolBarPanel.add(dmdt, BorderLayout.NORTH); toolBarPanel.add(jsp, BorderLayout.CENTER); tabbedPane.addTab(s, IconManager.imgic99, toolBarPanel, "Opens avatar methodology"); - tabbedPane.setSelectedIndex(0); + tabbedPane.setSelectedIndex(0); JPanel toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - + //TGComponent tgc = TGComponentManager.addComponent(100, 100, TGComponentManager.DIPLODODUSMETHODOLOGY_REF_APPLICATION, dmd); mgui.changeMade(dmd, TDiagramPanel.NEW_COMPONENT); - + return true; } - - - public String saveHeaderInXml() { - return "<Modeling type=\"Avatar Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Avatar Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Avatar Methodology\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } - + public String saveTailInXml() { return "</Modeling>\n\n\n"; } - + public String toString() { return mgui.getTitleAt(this) + " (Avatar Methodology)"; } - + public boolean removeEnabled(int index) { if (panels.size() > 1) { return true; } return false; } - + public boolean renameEnabled(int index) { if (panels.size() == 0) { return false; } - - + + return true; } - - public boolean isAvatarMethodologyEnabled() { - return true; - } - -} \ No newline at end of file + public boolean isAvatarMethodologyEnabled() { + return true; + } + + +} diff --git a/src/ui/AvatarRequirementPanel.java b/src/ui/AvatarRequirementPanel.java index 74d76a28a627078d439a7976190dd105f0e20c80..7bdd7d2f82de589ddad5b66810bf1874a1bae47e 100755 --- a/src/ui/AvatarRequirementPanel.java +++ b/src/ui/AvatarRequirementPanel.java @@ -145,9 +145,11 @@ public class AvatarRequirementPanel extends TURTLEPanel { return true; } - - public String saveHeaderInXml() { - return "<Modeling type=\"Avatar Requirement\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Avatar Requirement\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Avatar Requirement\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/DefaultText.java b/src/ui/DefaultText.java index 434d1e9201d426f8b1b54eeef39b9e4cb149b126..e0703c71c8f60e7463e5b5b10dad75110378bcf8 100755 --- a/src/ui/DefaultText.java +++ b/src/ui/DefaultText.java @@ -49,8 +49,8 @@ package ui; public class DefaultText { - public static String BUILD = "12180"; - public static String DATE = "2017/04/04 02:01:04 CET"; + public static String BUILD = "12187"; + public static String DATE = "2017/04/10 02:01:03 CET"; public static StringBuffer sbAbout = makeAbout(); @@ -60,7 +60,7 @@ public class DefaultText { } public static String getVersion() { - return "0.99-beta2"; /* Set new release March. 30th, 2017 */ + return "0.99-beta4"; /* Set new release April. 6th, 2017 (to come)*/ } public static String getFullVersion() { diff --git a/src/ui/DeploymentPanel.java b/src/ui/DeploymentPanel.java index 71998c44abd1e11c9f40898b705a9ad925a917e0..5da70b25339270387a19248a3de6d3615450ef67 100755 --- a/src/ui/DeploymentPanel.java +++ b/src/ui/DeploymentPanel.java @@ -97,8 +97,12 @@ public class DeploymentPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"Deployment\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Deployment\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Deployment\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + } public String saveTailInXml() { diff --git a/src/ui/DesignPanel.java b/src/ui/DesignPanel.java index 054630708d2e2a439e62c3158ee5dc9e32ff69ca..2378089435aa561f8fa783ca121ad3abefa932c8 100755 --- a/src/ui/DesignPanel.java +++ b/src/ui/DesignPanel.java @@ -141,9 +141,13 @@ public class DesignPanel extends TURTLEPanel implements TURTLEDesignPanelInterfa //jsp.setVisible(true); } - - public String saveHeaderInXml() { - return "<Modeling type=\"Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + } public String saveTailInXml() { diff --git a/src/ui/DiplodocusMethodologyPanel.java b/src/ui/DiplodocusMethodologyPanel.java index 80d1507cada225c4f8ad0f24afe512f127ad8410..323b0d7cccbddb1ced632de9b32a34be4edc6a06 100755 --- a/src/ui/DiplodocusMethodologyPanel.java +++ b/src/ui/DiplodocusMethodologyPanel.java @@ -163,9 +163,11 @@ public class DiplodocusMethodologyPanel extends TURTLEPanel { - - public String saveHeaderInXml() { - return "<Modeling type=\"Diplodocus Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Diplodocus Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Diplodocus Methodology\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/GTURTLEModeling.java b/src/ui/GTURTLEModeling.java index 778ec7cd70003e30d53f5d611f6fc8bbe26871e3..f4675115b001e217d8126c5a5c211c20ca773ad8 100755 --- a/src/ui/GTURTLEModeling.java +++ b/src/ui/GTURTLEModeling.java @@ -4308,6 +4308,10 @@ public class GTURTLEModeling { } public String makeXMLFromTurtleModeling(int index) { + return makeXMLFromTurtleModeling(index, null); + } + + public String makeXMLFromTurtleModeling(int index, String extensionToName) { StringBuffer sb = new StringBuffer(); //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); @@ -4321,7 +4325,7 @@ public class GTURTLEModeling { for(i=0; i<panels.size(); i++) { if ((index == -1) || (i == index)) { tp = (TURTLEPanel)(panels.elementAt(i)); - s = tp.saveInXML(); + s = tp.saveInXML(extensionToName); if (s == null) { return null; } diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java index ac8e18d0a97f06e98fd023e7ca0d2b2c92355b29..a3622f0977646cba618b7fbfd28bdde0f6cde179 100644 --- a/src/ui/MainGUI.java +++ b/src/ui/MainGUI.java @@ -151,8 +151,6 @@ import ui.osad.TURTLEOSActivityDiagramPanel; import ui.prosmd.ProactiveSMDPanel; import ui.req.Requirement; import ui.req.RequirementDiagramPanel; -import ui.sd.*; -import ui.sd2.*; import ui.tmlad.TMLActivityDiagramPanel; import ui.tmlcd.TMLTaskDiagramPanel; import ui.tmlcompd.TMLCCompositeComponent; @@ -7130,7 +7128,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } public void cloneTab(int index) { - String s = gtm.makeXMLFromTurtleModeling(index); + String s = gtm.makeXMLFromTurtleModeling(index, "_cloned"); try { gtm.loadModelingFromXML(s); changeMade(null, -1); diff --git a/src/ui/NCPanel.java b/src/ui/NCPanel.java index af50c3ac41462aba03ebe7c12b84cd57da045e1a..611f0ddb3c4441ce9bc6ea51e9d0d6ffe571ea12 100755 --- a/src/ui/NCPanel.java +++ b/src/ui/NCPanel.java @@ -1,49 +1,49 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille -ludovic.apvrille AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class NCPanel - * Managenemt of NC panels - * Creation: 18/11/2008 - * @version 1.0 18/11/2008 - * @author Ludovic APVRILLE - * @see MainGUI - */ - + ludovic.apvrille AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class NCPanel + * Managenemt of NC panels + * Creation: 18/11/2008 + * @version 1.0 18/11/2008 + * @author Ludovic APVRILLE + * @see MainGUI + */ + package ui; import java.awt.*; @@ -53,37 +53,37 @@ import java.util.*; import ui.ncdd.*; public class NCPanel extends TURTLEPanel { - public NCDiagramPanel ncdp; + public NCDiagramPanel ncdp; public Vector validated, ignored; - + public NCPanel(MainGUI _mgui) { super(_mgui); tabbedPane = new JTabbedPane(); cl = new ChangeListener() { - public void stateChanged(ChangeEvent e){ - mgui.paneDesignAction(e); - } - }; + public void stateChanged(ChangeEvent e){ + mgui.paneDesignAction(e); + } + }; tabbedPane.addChangeListener(cl); tabbedPane.addMouseListener(new TURTLEPanelPopupListener(this, mgui)); } - + public void init() { - + // Class Diagram toolbar NCDiagramToolBar toolBarNC = new NCDiagramToolBar(mgui); toolbars.add(toolBarNC); - + toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - - //Class diagram + + //Class diagram ncdp = new NCDiagramPanel(mgui, toolBarNC); ncdp.setName("Network Calculus Diagram"); //tmlap.tp = this; tdp = ncdp; panels.add(ncdp); // Always first in list - JScrollDiagramPanel jsp = new JScrollDiagramPanel(ncdp); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(ncdp); ncdp.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement(mgui.INCREMENT); @@ -91,27 +91,30 @@ public class NCPanel extends TURTLEPanel { toolBarPanel.add(jsp, BorderLayout.CENTER); tabbedPane.addTab("Network Calculus Diagram", IconManager.imgic60, toolBarPanel, "Opens network calculus diagram"); tabbedPane.setSelectedIndex(0); - + //jsp.setVisible(true); - + } - public String saveHeaderInXml() { - return "<Modeling type=\"NC diagram\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"NC diagram\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"NC diagram\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } - + public String saveTailInXml() { return "</Modeling>\n\n\n"; } - + public String toString() { return "NC diagram: " + mgui.getTitleAt(this); } - - /*public void renameMapping(String oldName, String newName) { - if (tmlap != null) { - tmlap.renameMapping(oldName, newName); - } - }*/ - -} \ No newline at end of file + + /*public void renameMapping(String oldName, String newName) { + if (tmlap != null) { + tmlap.renameMapping(oldName, newName); + } + }*/ + +} diff --git a/src/ui/ProactiveDesignPanel.java b/src/ui/ProactiveDesignPanel.java index c7585822c9d84f129fe5f3a8fa8ba4851a741dd7..20665e5275fad93f4fc9a11b7bd6c23ff80f8b8f 100755 --- a/src/ui/ProactiveDesignPanel.java +++ b/src/ui/ProactiveDesignPanel.java @@ -190,8 +190,12 @@ public class ProactiveDesignPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"ProActive Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"ProActive Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"ProActive Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + } public String saveTailInXml() { @@ -301,4 +305,4 @@ public class ProactiveDesignPanel extends TURTLEPanel { -} \ No newline at end of file +} diff --git a/src/ui/RequirementPanel.java b/src/ui/RequirementPanel.java index 7e7bb27beb3bce46b3042ad356184261ac97732a..8f685a8ba4a0badc4b1022aba2ae4a363aee58a2 100755 --- a/src/ui/RequirementPanel.java +++ b/src/ui/RequirementPanel.java @@ -1,48 +1,48 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille -ludovic.apvrille AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class RequirementPanel - * Managenemt of requirement panels - * Creation: 15/05/2006 - * @version 1.1 08/09/2009 - * @author Ludovic APVRILLE - * @see MainGUI - */ + ludovic.apvrille AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class RequirementPanel + * Managenemt of requirement panels + * Creation: 15/05/2006 + * @version 1.1 08/09/2009 + * @author Ludovic APVRILLE + * @see MainGUI + */ package ui; @@ -56,113 +56,116 @@ import java.util.*; public class RequirementPanel extends TURTLEPanel { public RequirementDiagramPanel rdp; - public EBRDDPanel ebrdd; - + public EBRDDPanel ebrdd; + public RequirementPanel(MainGUI _mgui) { super(_mgui); - + tabbedPane = new JTabbedPane(); - UIManager.put("TabbedPane.tabAreaBackground", _mgui.BACK_COLOR); - UIManager.put("TabbedPane.selected", _mgui.BACK_COLOR); - SwingUtilities.updateComponentTreeUI(tabbedPane); - //tabbedPane.setOpaque(true); - + UIManager.put("TabbedPane.tabAreaBackground", _mgui.BACK_COLOR); + UIManager.put("TabbedPane.selected", _mgui.BACK_COLOR); + SwingUtilities.updateComponentTreeUI(tabbedPane); + //tabbedPane.setOpaque(true); + cl = new ChangeListener() { - public void stateChanged(ChangeEvent e){ - mgui.paneRequirementAction(e); - } - }; + public void stateChanged(ChangeEvent e){ + mgui.paneRequirementAction(e); + } + }; tabbedPane.addChangeListener(cl); tabbedPane.addMouseListener(new TURTLEPanelPopupListener(this, mgui)); - + } - + public void init() { - + // Requirement Diagram toolbar //addRequirementDiagram("Requirement Diagram"); - + //jsp.setVisible(true); } - + public boolean addRequirementDiagram(String s) { RequirementDiagramToolBar toolBarReq = new RequirementDiagramToolBar(mgui); toolbars.add(toolBarReq); - + toolBarPanel = new JPanel(); - //toolBarPanel.setBackground(Color.red); + //toolBarPanel.setBackground(Color.red); toolBarPanel.setLayout(new BorderLayout()); - //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); - - //Class diagram + //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); + + //Class diagram rdp = new RequirementDiagramPanel(mgui, toolBarReq); rdp.setName(s); rdp.tp = this; tdp = rdp; panels.add(rdp); - JScrollDiagramPanel jsp = new JScrollDiagramPanel(rdp); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(rdp); rdp.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement(mgui.INCREMENT); toolBarPanel.add(toolBarReq, BorderLayout.NORTH); toolBarPanel.add(jsp, BorderLayout.CENTER); tabbedPane.addTab(s, IconManager.imgic1000, toolBarPanel, "Opens requirement diagram"); - tabbedPane.setSelectedIndex(0); + tabbedPane.setSelectedIndex(0); JPanel toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - + return true; } - - public boolean addEBRDD(String s) { + + public boolean addEBRDD(String s) { EBRDDToolBar toolBarEBRDD = new EBRDDToolBar(mgui); toolbars.add(toolBarEBRDD); - + toolBarPanel = new JPanel(); - //toolBarPanel.setBackground(Color.red); + //toolBarPanel.setBackground(Color.red); toolBarPanel.setLayout(new BorderLayout()); - //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); - - // diagram + //toolBarPanel.setBackground(ColorManager.MainTabbedPaneSelect); + + // diagram ebrdd = new EBRDDPanel(mgui, toolBarEBRDD); ebrdd.setName(s); ebrdd.tp = this; //tdp = rdp; panels.add(ebrdd); - JScrollDiagramPanel jsp = new JScrollDiagramPanel(ebrdd); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(ebrdd); ebrdd.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement(mgui.INCREMENT); toolBarPanel.add(toolBarEBRDD, BorderLayout.NORTH); toolBarPanel.add(jsp, BorderLayout.CENTER); tabbedPane.addTab(s, IconManager.imgic1058, toolBarPanel, "Opens EBRDD"); - tabbedPane.setSelectedIndex(0); + tabbedPane.setSelectedIndex(0); JPanel toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - + return true; } - - public String saveHeaderInXml() { - return "<Modeling type=\"Requirement\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Requirement\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Requirement\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } - + public String saveTailInXml() { return "</Modeling>\n\n\n"; } - + public String toString() { return mgui.getTitleAt(this) + " (SysML Requirement Diagrams)"; } - + public boolean removeEnabled(int index) { if (panels.size() > 1) { return true; } return false; } - + public boolean renameEnabled(int index) { if (panels.size() == 0) { return false; @@ -170,26 +173,26 @@ public class RequirementPanel extends TURTLEPanel { if ((panels.elementAt(index) instanceof RequirementDiagramPanel)){ return true; } - - if ((panels.elementAt(index) instanceof EBRDDPanel)){ + + if ((panels.elementAt(index) instanceof EBRDDPanel)){ return true; } - - + + return false; } - - public boolean isReqEnabled() { + + public boolean isReqEnabled() { return true; } - - public void addAllEBRDDPanels(ArrayList<EBRDDPanel> _al) { - for(int i=0; i<panels.size(); i++) { - if (panelAt(i) instanceof EBRDDPanel) { - _al.add(((EBRDDPanel)panelAt(i))); - } - } - } - -} \ No newline at end of file + public void addAllEBRDDPanels(ArrayList<EBRDDPanel> _al) { + for(int i=0; i<panels.size(); i++) { + if (panelAt(i) instanceof EBRDDPanel) { + _al.add(((EBRDDPanel)panelAt(i))); + } + } + } + + +} diff --git a/src/ui/SysmlsecMethodologyPanel.java b/src/ui/SysmlsecMethodologyPanel.java index 6e412c5f392c4e45ea8ed3ca952b1ee25a7fb430..78b01c4e2e710d6f59cf0eac9f1dab9efa04d079 100755 --- a/src/ui/SysmlsecMethodologyPanel.java +++ b/src/ui/SysmlsecMethodologyPanel.java @@ -38,7 +38,7 @@ /** * Class SysmlsecMethodologyPanel * Managenemt of the sysmlsec methodology panels - * Creation: 26/0&/2016 + * Creation: 26/01/2016 * @version 1.1 26/01/2016 * @author Ludovic APVRILLE * @see MainGUI @@ -280,9 +280,11 @@ public class SysmlsecMethodologyPanel extends TURTLEPanel { - - public String saveHeaderInXml() { - return "<Modeling type=\"Sysmlsec Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"Sysmlsec Methodology\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"Sysmlsec Methodology\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/TDiagramPanel.java b/src/ui/TDiagramPanel.java index 659f69dded82a9c48098d7e18762a26ce06c7b7a..fb5973f94187ed634029ac78fdefa08cecac1baa 100755 --- a/src/ui/TDiagramPanel.java +++ b/src/ui/TDiagramPanel.java @@ -88,7 +88,6 @@ import ui.cd.TCDTClass; import ui.cd.TCDTData; import ui.cd.TCDTObject; import ui.cd.TGConnectorAssociation; -import ui.ncdd.NCConnectorNode; import ui.ncdd.NCEqNode; import ui.ncdd.NCRouteArtifact; import ui.ncdd.NCSwitchNode; @@ -2559,9 +2558,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { public boolean checkTCDTObject (TCDTObject o, String name) { return o.getObjectName ().equals (name); } - public boolean checkTCDTClass (TCDTClass o, String name) { - return o.getClassName ().startsWith (name); - } +// public boolean checkTCDTClass (TCDTClass o, String name) { +// return o.getClassName ().startsWith (name); +// } }); } @@ -2601,9 +2600,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { return true; return false; } - public boolean checkNCConnectorNode (NCConnectorNode o, String name) { - return o.getInterfaceName ().equals (name); - } +// public boolean checkNCConnectorNode (NCConnectorNode o, String name) { +// return o.getInterfaceName ().equals (name); +// } }); } @@ -2722,9 +2721,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree { return true; return false; } - public boolean checkNCConnectorNode (NCConnectorNode o, String name) { - return o.getInterfaceName ().equals (name); - } +// public boolean checkNCConnectorNode (NCConnectorNode o, String name) { +// return o.getInterfaceName ().equals (name); +// } }); } diff --git a/src/ui/TMLArchiPanel.java b/src/ui/TMLArchiPanel.java index 50c3cd5d029f661a4515fd0ed4eb618c538b95a9..0302cf8d7d8df95a5fd17dfc91542c03ff981193 100755 --- a/src/ui/TMLArchiPanel.java +++ b/src/ui/TMLArchiPanel.java @@ -101,8 +101,11 @@ public class TMLArchiPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"TML Architecture\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"TML Architecture\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"TML Architecture\" nameTab=\"" + mgui.getTabName(this) + extensionToName +"\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/TMLCommunicationPatternPanel.java b/src/ui/TMLCommunicationPatternPanel.java index d468db0f4b42e0cf2e2528dbd05b6bf3e0851235..5faf2ad58353d7e5620caf181d4cbc34473dbe01 100755 --- a/src/ui/TMLCommunicationPatternPanel.java +++ b/src/ui/TMLCommunicationPatternPanel.java @@ -163,8 +163,12 @@ public class TMLCommunicationPatternPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"TML CP\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"TML CP\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"TML CP\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { diff --git a/src/ui/TMLComponentDesignPanel.java b/src/ui/TMLComponentDesignPanel.java index c5eaab940e3ded609e8160d0156ce40a86235200..f11f05c999c39f2d4eb6a07aa10d99ffbf00b80b 100755 --- a/src/ui/TMLComponentDesignPanel.java +++ b/src/ui/TMLComponentDesignPanel.java @@ -147,8 +147,12 @@ public class TMLComponentDesignPanel extends TURTLEPanel { } - public String saveHeaderInXml() { - return "<Modeling type=\"TML Component Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"TML Component Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"TML Component Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; + } public String saveTailInXml() { diff --git a/src/ui/TMLDesignPanel.java b/src/ui/TMLDesignPanel.java index f841c483cfa85807f74141c3eafd87f8ae1fce82..38705e3b00c6da96cf0b6eaa19c36584bc0fff4a 100755 --- a/src/ui/TMLDesignPanel.java +++ b/src/ui/TMLDesignPanel.java @@ -1,50 +1,50 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea Enrici -ludovic.apvrille AT enst.fr -andrea.enrici AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class TMLDesignPanel - * Managenemt of TML design panels - * Creation: 27/10/2006 - * @version 1.0 28/05/2014 - * @author Ludovic APVRILLE, Andrea ENRICI - * @see MainGUI - */ - + ludovic.apvrille AT enst.fr + andrea.enrici AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class TMLDesignPanel + * Managenemt of TML design panels + * Creation: 27/10/2006 + * @version 1.0 28/05/2014 + * @author Ludovic APVRILLE, Andrea ENRICI + * @see MainGUI + */ + package ui; import java.awt.*; @@ -56,22 +56,22 @@ import ui.tmlad.*; import ui.tmldd.*; public class TMLDesignPanel extends TURTLEPanel { - public TMLTaskDiagramPanel tmltdp; + public TMLTaskDiagramPanel tmltdp; public Vector<TGComponent> validated, ignored; - + public TMLDesignPanel(MainGUI _mgui) { super(_mgui); tabbedPane = new JTabbedPane(); cl = new ChangeListener() { - public void stateChanged(ChangeEvent e){ - mgui.paneDesignAction(e); - } - }; + public void stateChanged(ChangeEvent e){ + mgui.paneDesignAction(e); + } + }; tabbedPane.addChangeListener(cl); tabbedPane.addMouseListener(new TURTLEPanelPopupListener(this, mgui)); } - - public TMLActivityDiagramPanel getTMLActivityDiagramPanel(String name) { + + public TMLActivityDiagramPanel getTMLActivityDiagramPanel(String name) { TMLActivityDiagramPanel tmladp; for(int i=1; i<panels.size(); i++) { tmladp = (TMLActivityDiagramPanel)(panels.elementAt(i)); @@ -84,14 +84,14 @@ public class TMLDesignPanel extends TURTLEPanel { public void addTMLActivityDiagram(String s) { JPanel toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - - TMLActivityDiagramToolBar toolBarActivity = new TMLActivityDiagramToolBar(mgui); + + TMLActivityDiagramToolBar toolBarActivity = new TMLActivityDiagramToolBar(mgui); toolbars.add(toolBarActivity); - + TMLActivityDiagramPanel tmladp = new TMLActivityDiagramPanel(mgui, toolBarActivity); tmladp.tp = this; tmladp.setName(s); - JScrollDiagramPanel jsp = new JScrollDiagramPanel(tmladp); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(tmladp); tmladp.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement( MainGUI.INCREMENT ); @@ -99,26 +99,26 @@ public class TMLDesignPanel extends TURTLEPanel { toolBarPanel.add(jsp, BorderLayout.CENTER); panels.add(tmladp); tabbedPane.addTab(s, IconManager.imgic63, toolBarPanel, "Opens the activity diagram of " + s); - + return; } - + public void init() { - + // Class Diagram toolbar TMLTaskDiagramToolBar toolBarTML = new TMLTaskDiagramToolBar(mgui); toolbars.add(toolBarTML); - + toolBarPanel = new JPanel(); toolBarPanel.setLayout(new BorderLayout()); - - //Class diagram + + //Class diagram tmltdp = new TMLTaskDiagramPanel(mgui, toolBarTML); tmltdp.setName("TML Task Diagram"); tmltdp.tp = this; tdp = tmltdp; panels.add(tmltdp); // Always first in list - JScrollDiagramPanel jsp = new JScrollDiagramPanel(tmltdp); + JScrollDiagramPanel jsp = new JScrollDiagramPanel(tmltdp); tmltdp.jsp = jsp; jsp.setWheelScrollingEnabled(true); jsp.getVerticalScrollBar().setUnitIncrement( MainGUI.INCREMENT ); @@ -126,62 +126,65 @@ public class TMLDesignPanel extends TURTLEPanel { toolBarPanel.add(jsp, BorderLayout.CENTER); tabbedPane.addTab("TML Task Diagram", IconManager.imgic62, toolBarPanel, "Opens TML task diagram"); tabbedPane.setSelectedIndex(0); - + mgui.changeMade(tmltdp, TDiagramPanel.NEW_COMPONENT); - + //jsp.setVisible(true); - + } - - public String saveHeaderInXml() { - return "<Modeling type=\"TML Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"TML Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"TML Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } - + public String saveTailInXml() { return "</Modeling>\n\n\n"; } - + public String toString() { return mgui.getTitleAt(this) + " (TML Functional View)"; } - - public ArrayList<String> getAllTMLTaskNames(String _name) { - return tmltdp.getAllTMLTaskNames(_name); - } - public ArrayList<String> getAllTMLCommunicationNames(String _name) { - return tmltdp.getAllTMLCommunicationNames(_name); - } - - public ArrayList<String> getAllTMLEventNames( String _name ) { - return tmltdp.getAllTMLEventNames( _name ); - } + public ArrayList<String> getAllTMLTaskNames(String _name) { + return tmltdp.getAllTMLTaskNames(_name); + } + + public ArrayList<String> getAllTMLCommunicationNames(String _name) { + return tmltdp.getAllTMLCommunicationNames(_name); + } + + public ArrayList<String> getAllTMLEventNames( String _name ) { + return tmltdp.getAllTMLEventNames( _name ); + } + + public java.util.List<String> getAllNonMappedTMLTaskNames(String _name, TMLArchiDiagramPanel _tadp, boolean ref, String name) { + return tmltdp.getAllNonMappedTMLTaskNames(_name, _tadp, ref, name); + } + + public TMLTaskOperator getTaskByName(String _name) { + return tmltdp.getTaskByName(_name); + } + + public void getListOfBreakPoints(ArrayList<Point> points) { + TGComponent tgc; + Iterator<TGComponent> iterator = tmltdp.getComponentList().listIterator(); + TMLTaskOperator tmlto; + TMLActivityDiagramPanel tmladp; - public java.util.List<String> getAllNonMappedTMLTaskNames(String _name, TMLArchiDiagramPanel _tadp, boolean ref, String name) { - return tmltdp.getAllNonMappedTMLTaskNames(_name, _tadp, ref, name); - } - - public TMLTaskOperator getTaskByName(String _name) { - return tmltdp.getTaskByName(_name); - } - - public void getListOfBreakPoints(ArrayList<Point> points) { - TGComponent tgc; - Iterator<TGComponent> iterator = tmltdp.getComponentList().listIterator(); - TMLTaskOperator tmlto; - TMLActivityDiagramPanel tmladp; - while(iterator.hasNext()) { tgc = iterator.next(); - + if (tgc instanceof TMLTaskOperator) { tmlto = (TMLTaskOperator)tgc; - + if (tmlto.getDIPLOID() != -1) { - tmladp = getTMLActivityDiagramPanel(tmlto.getValue()); - tmladp.getListOfBreakPoints(points, tmlto.getDIPLOID()); - } - } - } - } + tmladp = getTMLActivityDiagramPanel(tmlto.getValue()); + tmladp.getListOfBreakPoints(points, tmlto.getDIPLOID()); + } + } + } + } } diff --git a/src/ui/TURTLEOSDesignPanel.java b/src/ui/TURTLEOSDesignPanel.java index 53a23b173ec105062699064fcc4a934a9f78cab9..e8125f1925a44eafbeb35cfc1c7c927cbe481719 100755 --- a/src/ui/TURTLEOSDesignPanel.java +++ b/src/ui/TURTLEOSDesignPanel.java @@ -135,8 +135,11 @@ public class TURTLEOSDesignPanel extends TURTLEPanel implements TURTLEDesignPane tabbedPane.setSelectedIndex(0); } - public String saveHeaderInXml() { - return "<Modeling type=\"TURTLE-OS Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + public String saveHeaderInXml(String extensionToName) { + if (extensionToName == null) { + return "<Modeling type=\"TURTLE-OS Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n"; + } + return "<Modeling type=\"TURTLE-OS Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n"; } public String saveTailInXml() { @@ -147,4 +150,4 @@ public class TURTLEOSDesignPanel extends TURTLEPanel implements TURTLEDesignPane return "TURTLE-OS: " + mgui.getTitleAt(this); } -} \ No newline at end of file +} diff --git a/src/ui/TURTLEPanel.java b/src/ui/TURTLEPanel.java index 4cf9dd39acd13034cf9ac7c6a19441be375f38e1..3c0f39bd6bfe5737f80d56518128f4e6df9ce662 100755 --- a/src/ui/TURTLEPanel.java +++ b/src/ui/TURTLEPanel.java @@ -68,7 +68,7 @@ public abstract class TURTLEPanel implements GenericTree { } public abstract void init(); - public abstract String saveHeaderInXml(); + public abstract String saveHeaderInXml(String extensionToName); public abstract String saveTailInXml(); public TDiagramPanel panelAt(int index) { @@ -97,16 +97,20 @@ public abstract class TURTLEPanel implements GenericTree { } public StringBuffer saveInXML() { + return saveInXML(null); + } + + public StringBuffer saveInXML(String extensionToName) { TDiagramPanel tdp; StringBuffer sb = new StringBuffer(); - sb.append(saveHeaderInXml()); + sb.append(saveHeaderInXml(extensionToName)); StringBuffer s; for(int i=0; i<panels.size(); i++) { tdp = (TDiagramPanel)(panels.elementAt(i)); s = tdp.saveInXML(); if (s == null) { - System.out.println("Null diagram"); + //System.out.println("Null diagram"); return null; } sb.append(s); @@ -120,13 +124,13 @@ public abstract class TURTLEPanel implements GenericTree { TDiagramPanel tdp; StringBuffer sb = new StringBuffer(); - sb.append(saveHeaderInXml()); + sb.append(saveHeaderInXml(null)); StringBuffer s; tdp = (TDiagramPanel)(panels.elementAt(indexOfDiagram)); s = tdp.saveInXML(); if (s == null) { - System.out.println("Null diagram"); + //System.out.println("Null diagram"); return null; } sb.append(s); @@ -327,7 +331,7 @@ public abstract class TURTLEPanel implements GenericTree { public void searchForText(String text, Vector<Object> elements) { if (panelAt(0) != null) { - String s = saveHeaderInXml().toLowerCase(); + String s = saveHeaderInXml(null).toLowerCase(); if (s.indexOf(text) >= 0) { elements.add(this); /*CheckingError ce = new CheckingError(CheckingError.INFO, "Diagram"); diff --git a/src/ui/avatarbd/AvatarBDBlock.java b/src/ui/avatarbd/AvatarBDBlock.java index 006a5326bc553ea13c279ee4b1a6fd970f9969e5..c0fc938fed0dcec3d0db025d6bee7854c29ba937 100644 --- a/src/ui/avatarbd/AvatarBDBlock.java +++ b/src/ui/avatarbd/AvatarBDBlock.java @@ -801,6 +801,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S boolean implementation = false; String crypt; String attached; + boolean mustAddCryptoFunctions = false; //System.out.println("Loading attributes"); @@ -861,14 +862,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S implementation = false; } - if (method.startsWith("aencrypt(")) { + //TraceManager.addDev("Method = " + method + ". Starting with aencrypt?"); + if (method.startsWith("bool verifyMAC(")) { isCryptoBlock = true; + //TraceManager.addDev("Add crypto methods"); + //addCryptoElements(); } am = AvatarMethod.isAValidMethod(method); if (am != null) { //TraceManager.addDev("Setting to " + implementation + " the implementation of " + am); am.setImplementationProvided(implementation); + //addMethodIfApplicable(am); this.myMethods.add(am); } } @@ -907,6 +912,10 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S throw new MalformedModelingException(); } + if (isCryptoBlock()) { + addCryptoElements(); + } + if (tmpGlobalCode.trim().length() == 0) { globalCode = null; } else { diff --git a/src/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/ui/interactivesimulation/JFrameInteractiveSimulation.java index a5ca6c0620a222a90d0429eeeab3e3f7e303fe87..3c3d18508b3af3907a99113ea5bad4deb0705c1c 100755 --- a/src/ui/interactivesimulation/JFrameInteractiveSimulation.java +++ b/src/ui/interactivesimulation/JFrameInteractiveSimulation.java @@ -69,6 +69,8 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Hashtable; +import java.util.List; +import java.util.Map; import java.util.HashMap; import java.util.Vector; import java.util.Collections; @@ -81,6 +83,7 @@ import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSlider; @@ -102,7 +105,6 @@ import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import java.util.Date; -import java.util.concurrent.TimeUnit; import java.text.*; import launcher.LauncherException; @@ -127,11 +129,8 @@ import ui.ConfigurationTTool; import ui.IconManager; import ui.MainGUI; import ui.TGComponent; -import ui.graph.*; - - -public class JFrameInteractiveSimulation extends JFrame implements ActionListener, Runnable, MouseListener, ItemListener, ChangeListener/*, StoppableGUIElement, SteppedAlgorithm, ExternalCall*/ { +public class JFrameInteractiveSimulation extends JFrame implements ActionListener, Runnable, MouseListener, ItemListener, ChangeListener/*, StoppableGUIElement, SteppedAlgorithm, ExternalCall*/ { protected static final int NB_OF_TRANSACTIONS = 10; @@ -224,7 +223,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen JSlider minimalCommandCoverage, minimalBranchCoverage; JLabel labelMinimalCommandCoverage, labelMinimalBranchCoverage; private String lastGraphName; - private RG lastRG; + // private RG lastRG; // Tasks JPanel taskPanel; @@ -253,12 +252,12 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen //Latency JPanel latencyPanel; - JComboBox transaction1; - JComboBox transaction2; + JComboBox<String> transaction1; + JComboBox<String> transaction2; JButton addLatencyCheckButton; JButton updateLatencyButton; LatencyTableModel latm; - public Vector checkedTransactions = new Vector(); + public Vector<String> checkedTransactions = new Vector<String>(); private JScrollPane jspLatency; private int mode = 0; @@ -268,9 +267,9 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen private boolean gotTimeAnswerFromServer = false; // For managing actions - public InteractiveSimulationActions [] actions; - public MouseHandler mouseHandler; - public KeyListener keyHandler; + public InteractiveSimulationActions [] actions; + public MouseHandler mouseHandler; + public KeyListener keyHandler; private TMLMapping tmap; private int hashCode; @@ -282,11 +281,12 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen private Hashtable <Integer, Integer> runningTable; private Hashtable <String, String> diagramTable; - private ArrayList<Point> points; - private HashMap<String, String> checkTable=new HashMap<String, String>(); - private HashMap<String, ArrayList<String>> transTimes = new HashMap<String, ArrayList<String>>(); - private Vector latencies=new Vector(); - public JFrameInteractiveSimulation(Frame _f, MainGUI _mgui, String _title, String _hostSystemC, String _pathExecute, TMLMapping _tmap, ArrayList<Point> _points) { + private List<Point> points; + private Map<String, String> checkTable = new HashMap<String, String>(); + private Map<String, List<String>> transTimes = new HashMap<String, List<String>>(); + private Vector<SimulationLatency> latencies = new Vector<SimulationLatency>(); + + public JFrameInteractiveSimulation(Frame _f, MainGUI _mgui, String _title, String _hostSystemC, String _pathExecute, TMLMapping _tmap, List<Point> _points) { super(_title); // f = _f; @@ -985,13 +985,13 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen c0.gridheight=1; latencyPanel.add(new JLabel("Checkpoint 1:"),c0); c0.gridwidth = GridBagConstraints.REMAINDER; - transaction1 = new JComboBox(checkedTransactions); + transaction1 = new JComboBox<String>(checkedTransactions); latencyPanel.add(transaction1, c0); c0.gridwidth=1; latencyPanel.add(new JLabel("Checkpoint 2:"),c0); c0.gridwidth= GridBagConstraints.REMAINDER; - transaction2 = new JComboBox(checkedTransactions); + transaction2 = new JComboBox<String>(checkedTransactions); latencyPanel.add(transaction2, c0); @@ -1473,11 +1473,8 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen int k; - //System.out.println("toto0"); - try { for(int j=0; j<diagramNl.getLength(); j++) { - //System.out.println("Ndes: " + j); node = diagramNl.item(j); if (node == null) { @@ -1650,7 +1647,6 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen nl = elt.getElementsByTagName("extime"); if ((nl != null) && (nl.getLength() > 0)) { node0 = nl.item(0); - //System.out.println("nl:" + nl + " value=" + node0.getNodeValue() + " content=" + node0.getTextContent()); extime = node0.getTextContent(); } @@ -1658,7 +1654,6 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen nl = elt.getElementsByTagName("tskstate"); if ((nl != null) && (nl.getLength() > 0)) { node0 = nl.item(0); - //System.out.println("nl:" + nl + " value=" + node0.getNodeValue() + " content=" + node0.getTextContent()); state = node0.getTextContent(); //TraceManager.addDev("TASK STATE: " + state); } @@ -1670,12 +1665,13 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen if ((id != null) && (command != null)) { - if (nextCommand ==null) { + + if (nextCommand ==null) { nextCommand = "-1"; } updateRunningCommand(id, command, progression, startTime, finishTime, nextCommand, transStartTime, transFinishTime, state); + if (checkTable.containsKey(command)){ - //System.out.println("added trans " + command + " " +finishTime); if (!transTimes.containsKey(command)){ ArrayList<String> timeList = new ArrayList<String>(); transTimes.put(command, timeList); @@ -1683,8 +1679,6 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen if (!transTimes.get(command).contains(finishTime)){ transTimes.get(command).add(finishTime); } - //System.out.println("nl:" + nl + " value=" + node0.getNodeValue() + " content=" + node0.getTextContent()); - } } @@ -1692,10 +1686,8 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen updateOpenDiagram(name, command, progression, startTime, finishTime, transStartTime, transFinishTime); } - - - nl = elt.getElementsByTagName("var"); + if ((nl != null) && (nl.getLength() > 0)) { idvar = null; value = null; @@ -1714,59 +1706,6 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen } } - //System.out.println("toto1"); - - - /*nl = elt.getElementsByTagName(SIMULATION_TRANS); - if (nl.getLength() == 0) { - //updateTableOfTransactions(0); - //ttm.fireTableStructureChanged(); - } else { - System.out.println("toto1.1"); - for(int kk=0; kk<nl.getLength(); kk++) { - node0 = nl.item(kk); - elt0 = (Element)node0; - - - if (elt0 != null) { - TraceManager.addDev("transinfo found: " + elt0); - SimulationTransaction st = new SimulationTransaction(); - st.nodeType = elt0.getAttribute("deviceid"); - - st.deviceName = elt0.getAttribute("devicename"); - String commandT = elt0.getAttribute("command"); - //TraceManager.addDev("command found: " + commandT); - if (commandT != null) { - int index = commandT.indexOf(": "); - if (index == -1){ - st.taskName = "Unknown"; - st.command = commandT; - } else { - st.taskName = commandT.substring(0, index).trim(); - st.command = commandT.substring(index+1, commandT.length()).trim(); - } - } - //TraceManager.addDev("Command handled"); - st.startTime = elt0.getAttribute("starttime"); - st.length = elt0.getAttribute("length"); - st.virtualLength = elt0.getAttribute("virtuallength"); - st.channelName = elt0.getAttribute("ch"); - - if (trans == null) { - trans = new Vector<SimulationTransaction>(); - } - - trans.add(st); - //updateTableOfTransactions(trans.size()-1); - //TraceManager.addDev("Nb of trans:" + trans.size()); - } - //ttm.fireTableStructureChanged(); - //updateTableOfTransactions(trans.size()-1); - } - TraceManager.addDev("Transactions updated"); - //ttm.setData(trans); - - }*/ if (elt.getTagName().compareTo(SIMULATION_TRANS) == 0) { SimulationTransaction st = new SimulationTransaction(); @@ -2220,13 +2159,25 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen public void sendSaveTraceCommand(String format) { String param = saveFileName.getText().trim(); - if (saveDirName.getText().length() > 0) { - param = saveDirName.getText() + File.separator + param; + + if ( param.isEmpty() ) { + final String message = "Please enter a file name for the trace."; + JOptionPane.showMessageDialog( this, message, "Output File Name not Specified", JOptionPane.ERROR_MESSAGE ); + error( message ); } - if (param.length() >0) { - sendCommand("save-trace-in-file" + " " + format + " " + param); - } else { - error("Wrong parameter: must be a file name"); + else { + final String directory = saveDirName.getText().trim(); + + if ( !directory.isEmpty() ) { + param = directory + File.separator + param; + } + + // DB: now useless check +// if (param.length() >0) { + sendCommand( "save-trace-in-file" + " " + format + " " + param ); +// } else { +// error("Wrong parameter: must be a file name"); +// } } } @@ -2270,7 +2221,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen private void addGraph() { TraceManager.addDev("Adding graph"); - lastRG = mgui.setLastRGDiplodocus(lastGraphName); + /*lastRG =*/ mgui.setLastRGDiplodocus(lastGraphName); } private String getCurrentRGName() { @@ -2907,7 +2858,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen mgui.resetTransactions(); mgui.resetStatus(); sendCommand("reset"); - transTimes=new HashMap<String, ArrayList<String>>(); + transTimes=new HashMap<String, List<String>>(); processLatency(); askForUpdate(); } else if (command.equals(actions[InteractiveSimulationActions.ACT_STOP_SIMU].getActionCommand())) { @@ -3154,23 +3105,17 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen return tmap.makeVariableIDs(index); } + public void fillCheckedTrans(){ if (tmap==null){ return; } - //System.out.println(tmap.getTMLModeling().getCheckedComps()); - for (TGComponent tgc: tmap.getTMLModeling().getCheckedComps().keySet()){ - //System.out.println(tmap.getTMLModeling().getCheckedComps().get(s).getDIPLOID() + " "+s); TraceManager.addDev(tmap.getTMLModeling().getCheckedComps().get(tgc)+" (ID: " + tgc.getDIPLOID() + ")"); checkedTransactions.add(tmap.getTMLModeling().getCheckedComps().get(tgc)+" (ID: " + tgc.getDIPLOID() + ")"); checkTable.put(Integer.toString(tgc.getDIPLOID()),tmap.getTMLModeling().getCheckedComps().get(tgc)+" (ID: " + tgc.getDIPLOID() + ")"); - // checkedTransactions.add(s+"(ID: " + tmap.getTMLModeling().getCheckedComps().get(s).getDIPLOID()+")"); - // checkTable.put(Integer.toString(tmap.getTMLModeling().getCheckedComps().get(s).getDIPLOID()),s+"(ID: " + tmap.getTMLModeling().getCheckedComps().get(s).getDIPLOID()+")"); } - //System.out.println(checkedTransactions); - //System.out.println(checkTable); } public void activeBreakPoint(boolean active) { if (mode == STARTED_AND_CONNECTED) { @@ -3190,6 +3135,4 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListen public Vector<SimulationTransaction> getListOfRecentTransactions() { return trans; } - - } // Class diff --git a/src/ui/interactivesimulation/JPanelBreakPoints.java b/src/ui/interactivesimulation/JPanelBreakPoints.java index e105d1f030486c5523b888ff3e9b0563187785fd..f2b07f7230e443b02f579c49a42cfb37ee4b180c 100755 --- a/src/ui/interactivesimulation/JPanelBreakPoints.java +++ b/src/ui/interactivesimulation/JPanelBreakPoints.java @@ -45,49 +45,31 @@ knowledge of the CeCILL license and that you accept its terms. package ui.interactivesimulation; -//import java.io.*; import javax.swing.*; import javax.swing.event.*; -import javax.swing.table.*; import java.awt.*; import java.awt.event.*; -import java.io.*; import java.util.*; - -import myutil.*; -import ui.*; -import ui.file.*; - -import tmltranslator.*; - -import launcher.*; -import remotesimulation.*; - -import org.w3c.dom.*; -import org.xml.sax.*; -import javax.xml.parsers.*; - - public class JPanelBreakPoints extends JPanel implements ActionListener, ListSelectionListener { private JFrameInteractiveSimulation jfis; - private ArrayList<Point> points; - private Vector breakpoints; + private java.util.List<Point> points; + private Vector<String> breakpoints; - private JList listBreakpoints; + private JList<String> listBreakpoints; private JButton removeButton; private JButton addButton; - private JComboBox tasks; - private JComboBox commands; + private JComboBox<String> tasks; + private JComboBox<String> commands; private JCheckBox activate; private String[] taskIDs, commandIDs; - public JPanelBreakPoints(JFrameInteractiveSimulation _jfis, ArrayList<Point> _points) { + public JPanelBreakPoints(JFrameInteractiveSimulation _jfis, java.util.List<Point> _points) { super(); jfis = _jfis; @@ -96,7 +78,7 @@ public class JPanelBreakPoints extends JPanel implements ActionListener, ListSel //setBackground(new Color(50, 40, 40, 200)); - breakpoints = new Vector(); + breakpoints = new Vector<String>(); for(int i=0; i<points.size(); i++) { breakpoints.addElement("Task=" + points.get(i).x + " Command=" + points.get(i).y); @@ -114,7 +96,7 @@ public class JPanelBreakPoints extends JPanel implements ActionListener, ListSel setLayout(gridbag2); setBorder(new javax.swing.border.TitledBorder("Managing breakpoints")); - listBreakpoints = new JList(breakpoints); + listBreakpoints = new JList<String>(breakpoints); //listAttribute.setFixedCellWidth(150); //listAttribute.setFixedCellHeight(20); listBreakpoints.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -146,18 +128,18 @@ public class JPanelBreakPoints extends JPanel implements ActionListener, ListSel add(new JLabel(" "), c2); if (taskIDs == null) { - tasks = new JComboBox(); + tasks = new JComboBox<String>(); } else { - tasks = new JComboBox(taskIDs); + tasks = new JComboBox<String>(taskIDs); tasks.addActionListener(this); } add(tasks, c2); if ((taskIDs == null) || (taskIDs.length == 0)) { - commands = new JComboBox(); + commands = new JComboBox<String>(); } else { commandIDs = jfis.makeCommandIDs(0); - commands = new JComboBox(commandIDs); + commands = new JComboBox<String>(commandIDs); } add(commands, c2); @@ -278,7 +260,7 @@ public class JPanelBreakPoints extends JPanel implements ActionListener, ListSel } public void unsetElements() { - Vector v = new Vector(); + Vector<String> v = new Vector<String>(); listBreakpoints.setListData(v); removeButton.setEnabled(false); addButton.setEnabled(false); diff --git a/src/ui/sd2/SDActionState.java b/src/ui/sd2/SDActionState.java index 239481fffa192135074d90601080c93b215da4a5..3b704f946c9c529d6fac4bc21d16af29e1ed6a21 100755 --- a/src/ui/sd2/SDActionState.java +++ b/src/ui/sd2/SDActionState.java @@ -81,7 +81,7 @@ public class SDActionState extends TGCScalableOneLineText implements SwallowedTG public void internalDrawing(Graphics g) { w = g.getFontMetrics().stringWidth(value); - int h = g.getFontMetrics().getHeight(); +// int h = g.getFontMetrics().getHeight(); int w1 = Math.max(minWidth, w + 2 * textX); if ((w1 != width) && (!tdp.isScaled())) { width = w1; diff --git a/src/ui/sd2/SDInstance.java b/src/ui/sd2/SDInstance.java index a77294f353019440b5898d1f017a09e62b4a7458..51c60b4ba5327b532bed3d26723d8d9d4d5a39c5 100755 --- a/src/ui/sd2/SDInstance.java +++ b/src/ui/sd2/SDInstance.java @@ -71,15 +71,15 @@ public class SDInstance extends TGCScalableWithInternalComponent implements Swal public SDInstance(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); - width = (int)(10 * tdp.getZoom()); - height = (int)(500 * tdp.getZoom()); - minWidth = (int)(10 * tdp.getZoom()); - maxWidth = (int)(10 * tdp.getZoom()); - minHeight = (int)(250 * tdp.getZoom()); - maxHeight = (int)(1500 * tdp.getZoom()); - //TraceManager.addDev("Init tgc= " + this + " minHeight=" + minHeight); - //TraceManager.addDev("Init tgc= " + this + " maxHeight=" + maxHeight); - oldScaleFactor = tdp.getZoom(); + width = (int)(10 * tdp.getZoom()); + height = (int)(500 * tdp.getZoom()); + minWidth = (int)(10 * tdp.getZoom()); + maxWidth = (int)(10 * tdp.getZoom()); + minHeight = (int)(250 * tdp.getZoom()); + maxHeight = (int)(1500 * tdp.getZoom()); + //TraceManager.addDev("Init tgc= " + this + " minHeight=" + minHeight); + //TraceManager.addDev("Init tgc= " + this + " maxHeight=" + maxHeight); + oldScaleFactor = tdp.getZoom(); //makeTGConnectingPoints(); @@ -95,13 +95,12 @@ public class SDInstance extends TGCScalableWithInternalComponent implements Swal userResizable = true; value = "Instance name"; - name = "instance"; + name = "instance"; isActor = false; myImageIcon = IconManager.imgic500; } - public void internalDrawing(Graphics g) { if( !tdp.isScaled() ) { @@ -168,58 +167,57 @@ public class SDInstance extends TGCScalableWithInternalComponent implements Swal } public int spacePt() { - return (int)(Math.floor(spacePt*tdp.getZoom())); + return (int)(Math.floor(spacePt*tdp.getZoom())); } public double spacePtDouble() { - return spacePt*tdp.getZoom(); + return spacePt*tdp.getZoom(); } public void rescale(double scaleFactor){ //TraceManager.addDev("my rescale"); - super.rescale(scaleFactor); + super.rescale(scaleFactor); // update TG Connecting Points - int yh = spacePt(); + //int yh = spacePt(); /*for(int i=0; i<nbConnectingPoint; i++, yh+=spacePt()) { connectingPoint[i].setCdX(width/2); connectingPoint[i].setCdY(yh); }*/ - //height = Math.max(getMinHeightSize(), height); - hasBeenResized(); + //height = Math.max(getMinHeightSize(), height); + hasBeenResized(); } public void computeMinHeight() { - height = Math.max(getMinHeightSize(), height); + height = Math.max(getMinHeightSize(), height); } public int getNbOfConnectingPoints() { - return 100; + return 100; //return (int)(((height - (2 * spacePt())) / spacePt())); } public void makePortMessage() { - int nbOfInternal = 30; - for(int i=0; i<nbOfInternal; i ++) { - double ratio = ((i)/(double)(nbOfInternal));//+(spacePt*tdp.getZoom()/height); - SDPortForMessage port = new SDPortForMessage(100, 200+ (int)(y + ratio*height), tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); - - //tdp.addComponent(port, x+width/2, y+100, true, true); - - //TraceManager.addDev("Adding internal components"); - if (!addSwallowedTGComponent(port, x+width/2, (int)(5*spacePt*tdp.getZoom()) + (int)(y + ratio*height))) { - TraceManager.addDev("Adding PortForMessage failed"); - } else { - port.wasSwallowed(); - } - port.setMoveCd(0, (int)(10*spacePt*tdp.getZoom()) + (int)(ratio*height), false); - //TraceManager.addDev("Nb of internal components:" + nbInternalTGComponent); - - } - + int nbOfInternal = 30; + + for(int i=0; i<nbOfInternal; i ++) { + double ratio = ((i)/(double)(nbOfInternal));//+(spacePt*tdp.getZoom()/height); + SDPortForMessage port = new SDPortForMessage(100, 200+ (int)(y + ratio*height), tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp); + + //tdp.addComponent(port, x+width/2, y+100, true, true); + + //TraceManager.addDev("Adding internal components"); + if (!addSwallowedTGComponent(port, x+width/2, (int)(5*spacePt*tdp.getZoom()) + (int)(y + ratio*height))) { + TraceManager.addDev("Adding PortForMessage failed"); + } else { + port.wasSwallowed(); + } + port.setMoveCd(0, (int)(10*spacePt*tdp.getZoom()) + (int)(ratio*height), false); + //TraceManager.addDev("Nb of internal components:" + nbInternalTGComponent); + } } /*private void makeTGConnectingPoints() { diff --git a/src/ui/sd2/TGConnectorMessageAsyncOrSyncSD.java b/src/ui/sd2/TGConnectorMessageAsyncOrSyncSD.java deleted file mode 100755 index a0045a82a86d8935538a4e9071bf771bcb7370f6..0000000000000000000000000000000000000000 --- a/src/ui/sd2/TGConnectorMessageAsyncOrSyncSD.java +++ /dev/null @@ -1,164 +0,0 @@ -/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - - ludovic.apvrille AT enst.fr - - This software is a computer program whose purpose is to allow the - edition of TURTLE analysis, design and deployment diagrams, to - allow the generation of RT-LOTOS or Java code from this diagram, - and at last to allow the analysis of formal validation traces - obtained from external tools, e.g. RTL from LAAS-CNRS and CADP - from INRIA Rhone-Alpes. - - This software is governed by the CeCILL license under French law and - abiding by the rules of distribution of free software. You can use, - modify and/ or redistribute the software under the terms of the CeCILL - license as circulated by CEA, CNRS and INRIA at the following URL - "http://www.cecill.info". - - As a counterpart to the access to the source code and rights to copy, - modify and redistribute granted by the license, users are provided only - with a limited warranty and the software's author, the holder of the - economic rights, and the successive licensors have only limited - liability. - - In this respect, the user's attention is drawn to the risks associated - with loading, using, modifying and/or developing or reproducing the - software by the user in light of its specific status of free software, - that may mean that it is complicated to manipulate, and that also - therefore means that it is reserved for developers and experienced - professionals having in-depth computer knowledge. Users are therefore - encouraged to load and test the software's suitability as regards their - requirements in conditions enabling the security of their systems and/or - data to be ensured and, more generally, to use and operate it in the - same conditions as regards security. - - The fact that you are presently reading this means that you have had - knowledge of the CeCILL license and that you accept its terms. - - /** - * Class TGConnectorMessageAsyncOrSyncSD - * Connector used in SD for exchanging messages between instances - * Creation: 18/04/2016 - * @version 1.0 18/04/2016 - * @author Ludovic APVRILLE - * @see - */ - -package ui.sd2; - - -import java.awt.*; -import java.awt.geom.*; -import java.util.*; - -import myutil.*; -import ui.*; - - -public class TGConnectorMessageAsyncOrSyncSD extends TGConnectorMessageSD { - public boolean isAsync; - - protected int arrowLength = 10; - - public TGConnectorMessageAsyncOrSyncSD( int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, - TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, - Vector _listPoint ) { - super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); - myImageIcon = IconManager.imgic504; - } - - protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ - if (isAsync) { - if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { - g.drawLine(x1, y1, x2, y2); - } else { - GraphicLib.arrowWithLine(g, 1, 1, 10, x1, y1, x2, y2, false); - } - - if (!tdp.isScaled()) { - widthValue = g.getFontMetrics().stringWidth(value); - heightValue = g.getFontMetrics().getHeight(); - } - - g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5); - } else { - if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { - g.drawLine(x1, y1, x2, y2); - } else { - GraphicLib.arrowWithLine(g, 1, 0, 10, x1, y1, x2, y2, true); - } - - if (!tdp.isScaled()) { - widthValue = g.getFontMetrics().stringWidth(value); - heightValue = g.getFontMetrics().getHeight(); - } - - //g.drawString(value, (p1.getX() + p2.getX()) / 2, ((p1.getY() + p2.getY()) / 2) - 5); - g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5); - } - } - - public void setType(boolean _isAsync) { - isAsync = _isAsync; - } - - public int getType() { - if (isAsync) { - return TGComponentManager.CONNECTOR_MESSAGE_ASYNC_SD; - } else { - return TGComponentManager.CONNECTOR_MESSAGE_SYNC_SD; - } - } - - protected String translateExtraParam() { - StringBuffer sb = new StringBuffer("<extraparam>\n"); - sb.append("<isAsync value=\"" + isAsync + "\" /> "); - sb.append("</extraparam>\n"); - return new String(sb); - } - - - public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ - - String s; - String tmpGlobalCode = ""; - - try { - NodeList nli; - Node n1, n2; - Element elt; - isAsync = false; - - - //System.out.println("Loading attributes"); - //System.out.println(nl.toString()); - - for(int i=0; i<nl.getLength(); i++) { - n1 = nl.item(i); - //System.out.println(n1); - if (n1.getNodeType() == Node.ELEMENT_NODE) { - nli = n1.getChildNodes(); - for(int j=0; j<nli.getLength(); j++) { - n2 = nli.item(j); - //System.out.println(n2); - if (n2.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) n2; - if (elt.getTagName().equals("isAsync")) { - s = elt.getAttribute("value"); - if (s.equals("true")) { - isAsync = true; - } else { - isAsync = false; - } - } - } - } - } - } - - } catch (Exception e) { - throw new MalformedModelingException(); - } - } - -} diff --git a/src/ui/tmldd/TMLArchiPortArtifact.java b/src/ui/tmldd/TMLArchiPortArtifact.java index f1c6a4d4575192660fc2e29f5a3c0f4ef8bd8993..6650ebcb454f356ef8697c800e3cbf59369306c8 100644 --- a/src/ui/tmldd/TMLArchiPortArtifact.java +++ b/src/ui/tmldd/TMLArchiPortArtifact.java @@ -157,9 +157,9 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements TGComponent tgc; if (tdp != null) { if (mappedMemory.length() > 0) { - ListIterator<TGComponent> iterator = tdp.getComponentList().listIterator(); + ListIterator iterator = tdp.getComponentList().listIterator(); while(iterator.hasNext()) { - tgc = iterator.next(); + tgc = (TGComponent)(iterator.next()); if (tgc instanceof TMLArchiMemoryNode) { if (tgc.getName().compareTo(mappedMemory) == 0) { GraphicLib.dashedLine(g, getX() + getWidth()/2, getY() + getHeight()/2, tgc.getX() + tgc.getWidth()/2, tgc.getY() + tgc.getHeight()/2); @@ -200,14 +200,17 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements String tmp; boolean error = false; - TraceManager.addDev( "bufferParameters before opening the window: " + bufferParameters.toString() ); - JDialogPortArtifact dialog = new JDialogPortArtifact(frame, "Setting port artifact attributes", this, mappedMemory, bufferParameters, value ); - //dialog.setSize(700, 600); - GraphicLib.centerOnParent(dialog, 700, 600); - dialog.setVisible( true ); // blocked until dialog has been closed + // Get the list of all other TMLArchiPortArtifact.java and retrieve the mapped ports + Vector<String> portsList = this.getTDiagramPanel().getMGUI().getAllTMLInputPorts(); + + //TraceManager.addDev( "bufferParameters before opening the window: " + bufferParameters.toString() ); + JDialogPortArtifact dialog = new JDialogPortArtifact( frame, "Setting port artifact attributes", this, mappedMemory, portsList, value ); + dialog.setSize(700, 600); + GraphicLib.centerOnParent(dialog); + dialog.show(); // blocked until dialog has been closed mappedMemory = dialog.getMappedMemory(); bufferParameters = dialog.getBufferParameters(); //becomes empty if closing the window without pushing Save - TraceManager.addDev( "bufferParameters after closing the window: " + bufferParameters.toString() ); + //TraceManager.addDev( "bufferParameters after closing the window: " + bufferParameters.toString() ); bufferType = bufferParameters.get( Buffer.BUFFER_TYPE_INDEX ); TraceManager.addDev( "mapped Port: " + dialog.getMappedPort() ); @@ -313,7 +316,7 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements NodeList nli; Node n1, n2; Element elt; - // int t1id; + int t1id; String svalue = null, sname = null, sreferenceCommunication = null, stype = null; //String prio = null; @@ -322,8 +325,8 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements //System.out.println(n1); if (n1.getNodeType() == Node.ELEMENT_NODE) { nli = n1.getChildNodes(); - for(int j=0; j<nli.getLength(); j++) { - n2 = nli.item(j); + for(int j=0; i<nli.getLength(); i++) { + n2 = nli.item(i); //System.out.println(n2); if (n2.getNodeType() == Node.ELEMENT_NODE) { elt = (Element) n2; diff --git a/src/ui/window/JDialogAvatarBlock.java b/src/ui/window/JDialogAvatarBlock.java index bac920055b1c7c4cfdc7416c15620354858368c5..c26b6d5ffc184351005f9a72a974906e7e9f9529 100755 --- a/src/ui/window/JDialogAvatarBlock.java +++ b/src/ui/window/JDialogAvatarBlock.java @@ -748,11 +748,11 @@ public class JDialogAvatarBlock extends javax.swing.JDialog implements ActionLis //TraceManager.addDev("addMethod"); String s = methodText.getText(); AvatarMethod am = AvatarMethod.isAValidMethod(s); - + AvatarMethod amtmp; if (am != null) { - am.setImplementationProvided(implementationProvided.isSelected()); + am.setImplementationProvided(implementationProvided.isSelected()); // Checks whether the same method already belongs to the list int index = -1; @@ -984,7 +984,7 @@ public class JDialogAvatarBlock extends javax.swing.JDialog implements ActionLis } else { AvatarMethod am = methods.get (i); methodText.setText(am.toString()); - TraceManager.addDev("Implementation of " + am + " is: " + am.isImplementationProvided()); + //TraceManager.addDev("Implementation of " + am + " is: " + am.isImplementationProvided()); implementationProvided.setSelected(am.isImplementationProvided()); removeMethodButton.setEnabled(true); if (i > 0) { diff --git a/src/ui/window/JDialogPortArtifact.java b/src/ui/window/JDialogPortArtifact.java index c2a3c9dced6e24d2e314255b717eac9a8feadd6d..792787025f91b8b1fede7184dba37b24b5fb0c70 100755 --- a/src/ui/window/JDialogPortArtifact.java +++ b/src/ui/window/JDialogPortArtifact.java @@ -1,575 +1,469 @@ -/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea ENRICI - * - * ludovic.apvrille AT enst.fr, andrea.enrici AT nokia.com - * - * This software is a computer program whose purpose is to allow the - * edition of TURTLE analysis, design and deployment diagrams, to - * allow the generation of RT-LOTOS or Java code from this diagram, - * and at last to allow the analysis of formal validation traces - * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP - * from INRIA Rhone-Alpes. - * - * This software is governed by the CeCILL license under French law and - * abiding by the rules of distribution of free software. You can use, - * modify and/ or redistribute the software under the terms of the CeCILL - * license as circulated by CEA, CNRS and INRIA at the following URL - * "http://www.cecill.info". - * - * As a counterpart to the access to the source code and rights to copy, - * modify and redistribute granted by the license, users are provided only - * with a limited warranty and the software's author, the holder of the - * economic rights, and the successive licensors have only limited - * liability. - * - * In this respect, the user's attention is drawn to the risks associated - * with loading, using, modifying and/or developing or reproducing the - * software by the user in light of its specific status of free software, - * that may mean that it is complicated to manipulate, and that also - * therefore means that it is reserved for developers and experienced - * professionals having in-depth computer knowledge. Users are therefore - * encouraged to load and test the software's suitability as regards their - * requirements in conditions enabling the security of their systems and/or - * data to be ensured and, more generally, to use and operate it in the - * same conditions as regards security. - * - * The fact that you are presently reading this means that you have had - * knowledge of the CeCILL license and that you accept its terms. - * - * /** - * Class JDialogTMLTaskArtifact - * Dialog for managing artifact to map ports onto CPs - * Creation: 19/09/2007 - * @version 1.0 19/09/2007 - * @author Ludovic APVRILLE, Andrea ENRICI - * @see - */ - -package ui.window; - -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; -import java.util.*; - -import ui.*; -import ui.tmldd.*; -import tmltranslator.modelcompiler.*; - -import myutil.*; - - -public class JDialogPortArtifact extends javax.swing.JDialog implements ActionListener { - - private boolean regularClose; - private boolean emptyPortsList = false; - - private JPanel panel2; - private Frame frame; - private TMLArchiPortArtifact artifact; - private String mappedMemory = "VOID"; - - protected JComboBox<String> mappedPortCB, memoryCB; - protected JTextField baseAddressTF, numSamplesTF, bitsPerSymbolTF; - protected String baseAddress, mappedPort, sampleLength, numSamples, bitsPerSymbol; - protected String bank, dataType, symmetricalValue; - protected JComboBox<String> dataTypeCB, bankCB, symmetricalValueCB; - - //Intl Data In - protected JTextField widthIntl_TF, bitInOffsetIntl_TF, inputOffsetIntl_TF; - protected String widthIntl, bitInOffsetIntl, inputOffsetIntl, packedBinaryInIntl; - protected JComboBox<String> packedBinaryInIntl_CB; - - //Intl Data Out - protected JTextField bitOutOffsetIntl_TF, outputOffsetIntl_TF; - protected JComboBox<String> packedBinaryOutIntl_CB; - protected String packedBinaryOutIntl, bitOutOffsetIntl, outputOffsetIntl; - - //Intl Perm - protected JTextField lengthPermIntl_TF, offsetPermIntl_TF; - protected String lengthPermIntl, offsetPermIntl; - - //Mapper Data In - protected JTextField baseAddressDataInMapp_TF, numSamplesDataInMapp_TF, bitsPerSymbolDataInMapp_TF; - protected String baseAddressDataInMapp, numSamplesDataInMapp, bitsPerSymbolDataInMapp, symmetricalValueDataInMapp; - protected JComboBox<String> symmetricalValueDataInMapp_CB; - //Mapper Data Out - protected JTextField baseAddressDataOutMapp_TF; - protected String baseAddressDataOutMapp; - //Mapper LUT - protected JTextField baseAddressLUTMapp_TF; - protected String baseAddressLUTMapp; - - // Main Panel - private JButton closeButton; - private JButton cancelButton; - - //Code generation - private JPanel panel3; /*panel4, panel5*/; - private JTabbedPane tabbedPane; - private int bufferType = 0; - private ArrayList<String> bufferParameters; -//private String appName = ""; - - /** Creates new form */ - public JDialogPortArtifact(Frame _frame, String _title, TMLArchiPortArtifact _artifact, String _mappedMemory, ArrayList<String> _bufferParameters, String _mappedPort ) { - super(_frame, _title, true); - frame = _frame; - artifact = _artifact; - mappedMemory = _mappedMemory; - bufferParameters = _bufferParameters; //contains a set of parameters that are read from the xml description. The first parameters is the buffer type - mappedPort = _mappedPort; - //appName = mappedPort.split("::")[0]; - - TraceManager.addDev("init components"); - - initComponents(); - - TraceManager.addDev("pack"); - pack(); - } - - private void initComponents() { - - Container c = getContentPane(); - GridBagLayout gridbag0 = new GridBagLayout(); - // GridBagLayout gridbag1 = new GridBagLayout(); - GridBagLayout gridbag2 = new GridBagLayout(); - GridBagConstraints c0 = new GridBagConstraints(); - GridBagConstraints c1 = new GridBagConstraints(); - GridBagConstraints c2 = new GridBagConstraints(); - - setFont(new Font("Helvetica", Font.PLAIN, 14)); - c.setLayout(gridbag0); - - setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - - panel2 = new JPanel(); - panel2.setLayout(gridbag2); - panel2.setBorder(new javax.swing.border.TitledBorder("Artifact attributes")); - panel2.setPreferredSize(new Dimension(650, 350)); - - panel3 = new JPanel(); - panel3.setLayout(gridbag2); - panel3.setBorder(new javax.swing.border.TitledBorder("Code generation: memory configuration")); - panel3.setPreferredSize(new Dimension(650, 350)); - - tabbedPane = new JTabbedPane(); -// panel4 = new JPanel(); -// panel5 = new JPanel(); - - c1.gridwidth = 1; - c1.gridheight = 1; - c1.weighty = 1.0; - c1.weightx = 1.0; - c1.fill = GridBagConstraints.HORIZONTAL; - c1.gridwidth = GridBagConstraints.REMAINDER; //end row - TraceManager.addDev("Getting communications"); - //Vector<String> list = artifact.getTDiagramPanel().getMGUI().getAllTMLCommunicationNames(); - Vector<String> portsList = artifact.getTDiagramPanel().getMGUI().getAllTMLInputPorts(); - //Vector<String> portsList = new Vector<String>(); - TraceManager.addDev( "The list of input ports is:\n" + portsList.toString() ); - if( portsList.size() == 0 ) { - emptyPortsList = true; - portsList.add( "No available port" ); - } - - // Build the list of available ports, if there is an application diagram - /*if( list.size() > 0 ) { - int index = 0; - //parse each entry of list. Entry is in format AppName::chIn__chOut - for( String s: list ) { - TraceManager.addDev( "Testing if " + s + " contains " + appName + "..."); - if( s.contains( appName ) ) { //build the DS for the mapped applications (filter out the case of multiple applications) - //TraceManager.addDev( "Parsing: " + s ); - String[] temp1 = s.split("__"); - String[] temp2 = temp1[0].split( "::" ); - String chOut = temp2[0] + "::" + temp1[1]; - //TraceManager.addDev( "chOut = " + chOut ); - String chIn = temp2[0] + "::" + temp2[1]; - //TraceManager.addDev( "chIn = " + chIn ); - if( !portsList.contains( chOut ) ) { - portsList.add( chOut ); - } - if( !portsList.contains( chIn ) ) { - portsList.add( chIn ); - } - } - } - } - else { - list.add( "No communication to map" ); - emptyPortsList = true; - portsList.add( "No available port" ); - }*/ - - TraceManager.addDev( "Got communications" ); - - mappedPortCB = new JComboBox<String>( portsList ); - if( !mappedPort.equals( "VOID" ) && !mappedPort.equals( "" ) ) { - mappedPortCB.setSelectedIndex( portsList.indexOf( mappedPort ) ); - } - else { - mappedPortCB.setSelectedIndex( 0 ); - } - panel2.add( new JLabel( "Port:" ), c2 ); - mappedPortCB.addActionListener(this); - panel2.add( mappedPortCB, c1 ); - - //Make the list of memories that are available for being mapped - java.util.List<TGComponent> componentList = artifact.getTDiagramPanel().getComponentList(); - Vector<String> memoryList = new Vector<String>(); - for( int k = 0; k < componentList.size(); k++ ) { - if( componentList.get(k) instanceof TMLArchiMemoryNode ) { - memoryList.add( ( (TMLArchiMemoryNode) componentList.get(k) ).getName() ); - } - } - if( memoryList.size() == 0 ) { // In case there are no memories in the design - memoryList.add( "No available memory" ); - } - - memoryCB = new JComboBox<String>( memoryList ); - if( !mappedMemory.equals( "VOID" ) && !mappedMemory.equals( "" ) ) { - memoryCB.setSelectedIndex( memoryList.indexOf( mappedMemory ) ); - } - else { - memoryCB.setSelectedIndex( 0 ); - } - panel2.add( new JLabel( "Memory: "), c2 ); - memoryCB.addActionListener(this); - panel2.add( memoryCB, c1 ); - - if( (emptyPortsList) || (memoryList.size() == 0) ) { - //the project does not contain an application diagram, or the platform diagram does not contain any memory or both - bufferType = Buffer.ANOMALY; - } - else { - //Must distinguish between 2 cases: - // - bufferParameters is empty because the user has just instantiated the artifact - // - bufferParameters is not empty as the user had already done some mapping - if( bufferParameters.size() == 0 ) { //assign to bufferType the type of the first memory in memoryList - for( int k = 0; k < componentList.size(); k++ ) { - if( componentList.get(k) instanceof TMLArchiMemoryNode ) { - if( ((TMLArchiMemoryNode) componentList.get(k)).getName().equals( memoryList.get(0) ) ) { - bufferType = ((TMLArchiMemoryNode)componentList.get(k)).getBufferType(); - break; - } - } - } - // String memoryName = memoryList.get(0); - //TraceManager.addDev( "bufferType of " + memoryName + " is " + bufferType ); - } - else { - bufferType = Integer.parseInt( bufferParameters.get( Buffer.BUFFER_TYPE_INDEX ) ); - } - } - - ArrayList<JPanel> panelsList; - - switch( bufferType ) { - case Buffer.FEP_BUFFER: - panelsList = FepBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - break; - case Buffer.INTERLEAVER_BUFFER: - panelsList = InterleaverBuffer.makePanel( c1, c2 ); - tabbedPane.addTab( "Data In", panelsList.get(0) ); - tabbedPane.addTab( "Data Out", panelsList.get(1) ); - tabbedPane.addTab( "Permutation Table", panelsList.get(2) ); - tabbedPane.setSelectedIndex(0); - break; - case Buffer.ADAIF_BUFFER: - panelsList = AdaifBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - break; - case Buffer.MAPPER_BUFFER: - tabbedPane.removeAll(); - panelsList = MapperBuffer.makePanel( c1, c2 ); - tabbedPane.addTab( "Data In", panelsList.get(0) ); - tabbedPane.addTab( "Data Out", panelsList.get(1) ); - tabbedPane.addTab( "Look Up Table", panelsList.get(2) ); - tabbedPane.setSelectedIndex(0); - break; - case Buffer.MAIN_MEMORY_BUFFER: - panelsList = MMBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - break; - default: //the FEP buffer, arbitrary choice - Control flow goes here if there is an anomaly but no tabbedPane is added below - panelsList = FepBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - break; - } - - // main panel; - c0.gridheight = 10; - c0.weighty = 1.0; - c0.weightx = 1.0; - c0.gridwidth = GridBagConstraints.REMAINDER; //end row - c0.fill = GridBagConstraints.BOTH; - c.add( panel2, c0 ); - - if( ( bufferType == Buffer.MAIN_MEMORY_BUFFER ) || ( bufferType == Buffer.FEP_BUFFER ) || ( bufferType == Buffer.ADAIF_BUFFER ) ) { - panel3.setBorder( new javax.swing.border.TitledBorder( "Code generation: memory configuration" ) ); - tabbedPane.removeAll(); - tabbedPane.addTab( "Data", panel3 ); - tabbedPane.setSelectedIndex( 0 ); - } - if( bufferType != Buffer.ANOMALY ) { //Don't add the tabbedPane is there is a bufferType anomaly - c.add( tabbedPane, c0 ); - } - - c0.gridwidth = 1; - c0.gridheight = 1; - c0.fill = GridBagConstraints.HORIZONTAL; - closeButton = new JButton("Save and Close", IconManager.imgic25); - //closeButton.setPreferredSize(new Dimension(600, 50)); - closeButton.addActionListener(this); - c.add(closeButton, c0); - c0.gridwidth = GridBagConstraints.REMAINDER; //end row - cancelButton = new JButton("Cancel", IconManager.imgic27); - cancelButton.addActionListener(this); - c.add(cancelButton, c0); - } - - private int getBufferTypeFromSelectedMemory( String mappedMemory ) { - - java.util.List<TGComponent> componentList = artifact.getTDiagramPanel().getComponentList(); - //Vector<String> list = new Vector<String>(); - - for( int k = 0; k < componentList.size(); k++ ) { - if( componentList.get(k) instanceof TMLArchiMemoryNode ) { - TMLArchiMemoryNode memoryNode = (TMLArchiMemoryNode)componentList.get(k); - if( memoryNode.getName().equals( mappedMemory ) ) { - return memoryNode.getBufferType(); - } - } - } - return 0; //default: the main memory buffer - } - - public void actionPerformed(ActionEvent evt) { - - if( evt.getSource() == memoryCB ) { - updateBufferPanel(); - } - - String command = evt.getActionCommand(); - // Compare the action command to the known actions. - if (command.equals("Save and Close")) { - closeDialog(); - } else if (command.equals("Cancel")) { - cancelDialog(); - } - } - - private void updateBufferPanel() { - - GridBagConstraints c1 = new GridBagConstraints(); - GridBagConstraints c2 = new GridBagConstraints(); - - c1.gridwidth = 1; - c1.gridheight = 1; - c1.weighty = 1.0; - c1.weightx = 1.0; - c1.fill = GridBagConstraints.HORIZONTAL; - c1.gridwidth = GridBagConstraints.REMAINDER; //end row - - //flushBuffersStrings(); - bufferType = getBufferTypeFromSelectedMemory( (String)memoryCB.getItemAt( memoryCB.getSelectedIndex() ) ); - ArrayList<JPanel> panelsList; - - switch( bufferType ) { - case Buffer.FEP_BUFFER: - tabbedPane.removeAll(); - panelsList = FepBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - tabbedPane.addTab( "Data", panel3 ); - break; - case Buffer.MAPPER_BUFFER: - tabbedPane.removeAll(); - panelsList = MapperBuffer.makePanel( c1, c2 ); - tabbedPane.addTab( "Data In", panelsList.get(0) ); - tabbedPane.addTab( "Data Out", panelsList.get(1) ); - tabbedPane.addTab( "Look Up Table", panelsList.get(2) ); - tabbedPane.setSelectedIndex(0); - break; - case Buffer.ADAIF_BUFFER: - tabbedPane.removeAll(); - panelsList = AdaifBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - tabbedPane.addTab( "Data", panel3 ); - break; - case Buffer.INTERLEAVER_BUFFER: - tabbedPane.removeAll(); - panelsList = InterleaverBuffer.makePanel( c1, c2 ); - tabbedPane.addTab( "Data In", panelsList.get(0) ); - tabbedPane.addTab( "Data Out", panelsList.get(1) ); - tabbedPane.addTab( "Permutation Table", panelsList.get(2) ); - tabbedPane.setSelectedIndex(0); - break; - case Buffer.MAIN_MEMORY_BUFFER: - tabbedPane.removeAll(); - panelsList = MMBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - tabbedPane.addTab( "Data", panel3 ); - break; - default: //the main memory buffer - tabbedPane.removeAll(); - panelsList = FepBuffer.makePanel( c1, c2 ); - panel3 = panelsList.get(0); - tabbedPane.addTab( "Data", panel3 ); - break; - } - } - - public void closeDialog() { - - regularClose = true; - mappedMemory = (String) memoryCB.getItemAt( memoryCB.getSelectedIndex() ); - bufferType = getBufferTypeFromSelectedMemory( (String)memoryCB.getItemAt( memoryCB.getSelectedIndex() ) ); - switch ( bufferType ) { - case Buffer.FEP_BUFFER: - if( !FepBuffer.closePanel( frame ) ) { - return; - } - break; - case Buffer.MAPPER_BUFFER: - if( !MapperBuffer.closePanel( frame ) ) { - return; - } - break; - case Buffer.ADAIF_BUFFER: - if( !AdaifBuffer.closePanel( frame ) ) { - return; - } - break; - case Buffer.INTERLEAVER_BUFFER: - if( !InterleaverBuffer.closePanel( frame ) ) { - return; - } - break; - case Buffer.MAIN_MEMORY_BUFFER: - if( !MMBuffer.closePanel( frame ) ) { - return; - } - break; - default: //the main memory buffer - if( !FepBuffer.closePanel( frame ) ) { - return; - } - break; - } - dispose(); - } - - public String getMappedPort() { - return mappedPort; - } - - public String getMappedMemory() { - return mappedMemory; - } - - public String getStartAddress() { - return baseAddress; - } - - public void cancelDialog() { - dispose(); - } - - public boolean isRegularClose() { - return regularClose; - } - - public String getReferenceCommunicationName() { - if (emptyPortsList) { - return null; - } - String tmp = (String)( mappedPortCB.getSelectedItem() ); - int index = tmp.indexOf("::"); - if (index == -1) { - return tmp; - } - return tmp.substring(0, index); - } - - public String getCommunicationName() { - String tmp = (String)( mappedPortCB.getSelectedItem() ); - int index = tmp.indexOf("::"); - if (index == -1) { - return tmp; - } - tmp = tmp.substring(index+2, tmp.length()); - - index = tmp.indexOf("("); - if (index > -1) { - tmp = tmp.substring(0, index).trim(); - } - return tmp; - } - - public String getTypeName() { - String tmp = (String)( mappedPortCB.getSelectedItem() ); - int index1 = tmp.indexOf("("); - int index2 = tmp.indexOf(")"); - if ((index1 > -1) && (index2 > index1)) { - return tmp.substring(index1+1, index2); - } - return ""; - } - - public int indexOf(Vector<String> _list, String name) { - int i = 0; - for(String s : _list) { - if (s.equals(name)) { - return i; - } - i++; - } - return 0; - } - - public ArrayList<String> getBufferParameters() { - - ArrayList<String> params = new ArrayList<String>(); - params.add( String.valueOf( bufferType ) ); - switch( bufferType ) { - case Buffer.FEP_BUFFER: - params = FepBuffer.getBufferParameters(); - break; - case Buffer.INTERLEAVER_BUFFER: - params = InterleaverBuffer.getBufferParameters(); - break; - case Buffer.ADAIF_BUFFER: - params = AdaifBuffer.getBufferParameters(); - break; - case Buffer.MAPPER_BUFFER: - params = MapperBuffer.getBufferParameters(); - break; - case Buffer.MAIN_MEMORY_BUFFER: - params = MMBuffer.getBufferParameters(); - break; - default: //the main memory buffer - params = FepBuffer.getBufferParameters(); - break; - } - return params; - } -// -// private void cleanPanels() { -// panel3.removeAll(); -// panel4.removeAll(); -// panel5.removeAll(); -// tabbedPane.removeAll(); -// } -// -// private void revalidateAndRepaintPanels() { -// panel3.revalidate(); -// panel3.repaint(); -// panel4.revalidate(); -// panel4.repaint(); -// panel5.revalidate(); -// panel5.repaint(); -// } - -} //End of class +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, + * Nokia Bell Labs France, Andrea ENRICI + * + * ludovic.apvrille AT enst.fr + * andrea.enrici AT nokia.com + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * + * /** + * Class JDialogTMLTaskArtifact + * Dialog for managing artifact to map ports onto CPs + * Creation: 19/09/2007 + * @version 1.0 19/09/2007 + * @author Ludovic APVRILLE, Andrea ENRICI + * @see + */ + +package ui.window; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import java.util.*; +import java.util.List; + +import ui.*; +import ui.tmldd.*; +import tmltranslator.modelcompiler.*; + +import myutil.*; + + +public class JDialogPortArtifact extends javax.swing.JDialog implements ActionListener { + + private boolean regularClose; + private boolean emptyPortsList = false; + + private JPanel panel2; + private Frame frame; + private TMLArchiPortArtifact artifact; + private String mappedMemory = "VOID"; + + protected JComboBox mappedPortCB, memoryCB; + protected JTextField baseAddressTF, numSamplesTF, bitsPerSymbolTF; + protected String baseAddress, mappedPort, sampleLength, numSamples, bitsPerSymbol; + protected String bank, dataType, symmetricalValue; + protected JComboBox dataTypeCB, bankCB, symmetricalValueCB; + + //Intl Data In + protected JTextField widthIntl_TF, bitInOffsetIntl_TF, inputOffsetIntl_TF; + protected String widthIntl, bitInOffsetIntl, inputOffsetIntl, packedBinaryInIntl; + protected JComboBox packedBinaryInIntl_CB; + + //Intl Data Out + protected JTextField bitOutOffsetIntl_TF, outputOffsetIntl_TF; + protected JComboBox packedBinaryOutIntl_CB; + protected String packedBinaryOutIntl, bitOutOffsetIntl, outputOffsetIntl; + + //Intl Perm + protected JTextField lengthPermIntl_TF, offsetPermIntl_TF; + protected String lengthPermIntl, offsetPermIntl; + + //Mapper Data In + protected JTextField baseAddressDataInMapp_TF, numSamplesDataInMapp_TF, bitsPerSymbolDataInMapp_TF; + protected String baseAddressDataInMapp, numSamplesDataInMapp, bitsPerSymbolDataInMapp, symmetricalValueDataInMapp; + protected JComboBox symmetricalValueDataInMapp_CB; + //Mapper Data Out + protected JTextField baseAddressDataOutMapp_TF; + protected String baseAddressDataOutMapp; + //Mapper LUT + protected JTextField baseAddressLUTMapp_TF; + protected String baseAddressLUTMapp; + + // Main Panel + private JButton closeButton; + private JButton cancelButton; + + //Code generation + private JPanel panel3, panel4, panel5; + private JTabbedPane tabbedPane; + private String HALUnitName = ""; + private Vector<String> portsList; + private String appName = ""; + + /** Creates new form */ + public JDialogPortArtifact(Frame _frame, String _title, TMLArchiPortArtifact _artifact, String _mappedMemory, Vector<String> _portsList, String _mappedPort ) { + super(_frame, _title, true); + frame = _frame; + artifact = _artifact; + mappedMemory = _mappedMemory; + portsList = _portsList; + mappedPort = _mappedPort; + appName = mappedPort.split("::")[0]; + initComponents(); + pack(); + } + + private void initComponents() { + + Container c = getContentPane(); + GridBagLayout gridbag0 = new GridBagLayout(); + GridBagLayout gridbag1 = new GridBagLayout(); + GridBagLayout gridbag2 = new GridBagLayout(); + GridBagConstraints c0 = new GridBagConstraints(); + GridBagConstraints c1 = new GridBagConstraints(); + GridBagConstraints c2 = new GridBagConstraints(); + + setFont(new Font("Helvetica", Font.PLAIN, 14)); + c.setLayout(gridbag0); + + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + + panel2 = new JPanel(); + panel2.setLayout(gridbag2); + panel2.setBorder(new javax.swing.border.TitledBorder("Artifact attributes")); + panel2.setPreferredSize(new Dimension(650, 350)); + + panel3 = new JPanel(); + panel3.setLayout(gridbag2); + panel3.setBorder(new javax.swing.border.TitledBorder("Code generation: memory configuration")); + panel3.setPreferredSize(new Dimension(650, 350)); + + tabbedPane = new JTabbedPane(); + panel4 = new JPanel(); + panel5 = new JPanel(); + + c1.gridwidth = 1; + c1.gridheight = 1; + c1.weighty = 1.0; + c1.weightx = 1.0; + c1.fill = GridBagConstraints.HORIZONTAL; + c1.gridwidth = GridBagConstraints.REMAINDER; //end row + int mappedPortIndex; + if( portsList.size() == 0 ) { + portsList.add( "No available port" ); + mappedPortIndex = 0; + } + else { + mappedPortIndex = portsList.indexOf( mappedPort ); + } + + mappedPortCB = new JComboBox( portsList ); + mappedPortCB.setSelectedIndex( mappedPortIndex ); + panel2.add( new JLabel( "Port:" ), c2 ); + mappedPortCB.addActionListener(this); + panel2.add( mappedPortCB, c1 ); + + //Make the list of memories that are available for being mapped + List componentList = artifact.getTDiagramPanel().getComponentList(); + Vector<String> memoryList = new Vector<String>(); + for( int k = 0; k < componentList.size(); k++ ) { + if( componentList.get(k) instanceof TMLArchiMemoryNode ) { + memoryList.add( ( (TMLArchiMemoryNode) componentList.get(k) ).getName() ); + } + } + if( memoryList.size() == 0 ) { // In case there are no memories in the design + memoryList.add( "No available memory" ); + } + + memoryCB = new JComboBox( memoryList ); + if( !mappedMemory.equals( "VOID" ) && !mappedMemory.equals( "" ) ) { + memoryCB.setSelectedIndex( memoryList.indexOf( mappedMemory ) ); + } + else { + memoryCB.setSelectedIndex( 0 ); + } + panel2.add( new JLabel( "Memory: "), c2 ); + memoryCB.addActionListener(this); + panel2.add( memoryCB, c1 ); + + // main panel; + c0.gridheight = 10; + c0.weighty = 1.0; + c0.weightx = 1.0; + c0.gridwidth = GridBagConstraints.REMAINDER; //end row + c0.fill = GridBagConstraints.BOTH; + c.add( panel2, c0 ); + + c0.gridwidth = 1; + c0.gridheight = 1; + c0.fill = GridBagConstraints.HORIZONTAL; + closeButton = new JButton("Save and Close", IconManager.imgic25); + //closeButton.setPreferredSize(new Dimension(600, 50)); + closeButton.addActionListener(this); + c.add(closeButton, c0); + c0.gridwidth = GridBagConstraints.REMAINDER; //end row + cancelButton = new JButton("Cancel", IconManager.imgic27); + cancelButton.addActionListener(this); + c.add(cancelButton, c0); + } + + private String getBufferTypeFromSelectedMemory( String mappedMemory ) { + + List componentList = artifact.getTDiagramPanel().getComponentList(); + Vector<String> list = new Vector<String>(); + + for( int k = 0; k < componentList.size(); k++ ) { + if( componentList.get(k) instanceof TMLArchiMemoryNode ) { + TMLArchiMemoryNode memoryNode = (TMLArchiMemoryNode)componentList.get(k); + if( memoryNode.getName().equals( mappedMemory ) ) { + return memoryNode.getName(); + } + } + } + return "NO MEC"; //default: the main memory buffer + } + + public void actionPerformed(ActionEvent evt) { + + /*if( evt.getSource() == memoryCB ) { + updateBufferPanel(); + }*/ + String command = evt.getActionCommand(); + // Compare the action command to the known actions. + if (command.equals("Save and Close")) { + closeDialog(); + } else if (command.equals("Cancel")) { + cancelDialog(); + } + } + + private void updateBufferPanel() { + + GridBagConstraints c1 = new GridBagConstraints(); + GridBagConstraints c2 = new GridBagConstraints(); + + c1.gridwidth = 1; + c1.gridheight = 1; + c1.weighty = 1.0; + c1.weightx = 1.0; + c1.fill = GridBagConstraints.HORIZONTAL; + c1.gridwidth = GridBagConstraints.REMAINDER; //end row + + //flushBuffersStrings(); + HALUnitName = getBufferTypeFromSelectedMemory( (String)memoryCB.getItemAt( memoryCB.getSelectedIndex() ) ); + ArrayList<JPanel> panelsList; + + switch( HALUnitName ) { + case "FEP_BUFFER": + tabbedPane.removeAll(); + panelsList = FepBuffer.makePanel( c1, c2 ); + panel3 = panelsList.get(0); + tabbedPane.addTab( "Data", panel3 ); + break; + case "MAPPER_BUFFER": + tabbedPane.removeAll(); + panelsList = MapperBuffer.makePanel( c1, c2 ); + tabbedPane.addTab( "Data In", panelsList.get(0) ); + tabbedPane.addTab( "Data Out", panelsList.get(1) ); + tabbedPane.addTab( "Look Up Table", panelsList.get(2) ); + tabbedPane.setSelectedIndex(0); + break; + case "ADAIF_BUFFER": + tabbedPane.removeAll(); + panelsList = AdaifBuffer.makePanel( c1, c2 ); + panel3 = panelsList.get(0); + tabbedPane.addTab( "Data", panel3 ); + break; + case "INTERLEAVER_BUFFER": + tabbedPane.removeAll(); + panelsList = InterleaverBuffer.makePanel( c1, c2 ); + tabbedPane.addTab( "Data In", panelsList.get(0) ); + tabbedPane.addTab( "Data Out", panelsList.get(1) ); + tabbedPane.addTab( "Permutation Table", panelsList.get(2) ); + tabbedPane.setSelectedIndex(0); + break; + case "MAIN_MEMORY_BUFFER": + tabbedPane.removeAll(); + panelsList = MMBuffer.makePanel( c1, c2 ); + panel3 = panelsList.get(0); + tabbedPane.addTab( "Data", panel3 ); + break; + default: //the main memory buffer + tabbedPane.removeAll(); + panelsList = FepBuffer.makePanel( c1, c2 ); + panel3 = panelsList.get(0); + tabbedPane.addTab( "Data", panel3 ); + break; + } + } + + public void closeDialog() { + + regularClose = true; + mappedMemory = (String) memoryCB.getItemAt( memoryCB.getSelectedIndex() ); + HALUnitName = getBufferTypeFromSelectedMemory( (String)memoryCB.getItemAt( memoryCB.getSelectedIndex() ) ); + switch ( HALUnitName ) { + case "FEP_BUFFER": + if( !FepBuffer.closePanel( frame ) ) { + return; + } + break; + case "MAPPER_BUFFER": + if( !MapperBuffer.closePanel( frame ) ) { + return; + } + break; + case "ADAIF_BUFFER": + if( !AdaifBuffer.closePanel( frame ) ) { + return; + } + break; + case "INTERLEAVER_BUFFER": + if( !InterleaverBuffer.closePanel( frame ) ) { + return; + } + break; + case "MAIN_MEMORY_BUFFER": + if( !MMBuffer.closePanel( frame ) ) { + return; + } + break; + default: //the main memory buffer + if( !FepBuffer.closePanel( frame ) ) { + return; + } + break; + } + dispose(); + } + + public String getMappedPort() { + return mappedPort; + } + + public String getMappedMemory() { + return mappedMemory; + } + + public String getStartAddress() { + return baseAddress; + } + + public void cancelDialog() { + dispose(); + } + + public boolean isRegularClose() { + return regularClose; + } + + public String getReferenceCommunicationName() { + if (emptyPortsList) { + return null; + } + String tmp = (String)( mappedPortCB.getSelectedItem() ); + if( tmp.length() > 0 ) { + int index = tmp.indexOf("::"); + if (index == -1) { + return tmp; + } + return tmp.substring(0, index); + } + else { + return "ERROR EMPTY PORT NAME"; + } + } + + public String getCommunicationName() { + String tmp = (String)( mappedPortCB.getSelectedItem() ); + int index = tmp.indexOf("::"); + if (index == -1) { + return tmp; + } + tmp = tmp.substring(index+2, tmp.length()); + + index = tmp.indexOf("("); + if (index > -1) { + tmp = tmp.substring(0, index).trim(); + } + return tmp; + } + + public String getTypeName() { + String tmp = (String)( mappedPortCB.getSelectedItem() ); + int index1 = tmp.indexOf("("); + int index2 = tmp.indexOf(")"); + if ((index1 > -1) && (index2 > index1)) { + return tmp.substring(index1+1, index2); + } + return ""; + } + + public int indexOf(Vector<String> _list, String name) { + int i = 0; + for(String s : _list) { + if (s.equals(name)) { + return i; + } + i++; + } + return 0; + } + + public ArrayList<String> getBufferParameters() { + + ArrayList<String> params = new ArrayList<String>(); + params.add( String.valueOf( HALUnitName ) ); + switch( HALUnitName ) { + case "FEP_BUFFER": + params = FepBuffer.getBufferParameters(); + break; + case "INTERLEAVER_BUFFER": + params = InterleaverBuffer.getBufferParameters(); + break; + case "ADAIF_BUFFER": + params = AdaifBuffer.getBufferParameters(); + break; + case "MAPPER_BUFFER": + params = MapperBuffer.getBufferParameters(); + break; + case "MAIN_MEMORY_BUFFER": + params = MMBuffer.getBufferParameters(); + break; + default: //the main memory buffer + params = FepBuffer.getBufferParameters(); + break; + } + return params; + } + + private void cleanPanels() { + panel3.removeAll(); + panel4.removeAll(); + panel5.removeAll(); + tabbedPane.removeAll(); + } + + private void revalidateAndRepaintPanels() { + panel3.revalidate(); + panel3.repaint(); + panel4.revalidate(); + panel4.repaint(); + panel5.revalidate(); + panel5.repaint(); + } + +} //End of class