Skip to content

Commit 9c9bb0f

Browse files
committed
added save/load
1 parent ec4108a commit 9c9bb0f

2 files changed

Lines changed: 38 additions & 92 deletions

File tree

core/keystore.py

Lines changed: 27 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,36 @@ def debug():
7171
print key, '=>', value
7272
return
7373

74+
# dump keystore to text
75+
@staticmethod
76+
def dump():
77+
dump = ""
78+
with KeyStore.db.cursor() as cursor:
79+
for key, values in cursor:
80+
values = ast.literal_eval(values)
81+
for value in values:
82+
dump += "\n" + key + "/" + value
83+
return dump
84+
85+
# save keystore to file
86+
@staticmethod
87+
def save(filename):
88+
Utils.writeFile(Keystore.dump(), filename)
89+
return
90+
91+
# load keystore from file
92+
@staticmethod
93+
def load(filename):
94+
lines = Utils.readFile(filename)
95+
for line in lines:
96+
KeyStore.add(line)
97+
return
98+
7499
# -----------------------------------------------------------------------------
75100
# main test code
76101
# -----------------------------------------------------------------------------
77102
if __name__ == "__main__":
78103
print "-------------------------------------------------------------------"
79-
KeyStore.debug()
80104
# KeyStore.add("host/1.2.3.4/port/111")
81105
# KeyStore.add("host/a.b.c.d/port/80")
82106
# KeyStore.add("host/a.b.c.d/port/80/bob")
@@ -91,8 +115,10 @@ def debug():
91115
KeyStore.add("host/4.4.4.4/port/25")
92116
print "-------------------------------------------------------------------"
93117
KeyStore.debug()
118+
print KeyStore.dump()
94119

95120
print KeyStore.get("host/*/port/80")
121+
print KeyStore.get("host")
96122
# KeyStore.add("service/http/host/1.1.1.1/tcpport/80/product/apache/version/1.1.1.1.1.1.1")
97123
# KeyStore.add("service/http/host/1.1.1.1/tcpport/8080/product/apache/version/1.1.1.3.3.3.3")
98124
# KeyStore.add("service/https/host/2.2.2.2/tcpport/443/product/nginx/version/a.b.c.d")
@@ -103,94 +129,3 @@ def debug():
103129
# KeyStore.debug()
104130

