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
* Use key share for AES file
Update CMake tooling to use 128 byte key files (a 4-way share of the 32 byte key).
Also temporarily update the enc_bootloader to deshare this key - the actual fix will need to be in aes.S.
* Improve checking for malicious flash data
Add data_max_size to prevent overwriting the bootloader with data from flash
* Incorporate latest changes to aes.S
Also shrink the space allocated for the bootloader to 32K (plus 8K scratch)
* Encorporated latest encryption code with 4-way shares
Also switch to random default key
* Apply encrypted-example 6de8084b6eda
* Add hello_encrypted example
* Use new `enable_interrupts` function
* Remove update-key.cmake
This is not necessary anymore, now picotool writes the AES key to otp json files
Fixes#613
* Add hello_encrypted to readme
* Update enc_bootloader with latest aes.S (picotool 333d571c)
CK_JITTER is removed as the enc_bootloader runs from XOSC not ROSC
* Add IV salts
* Update with latest aes.S
* Update readmes
This includes the changes from #553
* Add secret file to print out
This is useful for testing decryption with large files
* Add notes about unique AES keys, and not losing keys/salts
* Update readmes
* Fix enc_bootloader example OTP output
* Remove OTP key locking functionality from encrypted examples
* Improve TBYB sequence
Add self check (1 == 1), which is only performed on first boot
* Review fixups
Comments and readme
* Add MbedTLS self-decrypting example
Copy file name to clipboardExpand all lines: bootloaders/encrypted/README.md
+20-3Lines changed: 20 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,32 @@
1
-
Replace private.pem and privateaes.bin with your own keys - your signing key must be for the _secp256k1_ curve, in PEM format. You can create a .PEM file with:
1
+
For security you **must** replace private.pem and privateaes.bin with your own keys, and ivsalt.bin with your own per-device salt. Make sure you **don't lose your keys and salts**, else you may not be able to update the code on your device.
2
+
3
+
Your signing key must be for the _secp256k1_ curve, in PEM format. You can create a .PEM file with:
The IV salt is just a 16 byte binary file - you can create it the same way, replacing `128` with `16` and `privateaes.bin` with `ivsalt.bin` in the commands above.
8
21
22
+
You will need to program your OTP using the `otp.json` file generated by the build in your build folder
23
+
NOTE: This will enable secure boot on your device, so only correctly signed binaries can then run, and will also lock down the OTP pages the AES key and IV salt are stored in.
> For more information on security see chapter 10 of the [RP2350 datasheet](https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf), and for information on how to sign other binaries to run on a secure chip see section 5.10
29
+
13
30
Then either drag & drop the UF2 files to the device in order (enc_bootloader first, then hello_serial_enc) waiting for a reboot in-between, or run
0 commit comments