@@ -10,6 +10,18 @@ compilation and test run of:
10
10
- miTLS, the in-progress, verified implementation of the TLS protocol
11
11
- HACL\* , the High Assurance Cryptographic Library
12
12
13
+ To run this Docker image, first install Docker on your machine
14
+ following platform-specific instructions at https://docs.docker.com/engine/installation/
15
+
16
+ Then, just run:
17
+ ```
18
+ docker run -t -i projecteverest/everest-icfp2017aec
19
+ ```
20
+
21
+ to open a Docker container based on this Docker image with a
22
+ command-line prompt. From now one, the commands proposed in this file
23
+ are assumed run from within such a Docker container (except for the
24
+ * Regenerating this artifact* section, of course.)
13
25
14
26
## Finding the proofs
15
27
@@ -93,37 +105,41 @@ include:
93
105
### With GCC
94
106
95
107
One can extract HACL\* to a releasable set of C files, then run a
96
- performance benchmark using GCC, via:
108
+ performance benchmark using GCC, then show the performance results,
109
+ via:
97
110
98
111
```
99
112
make -C hacl-star/test snapshot-gcc
100
- LIBSODIUM_HOME=/usr/local LD_LIBRARY_PATH=/usr/local/lib make -C hacl-star/test perf-gcc
113
+ make -C hacl-star/test perf-gcc
114
+ cat hacl-star/test/benchmark-gcc.txt
101
115
```
102
116
117
+ In the above sequence, ` gcc ` can be replaced with ` gcc-unrolled ` to have
118
+ KreMLin unroll some loops when extracting the C code.
119
+
103
120
### With CompCert
104
121
105
122
Due to licensing reasons, we do not believe we can safely redistribute CompCert
106
- in this artefact evaluation image. We believe, however , one can easily install
123
+ in this artefact evaluation image. However , one can easily install
107
124
CompCert via:
108
125
109
126
```
110
- opam repo add coq-released http://coq.inria.fr/opam/released
111
- opam install -j 8 coq.8.6
112
-
113
127
wget http://compcert.inria.fr/release/compcert-3.0.1.tgz
114
128
tar xzvf compcert-3.0.1.tgz
115
129
cd CompCert-3.0.1
116
130
./configure x86_64-linux
117
131
make -j 8
118
132
sudo make install
133
+ cd ..
119
134
```
120
135
121
136
One this is done, the following series of commands will run performance
122
137
benchmarks for CompCert:
123
138
124
139
```
125
140
make -C hacl-star/test snapshot-ccomp
126
- LIBSODIUM_HOME=/usr/local LD_LIBRARY_PATH=/usr/local/lib make -C hacl-star/test perf-ccomp
141
+ make -C hacl-star/test perf-ccomp
142
+ cat hacl-star/test/benchmark-ccomp.txt
127
143
```
128
144
129
145
### Via the OpenSSL engine
@@ -146,18 +162,24 @@ These tests can be run via `make -C hacl-star/test/openssl-engine test`.
146
162
147
163
One can replay the proofs by running the high-level command: `./everest verify
148
164
-j 8` where ` 8` is a suggested number of cores to use. One may want to allocate
149
- more cores to their Docker instance.
165
+ more cores and more memory to their Docker instance.
150
166
151
167
152
168
# Regenerating this artefact
153
169
154
- One can easily reconstruct this artefact from scratch, via:
170
+ One can easily reconstruct this artefact from scratch, by running the
171
+ following sequence of commands from a machine with Docker installed:
155
172
156
173
```
157
- git clone git@github.com:project-everest/everest
174
+ git clone https://github.com/project-everest/everest.git everest
175
+ cd everest
158
176
git checkout icfp2017aec
159
- cd everest/.docker/everest
160
- docker build
177
+ docker build --tag projecteverest/everest-icfp2017aec .docker/everest-chomolungma
161
178
```
162
179
163
- This takes a couple hours on a powerful machine.
180
+ This takes a couple hours on a powerful machine. To speed up this process, the
181
+ last command can be replaced with:
182
+ ```
183
+ docker build --build-arg PARALLEL_OPT='-j 4' --tag projecteverest/everest-icfp2017aec .docker/everest-chomolungma
184
+ ```
185
+ to build and verify everything using ` 4 ` cores.
0 commit comments