Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
TTool
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
mbe-tools
TTool
Commits
eb342125
Commit
eb342125
authored
1 year ago
by
jawher-j
Browse files
Options
Downloads
Patches
Plain Diff
update Security generation with HSM
parent
87c84c48
No related branches found
Branches containing commit
No related tags found
1 merge request
!472
Pattern handling
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java
+53
-25
53 additions, 25 deletions
...translator/patternhandling/SecurityGenerationForTMAP.java
with
53 additions
and
25 deletions
src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java
+
53
−
25
View file @
eb342125
...
...
@@ -166,14 +166,14 @@ public class SecurityGenerationForTMAP implements Runnable {
if
(
elem
instanceof
TMLWriteChannel
)
{
TMLWriteChannel
writeChannel
=
(
TMLWriteChannel
)
elem
;
for
(
int
i
=
0
;
i
<
writeChannel
.
getNbOfChannels
();
i
++)
{
if
(
writeChannel
.
getChannel
(
i
).
getName
().
equals
(
portName
))
{
if
(
writeChannel
.
getChannel
(
i
).
getName
().
replaceAll
(
appName
+
"__"
,
""
).
equals
(
portName
))
{
return
true
;
}
}
}
else
if
(
elem
instanceof
TMLReadChannel
)
{
TMLReadChannel
readChannel
=
(
TMLReadChannel
)
elem
;
for
(
int
i
=
0
;
i
<
readChannel
.
getNbOfChannels
();
i
++)
{
if
(
readChannel
.
getChannel
(
i
).
getName
().
equals
(
portName
))
{
if
(
readChannel
.
getChannel
(
i
).
getName
().
replaceAll
(
appName
+
"__"
,
""
).
equals
(
portName
))
{
return
true
;
}
}
...
...
@@ -204,7 +204,9 @@ public class SecurityGenerationForTMAP implements Runnable {
for
(
String
cpuName
:
selectedCPUTasks
.
keySet
())
{
TraceManager
.
addDev
(
"cpuName="
+
cpuName
);
for
(
String
task
:
selectedCPUTasks
.
get
(
cpuName
))
{
TraceManager
.
addDev
(
"task="
+
task
);
hsmTasks
.
add
(
task
);
taskHSMMap
.
put
(
task
,
cpuName
);
}
...
...
@@ -301,9 +303,6 @@ public class SecurityGenerationForTMAP implements Runnable {
if
(
chan
.
isBasicChannel
())
{
portNames
.
add
(
chan
.
getOriginPort
().
getName
());
portNames
.
add
(
chan
.
getDestinationPort
().
getName
());
TraceManager
.
addDev
(
"chan.getName()="
+
chan
.
getName
());
TraceManager
.
addDev
(
"chan.getOriginTask().getName()="
+
chan
.
getOriginTask
().
getName
());
TraceManager
.
addDev
(
"chan.getDestinationTask().getName()="
+
chan
.
getDestinationTask
().
getName
());
if
(
nonConfChans
.
contains
(
chan
.
getOriginTask
().
getName
().
split
(
"__"
)[
1
]
+
"__"
+
chan
.
getOriginPort
().
getName
()
+
"_chData"
))
{
nonConf
=
true
;
TraceManager
.
addDev
(
"SECGEN. non conf basic ch = true"
);
...
...
@@ -352,6 +351,7 @@ public class SecurityGenerationForTMAP implements Runnable {
for
(
String
chanName
:
portNames
)
{
//Classify channels based on the type of security requirements and unsatisfied properties
TraceManager
.
addDev
(
"chanName="
+
chanName
);
if
(
chan
.
isBasicChannel
())
{
if
(
chan
.
isEnsureConf
()
&&
nonConf
)
{
toSecure
.
get
(
chan
.
getOriginTask
()).
add
(
chan
.
getDestinationTask
());
...
...
@@ -360,10 +360,13 @@ public class SecurityGenerationForTMAP implements Runnable {
toSecureRev
.
get
(
chan
.
getDestinationTask
()).
add
(
chan
.
getOriginTask
());
}
}
TraceManager
.
addDev
(
"362: "
+
chan
.
getOriginTask
().
getName
().
split
(
"__"
)[
1
]);
if
(
hsmTasks
.
contains
(
chan
.
getOriginTask
().
getName
().
split
(
"__"
)[
1
]))
{
SecurityPattern
secPattern
=
new
SecurityPattern
(
"hsmSec_"
+
secName
,
SecurityPattern
.
SYMMETRIC_ENC_PATTERN
,
overhead
,
""
,
encComp
,
decComp
,
""
,
""
,
""
);
secPattern
.
originTask
=
chan
.
getOriginTask
().
getName
().
replaceAll
(
title
+
"__"
,
""
);
channelSecMap
.
put
(
chanName
,
secPattern
);
TraceManager
.
addDev
(
"portInTask="
+
portInTask
(
chan
.
getOriginTask
(),
chanName
));
TraceManager
.
addDev
(
"hsmSecOutChannels="
+
hsmSecOutChannels
.
get
(
chan
.
getOriginTask
()).
contains
(
chanName
));
if
(!
hsmSecOutChannels
.
get
(
chan
.
getOriginTask
()).
contains
(
chanName
)
&&
portInTask
(
chan
.
getOriginTask
(),
chanName
))
{
HSMChannel
hsmchan
=
new
HSMChannel
(
chanName
,
chan
.
getOriginTask
().
getName
().
split
(
"__"
)[
1
],
HSMChannel
.
SENC
);
hsmChannelMap
.
get
(
taskHSMMap
.
get
(
chan
.
getOriginTask
().
getName
().
split
(
"__"
)[
1
])).
add
(
hsmchan
);
...
...
@@ -386,6 +389,7 @@ public class SecurityGenerationForTMAP implements Runnable {
}
}
TraceManager
.
addDev
(
"389: "
+
chan
.
getDestinationTask
().
getName
().
split
(
"__"
)[
1
]);
if
(
hsmTasks
.
contains
(
chan
.
getDestinationTask
().
getName
().
split
(
"__"
)[
1
]))
{
if
(!
hsmSecInChannels
.
get
(
chan
.
getDestinationTask
()).
contains
(
chanName
)
&&
portInTask
(
chan
.
getDestinationTask
(),
chanName
))
{
HSMChannel
hsmchan
=
new
HSMChannel
(
chanName
,
chan
.
getDestinationTask
().
getName
().
split
(
"__"
)[
1
],
HSMChannel
.
DEC
);
...
...
@@ -637,7 +641,7 @@ public class SecurityGenerationForTMAP implements Runnable {
for
(
TMLTask
task
:
tmlmodel
.
getTasks
())
{
for
(
String
compName
:
selectedCPUTasks
.
get
(
cpuName
))
{
if
(
task
.
getName
().
equals
(
compName
))
{
if
(
task
.
getName
().
replaceAll
(
title
+
"__"
,
""
).
equals
(
compName
))
{
comps
.
add
(
task
);
break
;
}
...
...
@@ -656,8 +660,10 @@ public class SecurityGenerationForTMAP implements Runnable {
List
<
ChannelData
>
hsmChans
=
new
ArrayList
<
ChannelData
>();
ChannelData
chd
=
new
ChannelData
(
"startHSM_"
+
cpuName
,
false
,
false
);
hsmChans
.
add
(
chd
);
TraceManager
.
addDev
(
"comp.getName()="
+
comp
.
getName
());
for
(
HSMChannel
hsmChan
:
hsmChannelMap
.
get
(
cpuName
))
{
if
(!
hsmChan
.
task
.
equals
(
comp
.
getName
()))
{
TraceManager
.
addDev
(
"hsmChan name="
+
hsmChan
.
name
+
" task="
+
hsmChan
.
task
);
if
(!
hsmChan
.
task
.
equals
(
comp
.
getName
().
replaceAll
(
title
+
"__"
,
""
)))
{
continue
;
}
if
(!
channelIndexMap
.
containsKey
(
hsmChan
.
name
))
{
...
...
@@ -782,14 +788,18 @@ public class SecurityGenerationForTMAP implements Runnable {
}
for
(
HwCommunicationNode
mappedNode
:
tmap
.
getAllCommunicationNodesOfChannel
(
chan
))
{
if
(!(
mappedNode
instanceof
HwMemory
))
{
tmap
.
addCommToHwCommNode
(
channel
,
mappedNode
);
if
(!
tmap
.
isCommNodeMappedOn
(
channel
,
mappedNode
))
{
tmap
.
addCommToHwCommNode
(
channel
,
mappedNode
);
}
}
}
}
}
}
if
(
count_chans
>
0
)
{
tmap
.
addCommToHwCommNode
(
channel
,
memToPutChannel
);
if
(!
tmap
.
isCommNodeMappedOn
(
channel
,
memToPutChannel
))
{
tmap
.
addCommToHwCommNode
(
channel
,
memToPutChannel
);
}
}
}
}
...
...
@@ -1035,8 +1045,19 @@ public class SecurityGenerationForTMAP implements Runnable {
TMLSendRequest
req
=
new
TMLSendRequest
(
"startHSM_"
+
taskHSMMap
.
get
(
task
.
getName
().
split
(
"__"
)[
1
]),
taskAD
.
getReferenceObject
());
//TMLADSendRequest req = new TMLADSendRequest(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
//req.setRequestName("startHSM_" + taskHSMMap.get(task.getName().split("__")[1]));
req
.
setParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)),
0
);
TraceManager
.
addDev
(
"chanNam="
+
chanName
);
for
(
String
st
:
channelIndexMap
.
keySet
())
{
TraceManager
.
addDev
(
"channelIndexMap="
+
st
);
}
for
(
String
st
:
channelIndexMap
.
keySet
())
{
TraceManager
.
addDev
(
"channelIndexMap.value="
+
channelIndexMap
.
get
(
st
));
}
if
(
req
.
getNbOfParams
()
>
0
)
{
req
.
setParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)),
0
);
}
else
{
req
.
addParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)));
}
fromStart
.
setNewNext
(
chan
,
req
);
taskAD
.
addElement
(
req
);
...
...
@@ -1147,7 +1168,11 @@ public class SecurityGenerationForTMAP implements Runnable {
TMLSendRequest
req
=
new
TMLSendRequest
(
"startHSM_"
+
taskHSMMap
.
get
(
task
.
getName
().
split
(
"__"
)[
1
]),
taskAD
.
getReferenceObject
());
req
.
setParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)),
0
);
if
(
req
.
getNbOfParams
()
>
0
)
{
req
.
setParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)),
0
);
}
else
{
req
.
addParam
(
Integer
.
toString
(
channelIndexMap
.
get
(
chanName
)));
}
taskAD
.
addElement
(
req
);
fromStart
.
setNewNext
(
chan
,
req
);
...
...
@@ -1353,11 +1378,11 @@ public class SecurityGenerationForTMAP implements Runnable {
//Shift everything down
for
(
TMLActivityElement
elemA
:
taskAD
.
getElements
())
{
if
(
elemA
instanceof
TMLReadChannel
)
{
r
eadChannel
=
(
TMLReadChannel
)
elemA
;
for
(
int
i
=
0
;
i
<
r
eadChannel
.
getNbOfChannels
();
i
++)
{
if
(
channel
.
equals
(
r
eadChannel
.
getChannel
(
i
).
getName
().
replaceAll
(
title
+
"__"
,
""
))
&&
r
eadChannel
.
securityPattern
==
null
)
{
r
eadChannel
.
securityPattern
=
channelSecMap
.
get
(
readC
hannel
.
getChannel
(
i
).
getName
().
replaceAll
(
title
+
"__"
,
""
)
);
r
eadChannel
.
setEncForm
(
true
);
TMLR
eadChannel
rdOfSameCh
=
(
TMLReadChannel
)
elemA
;
for
(
int
i
=
0
;
i
<
r
dOfSameCh
.
getNbOfChannels
();
i
++)
{
if
(
channel
.
equals
(
r
dOfSameCh
.
getChannel
(
i
).
getName
().
replaceAll
(
title
+
"__"
,
""
))
&&
r
dOfSameCh
.
securityPattern
==
null
)
{
r
dOfSameCh
.
securityPattern
=
channelSecMap
.
get
(
c
hannel
);
r
dOfSameCh
.
setEncForm
(
true
);
}
}
}
...
...
@@ -1471,11 +1496,14 @@ public class SecurityGenerationForTMAP implements Runnable {
//Shift everything down
for
(
TMLActivityElement
elemA
:
taskAD
.
getElements
())
{
if
(
elemA
instanceof
TMLReadChannel
)
{
readChannel
=
(
TMLReadChannel
)
elemA
;
for
(
int
i
=
0
;
i
<
readChannel
.
getNbOfChannels
();
i
++)
{
if
(
channel
.
equals
(
readChShortName
)
&&
readChannel
.
securityPattern
==
null
)
{
readChannel
.
securityPattern
=
channelSecMap
.
get
(
readChShortName
);
readChannel
.
setEncForm
(
true
);
TMLReadChannel
rdOfSameCh
=
(
TMLReadChannel
)
elemA
;
for
(
int
i
=
0
;
i
<
rdOfSameCh
.
getNbOfChannels
();
i
++)
{
String
readSameChShortName
=
rdOfSameCh
.
getChannel
(
i
).
getName
().
replaceAll
(
title
+
"__"
,
""
);
if
(
channel
.
equals
(
readSameChShortName
)
&&
rdOfSameCh
.
securityPattern
==
null
)
{
TraceManager
.
addDev
(
"readSameChShortName= "
+
readSameChShortName
);
TraceManager
.
addDev
(
"channel= "
+
channel
);
rdOfSameCh
.
securityPattern
=
channelSecMap
.
get
(
readSameChShortName
);
rdOfSameCh
.
setEncForm
(
true
);
}
}
}
...
...
@@ -1503,6 +1531,8 @@ public class SecurityGenerationForTMAP implements Runnable {
//fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
TraceManager
.
addDev
(
"build AD: cpuName="
+
cpuName
);
TraceManager
.
addDev
(
"build AD: size="
+
hsmChannelMap
.
get
(
cpuName
).
size
());
if
(
hsmChannelMap
.
get
(
cpuName
).
size
()
==
0
)
{
TMLStopState
stop
=
new
TMLStopState
(
"stop"
,
taskAD
.
getReferenceObject
());
taskAD
.
addElement
(
stop
);
...
...
@@ -1633,10 +1663,9 @@ public class SecurityGenerationForTMAP implements Runnable {
}
}
else
{
int
i
=
1
;
for
(
HSMChannel
ch
:
hsmChannelMap
.
get
(
cpuName
))
{
//Add guard as channelindex
choice
.
set
Guard
At
(
i
-
1
,
"[channelIndex=="
+
channelIndexMap
.
get
(
ch
.
name
)
+
"]"
);
choice
.
add
Guard
(
"[channelIndex=="
+
channelIndexMap
.
get
(
ch
.
name
)
+
"]"
);
TMLReadChannel
rd
=
new
TMLReadChannel
(
"data_"
+
ch
.
name
+
"_"
+
ch
.
task
,
taskAD
.
getReferenceObject
());
rd
.
addChannel
(
tmlmodel
.
getChannelByName
(
"data_"
+
ch
.
name
+
"_"
+
ch
.
task
));
rd
.
securityPattern
=
channelSecMap
.
get
(
ch
.
name
);
...
...
@@ -1754,7 +1783,6 @@ public class SecurityGenerationForTMAP implements Runnable {
//Connect stop and write channel
wr
.
addNext
(
stop
);
}
i
++;
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment