diff --git a/modeling/proverif.xml b/modeling/proverif.xml index d348c18af4cf7d8c903d6a26c67e47fdf909622b..ed70cb2bad46a94db2a39bbffe8f1e686a23dc35 100644 --- a/modeling/proverif.xml +++ b/modeling/proverif.xml @@ -4,72 +4,160 @@ <Modeling type="AVATAR Design" nameTab="KeyMasterProtocol" > <AVATARBlockDiagramPanel name="AVATAR Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > -<COMPONENT type="5000" id="25" > -<cdparam x="82" y="180" /> -<sizeparam width="223" height="427" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<CONNECTOR type="5002" id="1545" > +<cdparam x="1029" y="448" /> +<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="" /> +<P1 x="986" y="454" id="1523" /> +<P2 x="986" y="590" id="1532" /> +<Point x="1014" y="454" /> +<Point x="1014" y="589" /> +<AutomaticDrawing data="true" /> +<extraparam> +<iso value="in chin(Message msg)" /> +<iso value="in chinprivate(Message msg)" /> +<osd value="out chout(Message msg)" /> +<osd value="out choutprivate(Message msg)" /> +<isd value="in chin(Message msg)" /> +<isd value="in chinprivate(Message msg)" /> +<oso value="out chout(Message msg)" /> +<oso value="out choutprivate(Message msg)" /> +<FIFOType asynchronous="false" size="1" blocking="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="1546" > +<father id="1545" num="0" /> +<cdparam x="1014" y="454" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Block0" value="ECUN" /> -<TGConnectingPoint num="0" id="1" /> -<TGConnectingPoint num="1" id="2" /> -<TGConnectingPoint num="2" id="3" /> -<TGConnectingPoint num="3" id="4" /> -<TGConnectingPoint num="4" id="5" /> -<TGConnectingPoint num="5" id="6" /> -<TGConnectingPoint num="6" id="7" /> -<TGConnectingPoint num="7" id="8" /> -<TGConnectingPoint num="8" id="9" /> -<TGConnectingPoint num="9" id="10" /> -<TGConnectingPoint num="10" id="11" /> -<TGConnectingPoint num="11" id="12" /> -<TGConnectingPoint num="12" id="13" /> -<TGConnectingPoint num="13" id="14" /> -<TGConnectingPoint num="14" id="15" /> -<TGConnectingPoint num="15" id="16" /> -<TGConnectingPoint num="16" id="17" /> -<TGConnectingPoint num="17" id="18" /> -<TGConnectingPoint num="18" id="19" /> -<TGConnectingPoint num="19" id="20" /> -<TGConnectingPoint num="20" id="21" /> -<TGConnectingPoint num="21" id="22" /> -<TGConnectingPoint num="22" id="23" /> -<TGConnectingPoint num="23" id="24" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="1547" > +<father id="1545" num="1" /> +<cdparam x="1014" y="589" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" 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="301" id="109" > +<cdparam x="203" y="10" /> +<sizeparam width="416" height="164" minWidth="50" minHeight="20" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="UML Note" value="#Confidentiality ECU1.SesK +#Confidentiality ECU1.confData + +#Authenticity ECU1.makingFirstMessage.SesK KM.decipherOK.msgauth + +#InitialCommonKnowledge ECU1.PSK1 KM.PSK1 +#InitialCommonKnowledge ECUN.PSKN KM.PSKN +#InitialCommonKnowledge ECUN.ACK ECU1.ACK KM.ACK +#InitialCommonKnowledge KM.timerexpire TimerKM.timerexpire +" /> +<TGConnectingPoint num="0" id="101" /> +<TGConnectingPoint num="1" id="102" /> +<TGConnectingPoint num="2" id="103" /> +<TGConnectingPoint num="3" id="104" /> +<TGConnectingPoint num="4" id="105" /> +<TGConnectingPoint num="5" id="106" /> +<TGConnectingPoint num="6" id="107" /> +<TGConnectingPoint num="7" id="108" /> <extraparam> -<Attribute access="0" id="PSKN" value="" type="5" typeOther="Key" /> -<Attribute access="0" id="keyOfGroup" value="" type="5" typeOther="Key" /> -<Attribute access="0" id="msg" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg1" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg2" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg3" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg4" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg5" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="msg6" value="" type="5" typeOther="Message" /> -<Attribute access="0" id="timestamp" value="" type="8" typeOther="" /> -<Attribute access="0" id="ACK" value="" type="8" typeOther="" /> -<Attribute access="0" id="b" value="" type="4" typeOther="" /> -<Attribute access="0" id="secretData" 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)" /> -<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)" /> -<Signal value="in chin(Message msg)" /> -<Signal value="out chout(Message msg)" /> +<Line value="#Confidentiality ECU1.SesK" /> +<Line value="#Confidentiality ECU1.confData" /> +<Line value="" /> +<Line value="#Authenticity ECU1.makingFirstMessage.SesK KM.decipherOK.msgauth" /> +<Line value="" /> +<Line value="#InitialCommonKnowledge ECU1.PSK1 KM.PSK1" /> +<Line value="#InitialCommonKnowledge ECUN.PSKN KM.PSKN" /> +<Line value="#InitialCommonKnowledge ECUN.ACK ECU1.ACK KM.ACK" /> +<Line value="#InitialCommonKnowledge KM.timerexpire TimerKM.timerexpire" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="118" > +<cdparam x="644" y="83" /> +<sizeparam width="102" height="54" minWidth="5" minHeight="2" maxWidth="1000" 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="110" /> +<TGConnectingPoint num="1" id="111" /> +<TGConnectingPoint num="2" id="112" /> +<TGConnectingPoint num="3" id="113" /> +<TGConnectingPoint num="4" id="114" /> +<TGConnectingPoint num="5" id="115" /> +<TGConnectingPoint num="6" id="116" /> +<TGConnectingPoint num="7" id="117" /> +<extraparam> +<Attribute access="0" id="data" value="" type="0" typeOther="" /> </extraparam> </COMPONENT> -<COMPONENT type="5000" id="75" > -<cdparam x="584" y="10" /> -<sizeparam width="324" height="324" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5003" id="127" > +<cdparam x="767" y="82" /> +<sizeparam width="110" height="56" minWidth="5" minHeight="2" maxWidth="1000" 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="119" /> +<TGConnectingPoint num="1" id="120" /> +<TGConnectingPoint num="2" id="121" /> +<TGConnectingPoint num="3" id="122" /> +<TGConnectingPoint num="4" id="123" /> +<TGConnectingPoint num="5" id="124" /> +<TGConnectingPoint num="6" id="125" /> +<TGConnectingPoint num="7" id="126" /> +<extraparam> +<Attribute access="0" id="data" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="1518" > +<cdparam x="44" y="181" /> +<sizeparam width="942" height="546" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="Block0" value="SecuredSystem" /> +<TGConnectingPoint num="0" id="1519" /> +<TGConnectingPoint num="1" id="1520" /> +<TGConnectingPoint num="2" id="1521" /> +<TGConnectingPoint num="3" id="1522" /> +<TGConnectingPoint num="4" id="1523" /> +<TGConnectingPoint num="5" id="1524" /> +<TGConnectingPoint num="6" id="1525" /> +<TGConnectingPoint num="7" id="1526" /> +<TGConnectingPoint num="8" id="1527" /> +<TGConnectingPoint num="9" id="1528" /> +<TGConnectingPoint num="10" id="1529" /> +<TGConnectingPoint num="11" id="1530" /> +<TGConnectingPoint num="12" id="1531" /> +<TGConnectingPoint num="13" id="1532" /> +<TGConnectingPoint num="14" id="1533" /> +<TGConnectingPoint num="15" id="1534" /> +<TGConnectingPoint num="16" id="1535" /> +<TGConnectingPoint num="17" id="1536" /> +<TGConnectingPoint num="18" id="1537" /> +<TGConnectingPoint num="19" id="1538" /> +<TGConnectingPoint num="20" id="1539" /> +<TGConnectingPoint num="21" id="1540" /> +<TGConnectingPoint num="22" id="1541" /> +<TGConnectingPoint num="23" id="1542" /> +<extraparam> +<Signal value="in chin(Message msg)" /> +<Signal value="out chout(Message msg)" /> +<Signal value="in chinprivate(Message msg)" /> +<Signal value="out choutprivate(Message msg)" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="75" > +<father id="1518" num="0" /> +<cdparam x="567" y="266" /> +<sizeparam width="324" height="434" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="618" minY="0" maxY="112" /> <infoparam name="Block0" value="KM" /> <TGConnectingPoint num="0" id="51" /> <TGConnectingPoint num="1" id="52" /> @@ -126,18 +214,14 @@ <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)" /> -<Signal value="in chin(Message msg)" /> -<Signal value="out chout(Message msg)" /> -<Signal value="in chinprivate(Message msg)" /> -<Signal value="out choutprivate(Message msg)" /> </extraparam> -</COMPONENT> +</SUBCOMPONENT> <SUBCOMPONENT type="5000" id="50" > <father id="75" num="0" /> -<cdparam x="684" y="74" /> +<cdparam x="677" y="329" /> <sizeparam width="212" height="134" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="112" minY="0" maxY="190" /> +<cdrectangleparam minX="0" maxX="112" minY="0" maxY="300" /> <infoparam name="Block0" value="TimerKM" /> <TGConnectingPoint num="0" id="26" /> <TGConnectingPoint num="1" id="27" /> @@ -178,18 +262,14 @@ <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)" /> -<Signal value="in chin(Message msg)" /> -<Signal value="out chout(Message msg)" /> -<Signal value="in chinprivate(Message msg)" /> -<Signal value="out choutprivate(Message msg)" /> </extraparam> </SUBCOMPONENT> - -<COMPONENT type="5000" id="100" > -<cdparam x="309" y="181" /> -<sizeparam width="223" height="212" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<SUBCOMPONENT type="5000" id="100" > +<father id="1518" num="1" /> +<cdparam x="322" y="281" /> +<sizeparam width="223" height="405" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<cdrectangleparam minX="0" maxX="719" minY="0" maxY="141" /> <infoparam name="Block0" value="ECU1" /> <TGConnectingPoint num="0" id="76" /> <TGConnectingPoint num="1" id="77" /> @@ -242,84 +322,67 @@ <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)" /> -<Signal value="in chin(Message msg)" /> -<Signal value="out chout(Message msg)" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="301" id="109" > -<cdparam x="163" y="10" /> -<sizeparam width="416" height="164" minWidth="50" minHeight="20" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="UML Note" value="#Confidentiality ECU1.SesK -#Confidentiality ECU1.confData - -#Authenticity ECU1.makingFirstMessage.SesK KM.decipherOK.msgauth - -#InitialCommonKnowledge ECU1.PSK1 KM.PSK1 -#InitialCommonKnowledge ECUN.PSKN KM.PSKN -#InitialCommonKnowledge ECUN.ACK ECU1.ACK KM.ACK -#InitialCommonKnowledge KM.timerexpire TimerKM.timerexpire -" /> -<TGConnectingPoint num="0" id="101" /> -<TGConnectingPoint num="1" id="102" /> -<TGConnectingPoint num="2" id="103" /> -<TGConnectingPoint num="3" id="104" /> -<TGConnectingPoint num="4" id="105" /> -<TGConnectingPoint num="5" id="106" /> -<TGConnectingPoint num="6" id="107" /> -<TGConnectingPoint num="7" id="108" /> -<extraparam> -<Line value="#Confidentiality ECU1.SesK" /> -<Line value="#Confidentiality ECU1.confData" /> -<Line value="" /> -<Line value="#Authenticity ECU1.makingFirstMessage.SesK KM.decipherOK.msgauth" /> -<Line value="" /> -<Line value="#InitialCommonKnowledge ECU1.PSK1 KM.PSK1" /> -<Line value="#InitialCommonKnowledge ECUN.PSKN KM.PSKN" /> -<Line value="#InitialCommonKnowledge ECUN.ACK ECU1.ACK KM.ACK" /> -<Line value="#InitialCommonKnowledge KM.timerexpire TimerKM.timerexpire" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5003" id="118" > -<cdparam x="660" y="340" /> -<sizeparam width="102" height="54" minWidth="5" minHeight="2" maxWidth="1000" 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="110" /> -<TGConnectingPoint num="1" id="111" /> -<TGConnectingPoint num="2" id="112" /> -<TGConnectingPoint num="3" id="113" /> -<TGConnectingPoint num="4" id="114" /> -<TGConnectingPoint num="5" id="115" /> -<TGConnectingPoint num="6" id="116" /> -<TGConnectingPoint num="7" id="117" /> -<extraparam> -<Attribute access="0" id="data" value="" type="0" typeOther="" /> </extraparam> -</COMPONENT> - -<COMPONENT type="5003" id="127" > -<cdparam x="544" y="339" /> -<sizeparam width="110" height="56" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="25" > +<father id="1518" num="2" /> +<cdparam x="79" y="280" /> +<sizeparam width="223" height="427" minWidth="5" minHeight="2" maxWidth="1000" 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="119" /> -<TGConnectingPoint num="1" id="120" /> -<TGConnectingPoint num="2" id="121" /> -<TGConnectingPoint num="3" id="122" /> -<TGConnectingPoint num="4" id="123" /> -<TGConnectingPoint num="5" id="124" /> -<TGConnectingPoint num="6" id="125" /> -<TGConnectingPoint num="7" id="126" /> +<cdrectangleparam minX="0" maxX="719" minY="0" maxY="119" /> +<infoparam name="Block0" value="ECUN" /> +<TGConnectingPoint num="0" id="1" /> +<TGConnectingPoint num="1" id="2" /> +<TGConnectingPoint num="2" id="3" /> +<TGConnectingPoint num="3" id="4" /> +<TGConnectingPoint num="4" id="5" /> +<TGConnectingPoint num="5" id="6" /> +<TGConnectingPoint num="6" id="7" /> +<TGConnectingPoint num="7" id="8" /> +<TGConnectingPoint num="8" id="9" /> +<TGConnectingPoint num="9" id="10" /> +<TGConnectingPoint num="10" id="11" /> +<TGConnectingPoint num="11" id="12" /> +<TGConnectingPoint num="12" id="13" /> +<TGConnectingPoint num="13" id="14" /> +<TGConnectingPoint num="14" id="15" /> +<TGConnectingPoint num="15" id="16" /> +<TGConnectingPoint num="16" id="17" /> +<TGConnectingPoint num="17" id="18" /> +<TGConnectingPoint num="18" id="19" /> +<TGConnectingPoint num="19" id="20" /> +<TGConnectingPoint num="20" id="21" /> +<TGConnectingPoint num="21" id="22" /> +<TGConnectingPoint num="22" id="23" /> +<TGConnectingPoint num="23" id="24" /> <extraparam> -<Attribute access="0" id="data" value="" type="8" typeOther="" /> +<Attribute access="0" id="PSKN" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="keyOfGroup" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="msg" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg3" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg5" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="msg6" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="timestamp" value="" type="8" typeOther="" /> +<Attribute access="0" id="ACK" value="" type="8" typeOther="" /> +<Attribute access="0" id="b" value="" type="4" typeOther="" /> +<Attribute access="0" id="secretData" 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)" /> +<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)" /> </extraparam> -</COMPONENT> +</SUBCOMPONENT> </AVATARBlockDiagramPanel> @@ -2652,8 +2715,8 @@ </COMPONENT> <COMPONENT type="5103" id="1132" > -<cdparam x="347" y="264" /> -<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="351" y="264" /> +<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Send signal" value="chout(timerexpire)" /> @@ -2702,8 +2765,8 @@ </COMPONENT> <COMPONENT type="5104" id="1168" > -<cdparam x="356" y="110" /> -<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="358" y="110" /> +<sizeparam width="93" height="20" minWidth="30" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Send signal" value="chin(settimer)" /> @@ -2729,6 +2792,19 @@ </COMPONENT> +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="SecuredSystem" minX="10" maxX="1400" minY="10" maxY="900" > +<COMPONENT type="5100" id="1543" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="1000" 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="1544" /> +</COMPONENT> + + </AVATARStateMachineDiagramPanel> </Modeling> @@ -3393,7 +3469,7 @@ <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="" /> <P1 x="324" y="185" id="1483" /> -<P2 x="385" y="209" id="1457" /> +<P2 x="389" y="187" id="1457" /> <AutomaticDrawing data="true" /> <extraparam> <isd value="in fromnet()" /> @@ -3402,7 +3478,7 @@ </extraparam> </CONNECTOR> <COMPONENT type="5000" id="1469" > -<cdparam x="385" y="133" /> +<cdparam x="389" y="111" /> <sizeparam width="131" height="102" minWidth="5" minHeight="2" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> diff --git a/src/avatartranslator/AvatarBroadcast.java b/src/avatartranslator/AvatarBroadcast.java new file mode 100644 index 0000000000000000000000000000000000000000..86191e49d7b854508419ba880424ead26903d302 --- /dev/null +++ b/src/avatartranslator/AvatarBroadcast.java @@ -0,0 +1,158 @@ +/**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 AvatarBroadcast + * List all signals that are related to the broadcast channel + * Creation: 20/05/2010 + * @version 1.0 20/05/2010 + * @author Ludovic APVRILLE + * @see + */ + + +package avatartranslator; + +import java.util.*; + +import myutil.*; + +public class AvatarBroadcast extends AvatarElement { + + + //public AvatarBlock block1, block2; + + // This two lists contain send and receive signals + // Signals with no correspondance are sent to the environment + private LinkedList<AvatarSignal> sendSignals, receiveSignals; + private boolean [] hasSendCorrespondance; // For send signals only + + + public AvatarBroadcast(String _name, Object _referenceObject) { + super(_name, _referenceObject); + sendSignals = new LinkedList<AvatarSignal>(); + receiveSignals = new LinkedList<AvatarSignal>(); + } + + public boolean containsSignal(AvatarSignal _as) { + if (_as.isOut()) { + return sendSignals.contains(_as); + } + return receiveSignals.contains(_as); + } + + + public void addSignal(AvatarSignal _sig) { + if (_sig.isOut()) { + sendSignals.add(_sig); + } else { + receiveSignals.add(_sig); + } + computeCorrespondance(); + } + + public int nbOfSendSignals() { + return sendSignals.size(); + } + + public AvatarSignal getSendSignal(int _index) { + return sendSignals.get(_index); + } + + public int nbOfReceiveSignals() { + return receiveSignals.size(); + } + + public AvatarSignal getReceiveSignal(int _index) { + return receiveSignals.get(_index); + } + + public String toString() { + StringBuffer sb = new StringBuffer("Send signals: "); + for(int i=0; i<sendSignals.size(); i++) { + if (i>0) { + sb.append(" ; "); + } + sb.append(sendSignals.get(i).getName()); + } + sb.append(" ; receive signals: "); + for(int j=0; j<receiveSignals.size(); j++) { + if (j>0) { + sb.append(" ; "); + } + sb.append(receiveSignals.get(j).getName()); + } + return sb.toString(); + } + + // Return index of signal. If not found, return -1 + public boolean hasSignal(AvatarSignal _sig) { + if (_sig.isOut()) { + return sendSignals.contains(_sig); + } + return receiveSignals.contains(_sig); + } + + public int getIndexOfSignal(AvatarSignal _sig) { + if (_sig.isOut()) { + return sendSignals.indexOf(_sig); + } + return receiveSignals.indexOf(_sig); + } + + private void computeCorrespondance() { + hasSendCorrespondance = new boolean[sendSignals.size()]; + + int cpt = 0; + for(AvatarSignal ss: sendSignals) { + computeCorrespondance(ss, cpt); + cpt ++; + } + } + + private void computeCorrespondance(AvatarSignal _ss, int _index) { + for(AvatarSignal rs: receiveSignals) { + if (rs.isCompatibleWith(_ss)) { + hasSendCorrespondance[_index] = true; + return; + } + } + hasSendCorrespondance[_index] = false; + } + + +} \ No newline at end of file diff --git a/src/avatartranslator/AvatarMethod.java b/src/avatartranslator/AvatarMethod.java index 550c03751dfa671000d542238dca6c2c47a3f4c4..7f65f5cce5b0cbfc4ee9ea9e3de0950056a96a39 100644 --- a/src/avatartranslator/AvatarMethod.java +++ b/src/avatartranslator/AvatarMethod.java @@ -118,6 +118,38 @@ public class AvatarMethod extends AvatarElement{ ret += ")"; return ret; } + + public boolean isCompatibleWith(AvatarMethod _am) { + if (parameters.size() != _am.getListOfAttributes().size()) { + return false; + } + + AvatarAttribute _ama; + int cpt = 0; + for(AvatarAttribute aa: parameters) { + _ama = _am.getListOfAttributes().get(cpt); + if (_ama.getType() != aa.getType()) { + return false; + } + cpt ++; + } + + if (returnParameters.size() != _am.getListOfReturnAttributes().size()) { + return false; + } + + cpt = 0; + for(AvatarAttribute aa: returnParameters) { + _ama = _am.getListOfReturnAttributes().get(cpt); + if (_ama.getType() != aa.getType()) { + return false; + } + cpt ++; + } + + return true; + } + } \ No newline at end of file diff --git a/src/avatartranslator/AvatarSpecification.java b/src/avatartranslator/AvatarSpecification.java index 15825763872e136662a392ffd41f2699dc41f87e..6405f8816f36783dd91e3e0df90238414fd4036c 100644 --- a/src/avatartranslator/AvatarSpecification.java +++ b/src/avatartranslator/AvatarSpecification.java @@ -57,6 +57,8 @@ public class AvatarSpecification extends AvatarElement { private LinkedList<AvatarBlock> blocks; private LinkedList<AvatarRelation> relations; + //private AvatarBroadcast broadcast; + private LinkedList<String> pragmas; @@ -64,6 +66,7 @@ public class AvatarSpecification extends AvatarElement { super(_name, _referenceObject); blocks = new LinkedList<AvatarBlock>(); relations = new LinkedList<AvatarRelation>(); + //broadcast = new AvatarBroadcast("Broadcast", _referenceObject); pragmas = new LinkedList<String>(); } @@ -98,6 +101,16 @@ public class AvatarSpecification extends AvatarElement { relations.add(_relation); } + /*public void addBroadcastSignal(AvatarSignal _as) { + if (!broadcast.containsSignal(_as)) { + broadcast.addSignal(_as); + } + } + + public AvatarBroadcast getBroadcast() { + return broadcast; + }*/ + public void addPragma(String _pragma) { pragmas.add(_pragma); } diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java index 4dd69785856188eb04781b81129707928c9b90fd..571d184680007a5e191f4ac845126342281b1c84 100644 --- a/src/ui/AvatarDesignPanelTranslator.java +++ b/src/ui/AvatarDesignPanelTranslator.java @@ -627,6 +627,7 @@ public class AvatarDesignPanelTranslator { ce.setTDiagramPanel(tdp); ce.setTGComponent(tgc); addCheckingError(ce); + //_as.addBroadcastSignal(atas); } aaos = new AvatarActionOnSignal("action_on_signal", atas, tgc); if (asmdrs.hasCheckableAccessibility()) { @@ -719,6 +720,7 @@ public class AvatarDesignPanelTranslator { ce.setTDiagramPanel(tdp); ce.setTGComponent(tgc); addCheckingError(ce); + //_as.addBroadcastSignal(atas); } aaos = new AvatarActionOnSignal("action_on_signal", atas, tgc); diff --git a/src/ui/window/JDialogSystemCGeneration.java b/src/ui/window/JDialogSystemCGeneration.java index bf0e0f41d1a0d8bf8f0d3b6575855bd2266a7089..5e371f5d178089244cf50303074486607de1143d 100755 --- a/src/ui/window/JDialogSystemCGeneration.java +++ b/src/ui/window/JDialogSystemCGeneration.java @@ -642,6 +642,7 @@ public class JDialogSystemCGeneration extends javax.swing.JDialog implements Act tepe = arpt.generateTEPESpecification((AvatarPDPanel)(valTepe.get(k))); jta.append("TEPE: " + tepe.getName() + "\n"); jta.append("Checking syntax\n"); + // tepe.checkSyntax(); alTepe.add(tepe); jta.append("Done.\n"); }