David Brown | 37f8afd | 2017-09-12 10:59:39 -0600 | [diff] [blame] | 1 | # MCUboot Release Notes |
| 2 | |
| 3 | - Table of Contents |
| 4 | {:toc} |
| 5 | |
| 6 | ## Version 1.0.0 |
| 7 | |
| 8 | The 1.0.0 release of MCUBoot introduces a format change. It is |
| 9 | important to either use the `imgtool.py` also from this release, or |
| 10 | pass the `-2` to recent versions of the `newt` tool in order to |
| 11 | generate image headers with the new format. There should be no |
| 12 | incompatible format changes throughout the 1.x.y release series. |
| 13 | |
| 14 | ### About this release |
| 15 | |
| 16 | - Header format change. This change was made to move all of the |
| 17 | information about signatures out of the header and into the TLV |
| 18 | block appended to the image. This allows |
| 19 | - The signature to be replaced without changing the image. |
| 20 | - Multiple signatures to be applied. This can be used, for example, |
| 21 | to sign an image with two algorithms, to support different |
| 22 | bootloader configurations based on these image. |
| 23 | - The public key is referred to by its SHA1 hash (or a prefix of the |
| 24 | hash), instead of an index that has to be maintained with the |
| 25 | bootloader. |
| 26 | - Allow new types of signatures in the future. |
| 27 | - Support for PKCS#1 v1.5 signatures has been dropped. All RSA |
| 28 | signatures should be made with PSS. The tools have been changed to |
| 29 | reflect this. |
| 30 | - The source for Tinycrypt has been placed in the MCUboot tree. A |
| 31 | recent version of Tinycrypt introduced breaking API changes. To |
| 32 | allow MCUboot to work across various platforms, we stop using the |
| 33 | Tinycrypt bundled with the OS platform, and use our own version. A |
| 34 | future release of MCUboot will update the Tinycrypt version. |
| 35 | - Support for some new targets: |
| 36 | - Nordic nRF51 and nRF52832 dev kits |
| 37 | - Hexiwear K64 |
| 38 | - Clearer sample applications have been added under `samples`. |
| 39 | - Test plans for [zephyr](%{ link testplan-zephyr.md %}), and |
| 40 | [mynewt]({% link testplan-mynewt.md %}). |
| 41 | - The simulator is now able to test RSA signatures. |
| 42 | - There is an unimplemented `load_addr` header for future support for |
| 43 | RAM loading in the bootloader. |
| 44 | - Numerous documentation. |
| 45 | |
| 46 | ### Known issues |
| 47 | |
| 48 | None |
| 49 | |
| 50 | ## Version 0.9.0 |
| 51 | |
| 52 | This is the first release of MCUBoot, a secure bootloader for 32-bit MCUs. |
| 53 | It is designed to be operating system-agnostic and works over any transport - |
| 54 | wired or wireless. It is also hardware independent, and relies on hardware |
| 55 | porting layers from the operating system it works with. For the first release, |
| 56 | we have support for three open source operating systems: Apache Mynewt, Zephyr |
| 57 | and RIOT. |
| 58 | |
| 59 | ### About this release |
| 60 | |
| 61 | - This release supports building with and running Apache Mynewt and Zephyr |
| 62 | targets. |
| 63 | - RIOT is supported as a running target. |
| 64 | - Image integrity is provided with SHA256. |
| 65 | - Image originator authenticity is provided supporting the following |
| 66 | signature algorithms: |
| 67 | - RSA 2048 and RSA PKCS#1 v1.5 or v2.1 |
| 68 | - Elliptic curve DSA with secp224r1 and secp256r1 |
| 69 | - Two firmware upgrade algorithms are provided: |
| 70 | - An overwrite only which upgrades slot 0 with the image in slot 1. |
| 71 | - A swapping upgrade which enables image test, allowing for rollback to a |
| 72 | previous known good image. |
| 73 | - Supports both mbed-TLS and tinycrypt as backend crypto libraries. One of them |
| 74 | must be defined and the chosen signing algorithm will require a particular |
| 75 | library according to this list: |
| 76 | - RSA 2048 needs mbed TLS |
| 77 | - ECDSA secp224r1 needs mbed TLS |
| 78 | - ECDSA secp256r1 needs tinycrypt as well as the ASN.1 code from mbed TLS |
| 79 | (so still needs that present). |
| 80 | |
| 81 | ### Known issues |
| 82 | |
| 83 | - The image header and TLV formats are planned to change with release 1.0: |
| 84 | https://runtimeco.atlassian.net/browse/MCUB-66 |