Hi,
I tried the SDK_DIR\examples\dfu\secure_bootloader\pca10040_s132_ble example from nRF5_SDK_16.0.0 with my custom board with nrf52832 mcu.
I followed this guide:
The DFU process worked well with nRF Connect app.
I tried that I modified one byte in the private key and then regenerate application zip with this wrong key to verify the signature checking. The bootloader is the same of course with the public key belongs to the original private key.
But the bootloader upload this zip without any error and the application is started and run well. So the signature check not works. This is the case if I modify 2 bytes randomly in the private key base64 encoded flie.
But if I generate a totally different key with nrfutil, the DFU process interrupted at the beginning (ble disconnected without any transmission). The same thing happens when I set lower version number than the current. So the version check and the signature check seems to work in these cases.
But I don't understand how can the bootloader check the signature before the data transferred, and why not reject the update if the signature is different (2 byte modified randomly in the private key).
Could anyone explain these?
Thanks,
nevi