Skip to content

Commit 59e59f5

Browse files
committed
Restructure to VulnerabilityDescriptor
1 parent c20933f commit 59e59f5

File tree

2 files changed

+111
-68
lines changed

2 files changed

+111
-68
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package fuzion24.device.vulnerability.test;
2+
3+
import android.content.Context;
4+
5+
import org.json.JSONArray;
6+
import org.json.JSONObject;
7+
8+
import java.util.ArrayList;
9+
import java.util.HashMap;
10+
import java.util.Iterator;
11+
import java.util.List;
12+
import java.util.Map;
13+
14+
import fuzion24.device.vulnerability.vulnerabilities.VulnerabilityTest;
15+
import fuzion24.device.vulnerability.vulnerabilities.helper.BinaryAssets;
16+
17+
/**
18+
* Created by fuzion24 on 11/23/15.
19+
*/
20+
public class VulnerabilityDescriptor {
21+
String CVEorID;
22+
String description;
23+
String impact;
24+
Double CVSSV2Score;
25+
String CVEDate;
26+
List<String> externalLinks;
27+
List<String> altNames;
28+
List<String> patches;
29+
30+
private VulnerabilityDescriptor(String cve,
31+
String desc,
32+
String impact,
33+
Double cvssv2,
34+
String cveDate,
35+
List<String> externLinks,
36+
List<String> altNames,
37+
List<String> patches) {
38+
this.CVEorID = cve;
39+
this.description = desc;
40+
this.impact = impact;
41+
this.CVSSV2Score = cvssv2;
42+
this.CVEDate = cveDate;
43+
this.externalLinks = externLinks;
44+
this.altNames = altNames;
45+
this.patches = patches;
46+
}
47+
48+
public static VulnerabilityDescriptor getDescriptorObject(String cve,
49+
String desc,
50+
String impact,
51+
Double cvssv2,
52+
String cveDate,
53+
String[] externLinks,
54+
String[] altNames,
55+
String[] patches) {
56+
VulnerabilityDescriptor vo = new VulnerabilityDescriptor(cve, desc, impact, cvssv2, cveDate, externLinks, altNames, patches);
57+
return vo;
58+
}
59+
60+
private static List<String> extractStringArray(JSONObject obj, String arrayName) throws Exception {
61+
JSONArray jsonStringArray = obj.getJSONArray(arrayName);
62+
List<String> items = new ArrayList<String>();
63+
for (int i = 0; i < jsonStringArray.length(); i++) {
64+
items.add(jsonStringArray.getString(i));
65+
}
66+
return items;
67+
}
68+
69+
70+
public static Map<String, VulnerabilityDescriptor> getParsedVulnMap(Context ctx) throws Exception {
71+
String jsonVulns = BinaryAssets.extractAsset(ctx, "vuln_map.json");
72+
JSONObject vulnMap = new JSONObject(jsonVulns);
73+
74+
Map<String, VulnerabilityDescriptor> descriptorMap = new HashMap<String, VulnerabilityDescriptor>();
75+
Iterator<String> keys = vulnMap.keys();
76+
77+
78+
79+
80+
while (keys.hasNext()) {
81+
JSONObject jobj = null;
82+
String description = null;
83+
String impact = null;
84+
Double cvssV2Score = null;
85+
String cveDate = null;
86+
List<String> externalLinks = null;
87+
List<String> altNames = null;
88+
List<String> patches = null;
89+
90+
String key = keys.next();
91+
jobj = vulnMap.getJSONObject(key);
92+
String cve = jobj.getString("cve");
93+
altNames = extractStringArray(jobj, "altnames");
94+
description = jobj.getString("description");
95+
impact = jobj.getString("impact");
96+
externalLinks = extractStringArray(jobj, "external_links");
97+
cvssV2Score = jobj.getDouble("cvssv2");
98+
patches = extractStringArray(jobj, "patch");
99+
cveDate = jobj.getString("cvedate");
100+
101+
new VulnerabilityDescriptor(cve, description, impact, cvssV2Score, cveDate, externalLinks, altNames, patches);
102+
103+
descriptorMap.put(cve, )
104+
}
105+
106+
return descriptorMap;
107+
}
108+
}

