@@ -45,24 +45,38 @@ As an example, let's look at the f1-libopencm3 template. This template is used t
...
@@ -45,24 +45,38 @@ As an example, let's look at the f1-libopencm3 template. This template is used t
Here is a description of the files contained in templates/f1-libopencm3:
Here is a description of the files contained in templates/f1-libopencm3:
<dl>
- test.py
<dt>test.py</dt>
<dd>This is an executable python file which imports and makes use of the functions in test_common.py. It implements, among other things, `flash()` for flashing the microcontroller over openocd, `get_serial()` for getting the correct USB-to-UART device by its serial number and `dump_ram()` to get a snapshot of the RAM.</dd>
This is an executable python file which imports and makes use of the functions in test\_common.py. It implements, among other things, `flash()` for flashing the microcontroller over openocd, `get_serial()` for getting the correct USB-to-UART device by its serial number and `dump_ram()` to get a snapshot of the RAM.
<dt>uartp.c uartp.h</dt>
<dd>These files implement a simple protocol to use over UART which is shared across all the microcontrollers. If you don't wish to use this or you are using another interface, you can write your protocol and implement the client side in your test.py file</dd>
- uartp.c uartp.h
<dt>crypto_aead.h</dt>
<dd>This header defines the `crypto_aead_encrypt` and `crypto_aead_decrypt` functions signatures, which will be impelmented by the different ciphers</dd>
These files implement a simple protocol to use over UART which is shared across all the microcontrollers. If you don't wish to use this or you are using another interface, you can write your protocol and implement the client side in your test.py file
<dt>main.c</dt>
<dd>The implementation of the benchmark target. It takes care of receiving the plaintext, key and nonce, toggling the CRYPTO_BUSY pin and starting the encryption / decryption operation.</dd>
- crypto_aead.h
<dt>Makefile</dt>
<dd>Makefile copied from libopencm3 - every template needs a Makefile which to produce a firmware</dd>
This header defines the `crypto_aead_encrypt` and `crypto_aead_decrypt` functions signatures, which will be impelmented by the different ciphers
<dt>stm32f103c8t6_128k.ld</dt>
<dd>Linker script copied from libopencm3</dd>
- main.c
<dt>empty_ram.bin</dt>
<dd>A binary file containing random binary data to fill the RAM of the microcontroller with before starting the tests. This is then compared to a RAM dump of the microcontroller after the tests are run to check the total RAM utilization.</dd>
The implementation of the benchmark target. It takes care of receiving the plaintext, key and nonce, toggling the CRYPTO_BUSY pin and starting the encryption / decryption operation.
<dt>configure, cleanup</dt>
<dd>A pair of optional scripts executed respectively before and after the compilation, to compensate quirks of the specific platform.</dd>
- Makefile
</dl>
Makefile copied from libopencm3 - every template needs a Makefile which to produce a firmware
- stm32f103c8t6_128k.ld
Linker script copied from libopencm3
- empty_ram.bin
A binary file containing random binary data to fill the RAM of the microcontroller with before starting the tests. This is then compared to a RAM dump of the microcontroller after the tests are run to check the total RAM utilization.
- configure, cleanup
A pair of optional scripts executed respectively before and after the compilation, to compensate quirks of the specific platform.