You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
wolfBoot is a portable, OS-agnostic, secure bootloader solution for 32-bit microcontrollers,
4
+
wolfBoot is a portable, OS-agnostic, secure bootloader solution for 32-bit microcontrollers,
5
5
relying on wolfCrypt for firmware authentication, providing firmware update mechanisms.
6
6
7
7
Due to the minimalist design of the bootloader and the tiny HAL API, wolfBoot is completely independent
@@ -21,8 +21,8 @@ projects to provide a secure firmware update mechanism.
21
21
22
22
This repository contains the following components:
23
23
- the wolfBoot bootloader
24
-
- key generator and image signing tools (requires python 3.x)
25
-
- Baremetal test applications
24
+
- key generator and image signing tools (requires python 3.x and wolfcrypt-py https://github.com/wolfSSL/wolfcrypt-py)
25
+
- Baremetal test applications
26
26
27
27
### wolfBoot bootloader
28
28
@@ -32,7 +32,7 @@ with no dynamic memory allocation mechanism or linkage to any standard C library
32
32
The bootloader consists of the following components:
33
33
- wolfCrypt, which is used to verify the signature of the images
34
34
- A minimalist Hardware Abstraction Layer, with an implementation provided for the supported target, which is in charge for IAP flash access and clock setting on the specific MCU
35
-
- The core bootloader
35
+
- The core bootloader
36
36
- A small application library used by the application to interact with the bootloader [src/libwolfboot.c](src/libwolfboot.c)
37
37
38
38
Only ARM Cortex-M boot mechanism is supported at this stage. Support for more architectures and
@@ -83,10 +83,48 @@ For detailed information about the configuration options for the target system,
83
83
84
84
For more detailed information about firmware update implementation, see [Firmware Update](docs/firmware_update.md)
85
85
86
+
## Troubleshooting
87
+
88
+
1. Python errors when signing a key:
89
+
90
+
```
91
+
Traceback (most recent call last):
92
+
File "tools/keytools/keygen.py", line 135, in <module>
93
+
rsa = ciphers.RsaPrivate.make_key(2048)
94
+
AttributeError: type object 'RsaPrivate' has no attribute 'make_key'
95
+
```
96
+
97
+
```
98
+
Traceback (most recent call last):
99
+
File "tools/keytools/sign.py", line 189, in <module>
100
+
r, s = ecc.sign_raw(digest)
101
+
AttributeError: 'EccPrivate' object has no attribute 'sign_raw'
102
+
```
103
+
104
+
You need to install the latest wolfcrypt-pi here: https://github.com/wolfSSL/wolfcrypt-py
105
+
106
+
Use `pip3 install wolfcrypt`.
107
+
Make sure the wolfSSL library has been built with:
108
+
```sh
109
+
110
+
```
111
+
112
+
To install based on a local wolfSSL installation use:
0 commit comments