app/src/main/java/fuzion24/device/vulnerability/test/adapter/RecyclerAdapter.java

Lines changed: 3 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,12 @@ public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
2424

2525
private List<VulnerabilityTestResult> mResults;
2626
private Context mContext;
27-
private JSONObject mVulnMap;
2827

2928
public RecyclerAdapter(Context context, List<VulnerabilityTestResult> itemList) {
3029
this.mContext = context;
3130
this.mResults = itemList;
3231

33-
try {
34-
String jsonVulns = BinaryAssets.extractAsset(context, "vuln_map.json");
35-
mVulnMap = new JSONObject(jsonVulns);
36-
} catch (Exception e) {
37-
e.printStackTrace();
38-
}
32+
3933
}
4034

4135
@Override
@@ -46,54 +40,10 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType
4640
return RecyclerItemViewHolder.newInstance(view);
4741
}
4842

49-
private List<String> extractStringArray(JSONObject obj, String arrayName) throws Exception {
50-
JSONArray jsonStringArray = obj.getJSONArray(arrayName);
51-
List<String> items = new ArrayList<String>();
52-
for (int i = 0; i < jsonStringArray.length(); i++) {
53-
items.add(jsonStringArray.getString(i));
54-
}
55-
return items;
56-
}
43+
5744

5845
private class VulnObject {
59-
String CVEorID;
60-
String description;
61-
String impact;
62-
String CVSSV2Score;
63-
String CVEDate;
64-
String[] externalLinks;
65-
String[] altNames;
66-
String[] patches;
67-
68-
private VulnObject(String cve,
69-
String desc,
70-
String impact,
71-
String cvssv2,
72-
String cveDate,
73-
String[] externLinks,
74-
String[] altNames,
75-
String[] patches){
76-
this.CVEorID = cve;
77-
this.description = desc;
78-
this.impact = impact;
79-
this.CVSSV2Score = cvssv2;
80-
this.CVEDate = cveDate;
81-
this.externalLinks = externLinks;
82-
this.altNames = altNames;
83-
this.patches = patches;
84-
}
8546

86-
public static VulnObject getDescriptorObject(String cve,
87-
String desc,
88-
String impact,
89-
String cvssv2,
90-
String cveDate,
91-
String[] externLinks,
92-
String[] altNames,
93-
String[] patches){
94-
VulnObject vo = new VulnObject(cve, desc, impact,cvssv2,cveDate,externLinks,altNames,patches);
95-
return vo;
96-
}
9747
}
9848

9949
@Override
@@ -103,25 +53,10 @@ public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
10353

10454
holder.setItemTestName(item.getCVEorID());
10555

106-
JSONObject jobj = null;
107-
String description = null;
108-
String impact = null;
109-
Double cvssV2Score = null;
110-
String cveDate = null;
111-
List<String> externalLinks = null;
112-
List<String> altNames = null;
113-
List<String> patches = null;
11456

11557
try {
11658
jobj = mVulnMap.getJSONObject(item.getCVEorID());
117-
String cve = jobj.getString("cve");
118-
altNames = extractStringArray(jobj, "altnames");
119-
description = jobj.getString("description");
120-
impact = jobj.getString("impact");
121-
externalLinks = extractStringArray(jobj, "external_links");
122-
cvssV2Score = jobj.getDouble("cvssv2");
123-
patches = extractStringArray(jobj, "patch");
124-
cveDate = jobj.getString("cvedate");
59+
12560

12661
} catch (Exception e) {
12762
//We dont have an entry or are missing necessary components of it

0 commit comments

Comments
 (0)