Commit dae7a416 by Enrico Pozzobon

Merge branch 'master' of lab.las3.de:lwc/compare

parents 64dd645a 5c588c93
...@@ -2,12 +2,13 @@ ...@@ -2,12 +2,13 @@
import os import os
import sys import sys
import re import statistics
import matplotlib.pyplot as plt
def parse_capture(filename): def parse_capture(filename):
f = open('measurements/' + filename) f = open('measurements/' + filename)
#counter = 0 # Skip the first two false positves (risky)
counter = 1 counter = -1
lets_use_a_flag = False lets_use_a_flag = False
six_ts = '' six_ts = ''
two_ts = '' two_ts = ''
...@@ -17,17 +18,18 @@ def parse_capture(filename): ...@@ -17,17 +18,18 @@ def parse_capture(filename):
l_array = l.split(" ") l_array = l.split(" ")
bit_field = l_array[-1][:-1] bit_field = l_array[-1][:-1]
# l_array? That's the best you came up with? # l_array? That's the best you came up with?
if bit_field == '6': if bit_field == '2':
six_ts = l_array[0][:-1] two_ts = l_array[0][:-1]
lets_use_a_flag = True lets_use_a_flag = True
continue continue
if lets_use_a_flag: if lets_use_a_flag:
if bit_field == '2': if bit_field == '6':
#if counter == 0: if counter <= 0:
#counter = counter + 1 counter = counter + 1
#continue lets_use_a_flag = False
two_ts = l_array[0][:-1] continue
delta = float(two_ts) - float(six_ts) six_ts = l_array[0][:-1]
delta = float(six_ts) - float(two_ts)
if counter % 2 == 1: if counter % 2 == 1:
enc_deltas[(counter+1)/2] = delta enc_deltas[(counter+1)/2] = delta
else: else:
...@@ -36,43 +38,71 @@ def parse_capture(filename): ...@@ -36,43 +38,71 @@ def parse_capture(filename):
else: else:
lets_use_a_flag = False lets_use_a_flag = False
f.close() f.close()
for key in enc_deltas: return (enc_deltas, dec_deltas)
print("Vector %d was encrypted in %f seconds" % (key, enc_deltas[key]))
for key in dec_deltas:
print("Vector %d was decrypted in %f seconds" % (key, dec_deltas[key]))
print(len(enc_deltas))
print(len(dec_deltas))
def read_log(d): def read_log(d):
# Soo readlines, much efficient # Soo readlines, much efficient
f = open(d + '/test_stdout.log', 'r') f = open(d + '/test_stdout.log', 'r')
content = f.readlines() content = f.readlines()
are_we_happy = content[-1].split(' ')[-1] are_we_happy = content[-1].split(' ')[-1]
if are_we_happy != 'SUCCESSFUL\n': if are_we_happy != 'SUCCESSFUL\n':
print ("Test unsuccesful or log file structure corrupted") print ("Test unsuccesful or log file structure corrupted")
return return
# I like to split it, split it # I like to split it, split it
algorithm = content[0].split(' ')[-1].split('/')[-2] path = content[0].split(' ')[-1].split('/')
if path[-2] == 'ref':
algorithm = path[-3]
else:
algorithm = path[-2]
# Path to logic data is in the second to last line # Path to logic data is in the second to last line
logic_file = content[-2].split('/')[-1][:-2] logic_file = content[-2].split('/')[-1][:-2]
f. close() f. close()
print("Let's evaluate the test results of algorithm %s by using %s" % (algorithm, logic_file)) print("Evaluating results for %s" % (algorithm))
parse_capture(logic_file) dicts = parse_capture(logic_file)
return (algorithm, dicts)
def main(): def main():
print('THE LWC BENCHMARK SPLITTER') print('THE LWC BENCHMARK SPLITTER')
print('powered by Deutsche Bahn') print('powered by Deutsche Bahn')
build_dir = 'build/' build_dir = 'build/new/'
box_plot_data = []
box_plot_labels = []
for d in os.listdir(build_dir): for d in os.listdir(build_dir):
read_log(os.path.join(build_dir + d)) #dicts[0] --> algo
#dicts[1][0] --> enc
#dicts[1][1] --> dec
dicts = read_log(os.path.join(build_dir + d))
enc_values = dicts[1][0].values()
dec_values = dicts[1][1].values()
box_plot_data.append(list(enc_values))
box_plot_labels.append(dicts[0])
print("Average enc time[s] = %f" % (statistics.mean(enc_values)))
print("Median enc time[s] = %f" % (statistics.median(enc_values)))
print("Average dec time[s] = %f" % (statistics.mean(dec_values)))
print("Median dec time[s] = %f" % (statistics.median(dec_values)))
print()
enc_len = len(dicts[1][0])
dec_len = len(dicts[1][1])
if dec_len != enc_len:
raise Exception("#Encryptions (%d) does not match #decryptions (%d)" % (enc_len, dec_len))
if dec_len != 1089 or enc_len != 1089:
raise Exception("#Number of encrypted test vectors (%d)/ decrypted test vectors (%d) does not match guidelines (1089)" % (enc_len, dec_len))
plt.boxplot(box_plot_data, labels=box_plot_labels)
plt.xticks(rotation=90)
plt.show()
if __name__ == "__main__": if __name__ == "__main__":
main() main()
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