105131
# print KeyStore.get("service")
106-
# print KeyStore.get("service/smtp/host/4.4.4.4/tcpport/25/product/sendmail/version")
107-
# print json.dumps(kb, sort_keys=True, indent=4)
108-
109-
# print "========= PORT 80 ========="
110-
# print " SHOULD BE 1.1.1.1 2.2.2.2"
111-
# kb=KeyStore.get("host/*/port/80")
112-
# print json.dumps(kb, sort_keys=True, indent=4)
113-
# print "========= PORT 443 ========="
114-
# print " SHOULD BE 2.2.2.2"
115-
# kb=KeyStore.get("host/*/port/443")
116-
# print json.dumps(kb, sort_keys=True, indent=4)
117-
# print "========= PORT 8080 ========="
118-
# print " SHOULD BE 1.1.1.1"
119-
# kb=KeyStore.get("host/*/port/8080")
120-
# print json.dumps(kb, sort_keys=True, indent=4)
121-
# print "========= SERVICE HTTP ========="
122-
# print " SHOULD BE 1.1.1.1 2.2.2.2"
123-
# kb=KeyStore.get("service/http/host")
124-
# print json.dumps(kb, sort_keys=True, indent=4)
125-
# print "========= SERVICE HTTPS ========="
126-
# kb=KeyStore.get("service/https/host")
127-
# print " SHOULD BE 2.2.2.2"
128-
# print json.dumps(kb, sort_keys=True, indent=4)
129-
#
130-
# print "========= PORT 80 and SERVICE HTTP ========="
131-
# print " SHOULD BE 1.1.1.1 2.2.2.2"
132-
# kb=KeyStore.get(["service/http/host", "host/*/port/80"])
133-
# print json.dumps(kb, sort_keys=True, indent=4)
134-
## for t in kb:
135-
## print
136-
## print t
137-
## kb2 = KeyStore.get('service/http/host/' + t + '/tcpport')
138-
## print json.dumps(kb2, sort_keys=True, indent=4)
139-
#
140-
# print "========= PORT 443 and SERVICE HTTPS ========="
141-
# print " SHOULD BE 2.2.2.2"
142-
# kb=KeyStore.get(["service/https/host", "host/*/port/443"])
143-
# print json.dumps(kb, sort_keys=True, indent=4)
144-
## for t in kb:
145-
## print
146-
## print t
147-
## kb2 = KeyStore.get('service/https/host/' + t + '/tcpport')
148-
## print json.dumps(kb2, sort_keys=True, indent=4)
149-
#
150-
## KeyStore.debug(kb=KeyStore.get("host/*/port"))
151-
# #KeyStore.rm("host/a.b.c.d/port/80")
152-
# #KeyStore.debug(kb=KeyStore.get("host/*/port"))
153-
## kb=KeyStore.get(["host/*/port/80", "host/*/port/111"])
154-
## KeyStore.debug(kb=KeyStore.get("host/*/port/80"))
155-
## KeyStore.debug(kb=KeyStore.get("host/*/port/111"))
156-
## kb=KeyStore.get(["host/*/port/111"])
157-
#
158-
## print "-----------------------------"
159-
## kb=KeyStore.get("host/a.b.c.d/port")
160-
## print json.dumps(kb, sort_keys=True, indent=4)
161-
## print "-----------------------------"
162-
## kb=KeyStore.get("host/a.b.c.d/port/80")
163-
## print json.dumps(kb, sort_keys=True, indent=4)
164-
## print "-----------------------------"
165-
## kb=KeyStore.get("host/a.b.c.d/port/80/apple")
166-
## print json.dumps(kb, sort_keys=True, indent=4)
167-
## print "-----------------------------"
168-
## kb=KeyStore.get("host/a.b.c.d/port/80/dog")
169-
## print json.dumps(kb, sort_keys=True, indent=4)
170-
## print "-----------------------------"
171-
## kb=KeyStore.get(["host/a.b.c.d/port/80/apple"])
172-
## print json.dumps(kb, sort_keys=True, indent=4)
173-
## print "-----------------------------"
174-
## kb=KeyStore.get(["host/*/port/80"])
175-
## print json.dumps(kb, sort_keys=True, indent=4)
176-
## print "-----------------------------"
177-
## kb=KeyStore.get(["host/*/port/111"])
178-
## print json.dumps(kb, sort_keys=True, indent=4)
179-
## print "-----------------------------"
180-
## kb=KeyStore.get(["host/*/port/80", "host/*/port/111"])
181-
## print json.dumps(kb, sort_keys=True, indent=4)
182-
## print "-----------------------------"
183-
## kb=KeyStore.get(["host/*/port/80/apple"])
184-
## print json.dumps(kb, sort_keys=True, indent=4)
185-
## print "-----------------------------"
186-
#
187-
## KeyStore.debug(kb = kb)
188-
## for t in kb:
189-
## print t
190-
## print kb[t]
191-
## KeyStore.debug()
192-
# KeyStore.save("out.save")
193-
## KeyStore.xml()
194-
# #KeyStore.debug()
195-
# #KeyStore.load("out.save")
196-
# #KeyStore.debug()

core/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ def fileExists(filename):
6969

7070
@staticmethod
7171
def writeFile(text, filename):
72+
if not Utils.isWriteable(filename):
73+
return
7274
if text:
7375
fullfilename = os.path.abspath(filename)
7476
if not os.path.exists(os.path.dirname(fullfilename)):
@@ -77,6 +79,15 @@ def writeFile(text, filename):
7779
fp.write(text)
7880
fp.close()
7981

82+
@staticmethod
83+
def readFile(filename):
84+
text = list()
85+
if not Utils.isReadable(filename):
86+
return text
87+
with open(filename) as f:
88+
text = f.read().splitlines()
89+
return text
90+
8091
@staticmethod
8192
def validateExecutable(name):
8293
path = None

0 commit comments

Comments
 (0)