Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit 686478d

Browse files
committed
merging in develop
2 parents c544101 + 605b348 commit 686478d

File tree

5 files changed

+21
-11
lines changed

5 files changed

+21
-11
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# v1.8.1 - 3 March 2021
2+
## Fixes
3+
- Layer library should no longer throw errors when it encounters the "Network" and "PRE" platforms.
4+
- Layer library should no longer throw errors if it encounters a layer with a version number higher than it expects.
5+
- Setting `showSubtechniques` to true on a technique should no longer cause a crash when exporting the layer to SVG.
6+
17
# v1.8 - 15 December 2020
28
## Improvements
39
- Updated Layer library to support ATT&CK Navigator Layer format version 4.1.

layers/core/filter.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ def platforms(self):
2727
def platforms(self, platforms):
2828
typeCheckerArray(type(self).__name__, platforms, str, "platforms")
2929
self.__platforms = []
30-
valids = ["Windows", "Linux", "macOS", "AWS", "GCP", "Azure",
31-
"Azure AD", "Office 365", "SaaS"]
32-
if self.domain == "mitre-mobile":
33-
valids = ['Android', 'iOS']
3430
for entry in platforms:
35-
categoryChecker(type(self).__name__, entry, valids, "platforms")
3631
self.__platforms.append(entry)
3732

3833
def get_dict(self):

layers/core/versions.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
try:
2-
from ..core.exceptions import typeChecker, categoryChecker, UNSETVALUE
2+
from ..core.exceptions import typeChecker, categoryChecker, UNSETVALUE, BadInput
33
except ValueError:
4-
from core.exceptions import typeChecker, categoryChecker, UNSETVALUE
4+
from core.exceptions import typeChecker, categoryChecker, UNSETVALUE, BadInput
55

66

77
class Versions:
@@ -36,7 +36,11 @@ def navigator(self):
3636
@navigator.setter
3737
def navigator(self, navigator):
3838
typeChecker(type(self).__name__, navigator, str, "navigator")
39-
categoryChecker(type(self).__name__, navigator, ["4.0", "4.1"], "navigator version")
39+
try:
40+
categoryChecker(type(self).__name__, navigator, ["4.0", "4.1"], "navigator version")
41+
except BadInput:
42+
print(f'[WARNING] - unrecognized navigator version {navigator}. Defaulting to the 4.1 schema, '
43+
f'this may result in unexpected behavior.')
4044
self.__navigator = navigator
4145

4246
@property
@@ -46,9 +50,13 @@ def layer(self):
4650
@layer.setter
4751
def layer(self, layer):
4852
typeChecker(type(self).__name__, layer, str, "layer")
49-
categoryChecker(type(self).__name__, layer, ["3.0", "4.0", "4.1"], "layer version")
53+
try:
54+
categoryChecker(type(self).__name__, layer, ["3.0", "4.0", "4.1"], "layer version")
55+
except BadInput:
56+
print(f'[WARNING] - unrecognized layer version {layer}. Defaulting to the 4.1 schema, this may result in '
57+
f'unexpected behavior.')
5058
if layer == '3.0':
51-
print('[NOTICE] - Forcibly upgrading version from {} to 4.1.'.format(layer))
59+
print(f'[NOTICE] - Forcibly upgrading version from {layer} to 4.1.')
5260
layer = "4.1"
5361
self.__layer = layer
5462

layers/exporters/matrix_gen.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ def __init__(self, id=None, name=None):
1111
self.id = id
1212
if name is not None:
1313
self.name = name
14+
self.score = None
1415

1516
@property
1617
def id(self):

layers/exporters/svg_objects.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ def build(height, width, label, config, variant='text', t1text=None, t2text=None
270270
if lines > 1:
271271
y = y - (theight / 5 * (lines - 1) - (fs * 6/16))
272272
if float(fs) < (convertToPx(config.border, config.unit) + 2.1):
273-
y = y - (theight / 5)
273+
y = theight/2 + 2.1 - (theight / 5)
274274
t1 = Text("\n".join(patch_text), fs, '', x=4, y=y)
275275
upper.append(t1)
276276
if bu:

0 commit comments

Comments
 (0)