Skip to content

Commit 07cc98a

Browse files
author
Bryan Worrell
committed
Updated YaraTestMechanism to use TypedFields.
1 parent eaa6c68 commit 07cc98a

1 file changed

Lines changed: 6 additions & 62 deletions

File tree

Lines changed: 6 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Copyright (c) 2015, The MITRE Corporation. All rights reserved.
22
# See LICENSE.txt for complete terms.
33

4+
from mixbox import fields
5+
46
import stix
57
import stix.utils
68
import stix.indicator.test_mechanism
@@ -15,67 +17,9 @@ class YaraTestMechanism(_BaseTestMechanism):
1517
_binding = yara_tm_binding
1618
_binding_class = _binding.YaraTestMechanismType
1719
_XSI_TYPE = "yaraTM:YaraTestMechanismType"
18-
19-
def __init__(self, id_=None, idref=None):
20-
super(YaraTestMechanism, self).__init__(id_=id_, idref=idref)
21-
self.version = None
22-
self.rule = None
23-
24-
@property
25-
def rule(self):
26-
return self._rule
27-
28-
@rule.setter
29-
def rule(self, value):
30-
if not value:
31-
self._rule = None
32-
if isinstance(value, EncodedCDATA):
33-
self._rule = value
34-
else:
35-
self._rule = EncodedCDATA(value=value)
36-
37-
@classmethod
38-
def from_obj(cls, cls_obj):
39-
if not cls_obj:
40-
return None
41-
42-
obj = super(YaraTestMechanism, cls).from_obj(cls_obj)
43-
44-
obj.version = cls_obj.Version
45-
obj.rule = EncodedCDATA.from_obj(cls_obj.Rule)
46-
47-
return obj
48-
49-
def to_obj(self, ns_info=None):
50-
obj = super(YaraTestMechanism, self).to_obj(ns_info=ns_info)
5120

52-
if self.version:
53-
obj.Version = self.version
54-
if self.rule:
55-
obj.Rule = self.rule.to_obj(ns_info=ns_info)
56-
57-
return obj
58-
59-
@classmethod
60-
def from_dict(cls, cls_dict):
61-
if not cls_dict:
62-
return None
63-
64-
obj = super(YaraTestMechanism, cls).from_dict(cls_dict)
65-
66-
obj.version = cls_dict.get('version')
67-
obj.rule = EncodedCDATA.from_dict(cls_dict.get('rule'))
68-
69-
return obj
70-
71-
def to_dict(self):
72-
d = super(YaraTestMechanism, self).to_dict()
73-
74-
if self.version:
75-
d['version'] = self.version
76-
77-
if self.rule:
78-
d['rule'] = self.rule.to_dict()
79-
80-
return d
21+
version = fields.TypedField("Version")
22+
rule = fields.TypedField("Rule", EncodedCDATA)
8123

24+
def __init__(self, id_=None, idref=None):
25+
super(YaraTestMechanism, self).__init__(id_=id_, idref=idref)

0 commit comments

Comments
 (0)