Skip to content

Latest commit

 

History

History
38 lines (33 loc) · 1.41 KB

README.md

File metadata and controls

38 lines (33 loc) · 1.41 KB

Advanced Reliable Measurement Output Reproduction (ARMOR)

This small library embeds programmer selected files and command outputs into the measurement result csv file, encoded as base64. A user can simply execute the csv file and it extracts itself putting all source files and system config into a subfolder. To reproduce a measurement the extracted files can be compiled and executed.

ARMOR consists of the armor.h file and the Makefile. During making, the source files are archived and the archive linked to the binary.

During execution, the function additional_archive_content() adds additional files, like system configuration files and output from commands to the archive. The archive is then base64 encoded and written to the measurement output csv file. The csv read function used to open the output file must supported # for comments inside csv files. The first line contains a shebang to extract the base64 encoded archive to the directory supplied as the first argument or "source".

print_measurement_csv_header() must be called at the beginning of the program. To test the supplied 1_experiment pipe the stderr output to a csv file

./main 2> measurement.csv

Then, to get the source code and system configuration make the output file executable and execute it.

chmod +x measurement.csv
./measurement.csv

This creates an output directory source containing all files.

Requirements: libarchive-dev