Commit 0d6d46d3 by Enrico Pozzobon

better!

parent 0aa71a11
......@@ -6,8 +6,7 @@ import shutil
import random
import subprocess
def bench(algo_dir, template_dir="templates/linux"):
print(algo_dir)
def build(algo_dir, template_dir="templates/linux"):
build_dir = None
while build_dir is None:
r = "%09d" % random.randint(0, 999999999)
......@@ -40,35 +39,41 @@ def bench(algo_dir, template_dir="templates/linux"):
else:
raise Exception("I don't know what %s is" % src)
wd = os.getcwd()
try:
env = os.environ
env['SRC_FILES'] = ' '.join(cfiles)
env['HDR_FILES'] = ' '.join(hfiles)
wd = os.getcwd()
try:
os.chdir(build_dir)
if os.path.isfile('./configure'):
p = subprocess.Popen(["./configure"], env=env)
compout, comperr = p.communicate()
print(compout)
print("---")
print(comperr)
p = subprocess.Popen(["./configure"])
p.wait()
assert p.returncode == 0
pargs = ['make']
p = subprocess.Popen(pargs, env=env)
compout, comperr = p.communicate()
print(compout)
print("---")
print(comperr)
p = subprocess.Popen(['make'])
p.wait()
assert p.returncode == 0
finally:
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):
submissions_dir = "all-lwc-submission-files"
......@@ -78,20 +83,51 @@ def main(argv):
print("Using template %s" % template_dir)
subs = os.listdir(submissions_dir)
files = set()
# get all the submissions by looking for files named "encrypt.c"
files = []
for submission in subs:
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
for r, d, f in os.walk(implementations_dir):
for file in f:
if file == "encrypt.c":
if file == "api.h":
f = os.path.join(r, file)
d = os.path.split(f)[0]
bench(d, template_dir)
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(d)
b = build(d)
if __name__ == "__main__":
......
#!/bin/bash
echo "test ./configure has been run"
......@@ -4,6 +4,7 @@
#include <stdbool.h>
#include <assert.h>
#include "crypto_aead.h"
#include "api.h"
#ifndef KEY_LENGTH
#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