Commit 0d6d46d3 by Enrico Pozzobon

better!

parent 0aa71a11
...@@ -6,8 +6,7 @@ import shutil ...@@ -6,8 +6,7 @@ import shutil
import random import random
import subprocess import subprocess
def bench(algo_dir, template_dir="templates/linux"): def build(algo_dir, template_dir="templates/linux"):
print(algo_dir)
build_dir = None build_dir = None
while build_dir is None: while build_dir is None:
r = "%09d" % random.randint(0, 999999999) r = "%09d" % random.randint(0, 999999999)
...@@ -40,35 +39,41 @@ def bench(algo_dir, template_dir="templates/linux"): ...@@ -40,35 +39,41 @@ def bench(algo_dir, template_dir="templates/linux"):
else: else:
raise Exception("I don't know what %s is" % src) raise Exception("I don't know what %s is" % src)
wd = os.getcwd()
try:
env = os.environ env = os.environ
env['SRC_FILES'] = ' '.join(cfiles) env['SRC_FILES'] = ' '.join(cfiles)
env['HDR_FILES'] = ' '.join(hfiles) env['HDR_FILES'] = ' '.join(hfiles)
wd = os.getcwd()
try:
os.chdir(build_dir) os.chdir(build_dir)
if os.path.isfile('./configure'): if os.path.isfile('./configure'):
p = subprocess.Popen(["./configure"], env=env) p = subprocess.Popen(["./configure"])
compout, comperr = p.communicate() p.wait()
print(compout) assert p.returncode == 0
print("---")
print(comperr)
pargs = ['make'] pargs = ['make']
p = subprocess.Popen(pargs, env=env) p = subprocess.Popen(['make'])
compout, comperr = p.communicate() p.wait()
print(compout) assert p.returncode == 0
print("---")
print(comperr)
finally: finally:
os.chdir(wd) os.chdir(wd)
# shutil.rmtree(build_dir)
exit(0) # stop immediately for now
return build_dir
def find_test_vectors(d):
kat = None
while kat is None:
if d == '':
raise Exception("Test vector not found")
for f in os.listdir(d):
if f.startswith("LWC_AEAD_KAT_") and f.endswith(".txt"):
if kat is not None:
raise Exception("Multiple test vectors?")
kat = f
d = os.path.split(d)[0]
kat = os.path.join(d, kat)
return kat
def main(argv): def main(argv):
submissions_dir = "all-lwc-submission-files" submissions_dir = "all-lwc-submission-files"
...@@ -78,20 +83,51 @@ def main(argv): ...@@ -78,20 +83,51 @@ def main(argv):
print("Using template %s" % template_dir) print("Using template %s" % template_dir)
subs = os.listdir(submissions_dir) subs = os.listdir(submissions_dir)
files = set() # get all the submissions by looking for files named "encrypt.c"
files = []
for submission in subs: for submission in subs:
implementations_dir = os.path.join(submissions_dir, submission, "Implementations", "crypto_aead") implementations_dir = os.path.join(submissions_dir, submission, "Implementations", "crypto_aead")
if not os.path.isdir(implementations_dir):
continue
if "NOT ACCEPTED" in implementations_dir:
continue
print()
print("### %s ###" % submission)
c = 0
# r=root, d=directories, f = files # r=root, d=directories, f = files
for r, d, f in os.walk(implementations_dir): for r, d, f in os.walk(implementations_dir):
for file in f: for file in f:
if file == "encrypt.c": if file == "api.h":
f = os.path.join(r, file) f = os.path.join(r, file)
d = os.path.split(f)[0] d = os.path.split(f)[0]
bench(d, template_dir)
assert os.path.isdir(d) assert os.path.isdir(d)
files.add(d) print(d)
t = find_test_vectors(d)
print(t)
files.append(d)
c += 1
if c == 0:
raise Exception("No implementations found")
# For testing, we only do the first
files = files[:1]
if os.path.isdir('build'):
shutil.rmtree('build')
print()
for d in files:
print() print()
print(d)
b = build(d)
if __name__ == "__main__": if __name__ == "__main__":
......
#!/bin/bash #!/bin/bash
echo "test ./configure has been run"
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <stdbool.h> #include <stdbool.h>
#include <assert.h> #include <assert.h>
#include "crypto_aead.h" #include "crypto_aead.h"
#include "api.h"
#ifndef KEY_LENGTH #ifndef KEY_LENGTH
#define KEY_LENGTH 16 #define KEY_LENGTH 16
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment