- Improved protocol lists.

This commit is contained in:
ccremers 2006-02-23 10:49:38 +00:00
parent ec4cb6eb68
commit 97c634e772

View File

@ -5,10 +5,26 @@
# #
import os; import os;
def list_ppfix(list, prefix, postfix): def basedir():
return [ prefix + i + postfix for i in list] return os.path.expanduser("~/svn/ecss/protocols/spdl/")
def from_good_literature(): def spdldir():
return basedir() + "SPORE/"
def index(directory):
# like os.listdir, but traverses directory trees
stack = [directory]
files = []
while stack:
directory = stack.pop()
for file in os.listdir(directory):
fullname = os.path.join(directory, file)
files.append(fullname)
if os.path.isdir(fullname) and not os.path.islink(fullname):
stack.append(fullname)
return files
def known_good_ones():
list = [ \ list = [ \
"ccitt509-1c.spdl", "ccitt509-1c.spdl",
"ccitt509-1.spdl", "ccitt509-1.spdl",
@ -37,47 +53,69 @@ def from_good_literature():
"yahalom-lowe.spdl", "yahalom-lowe.spdl",
"yahalom-paulson.spdl" ] "yahalom-paulson.spdl" ]
return list_ppfix(list, "/home/cas/svn/ecss/protocols/spdl/SPORE/","") return [ "/" + i for i in list ]
def from_bad_literature(): def spdlextension (fn):
list = [ \
"andrew-ban-concrete.spdl",
"andrew-ban.spdl",
"andrew-lowe-ban.spdl",
"andrew.spdl",
"needham-schroeder.spdl",
"tmn.spdl",
"wmf-lowe.spdl",
"wmf.spdl",
"woo-lam-pi-1.spdl",
"woo-lam-pi-2.spdl",
"woo-lam-pi-3.spdl",
"yahalom-ban.spdl",
"yahalom.spdl" ]
return list_ppfix(list, "/home/cas/svn/ecss/protocols/spdl/SPORE/","")
def from_literature():
def spdlfiletype (fn):
return fn.endswith(".spdl") return fn.endswith(".spdl")
spdldir = "/home/cas/svn/ecss/protocols/spdl/SPORE/" def make_lists():
sl = os.listdir (spdldir) """
sld = [ spdldir + i for i in filter (spdlfiletype, sl)] Returns (from_good_lit, from_bad_lit, others)
##print sld
return sld Note that from_good_lit and from_bad_lit together form the spdl directory
"""
good = []
bad = []
others = []
# Precompute good names
knowngood = known_good_ones()
l = index(basedir())
for file in l:
if spdlextension(file):
# its a protocol!
if file.startswith(spdldir()):
# SPORE type
goodflag = False
for goody in knowngood:
if file.endswith(goody):
goodflag = True
if goodflag:
good += [file]
else:
bad += [file]
else:
# not SPORE
others += [file]
return (good, bad, others)
def from_others(): def from_others():
list = [ \ (good, bad, others) = make_lists()
] return others
return list_ppfix(list, "../spdl/","") def from_good_literature():
(good, bad, others) = make_lists()
return good
def from_bad_literature():
(good, bad, others) = make_lists()
return bad
def from_literature():
(good, bad, others) = make_lists()
return good + bad
def from_all(): def from_all():
return from_literature() + from_others() (good, bad, others) = make_lists()
return good + bad + others
def select(type): def select(type):
(good, bad, others) = make_lists()
n = int(type) n = int(type)
if n == 0: if n == 0:
# 0 means all protocols # 0 means all protocols
@ -94,12 +132,19 @@ def select(type):
def main(): def main():
for l in [from_literature(), from_others()]: (good, bad, others) = make_lists()
for p in l:
print p def show (tag, list):
print tag + " (%i)" % len(list)
print print
for l in list:
print l
show ("Good", good)
show ("Bad", bad)
show ("Others", others)
if __name__ == '__main__': if __name__ == '__main__':
main() main()