1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-28 22:49:47 +01:00
RIOT/tests/mcuboot
Martine Lenders e38aec72b2
pycrypto: use pycryptodome instead
`pycrypto` is unmaintained [[1]] since v2.6.1 (released October 2013).
This version, however, has some severe vulnerabilities [[2]] [[3]].

The recommendation is to use the API-compatible `pycryptodome` library.

[1]: https://github.com/pycrypto/pycrypto/issues/173
[2]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-7459
[3]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6594
2021-11-02 13:28:42 +01:00
..
main.c tests: add mcuboot test application 2017-07-17 14:48:28 +02:00
Makefile tests/mcuboot: handle building 'mcuboot' in docker 2019-06-03 18:09:32 +02:00
README.md pycrypto: use pycryptodome instead 2021-11-02 13:28:42 +01:00

MCUBoot test application

This test is intended to compile a hello-world program taking into account the existence of the MCUBoot bootloader at the first 32K in the ROM.

For this first support, a pre-compiled mynewt MCUBoot binary is downloaded at compile time.

The goal is to produce an ELF file which is linked to be flashed at a BOOTLOADER_OFFSET offset rather than the beginning of ROM. MCUBoot also expects an image padded with some specific headers containing the version information, and TLVs with hash and signing information. This is done through the imgtool.py application, which is executed automatically by the build system.

Before running the test, be sure that you meet the following Python3 dependencies:

  • pycryptodome
  • ecdsa
  • pyasn1

If you don't have one of those, you can install them with the commands:

pip3 install --user pycryptodome ecdsa pyasn1

This test can be called using make mcuboot to produce such ELF file, which can also be flashed using make mcuboot-flash.This command also flashes the pre-compiled bootloader.

It's also possible to build and flash MCUBoot by following the instructions on the MCUBoot repository either using mynewt or zephyr operating systems.