This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What's the difference between flag NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED?

I'm new to nRF52833 and when I am working with my DK of DFU modules, I'm getting really confused with option  NRF_DFU_REQUIRE_SIGNED_APP_UPDATE and NRF_BL_APP_SIGNATURE_CHECK_REQUIRED. What exactly is the difference between these two? 

I read nrf_dfu_validation.c and found NRF_DFU_REQUIRE_SIGNED_APP_UPDATE determined whether signature is required. So is the option responsible for secure firmware update? Then how about NRF_BL_APP_SIGNATURE_CHECK_REQUIRED? Dose it have something to do with DFU(Literally I think so)? How and When? 

Parents
  • Hello,

    The NRF_DFU_REQUIRE_SIGNED_APP_UPDATE option says whether the bootloader should require signed app updates or not (Signature verification), while the NRF_BL_APP_SIGNATURE_CHECK_REQUIRED option relates to Boot validation (can optionally be performed on every startup). The default boot validation is a simple CRC validation of the app image.

    Best regards,

    Vidar

  • Hi Vidar,

    // <q> NRF_BL_APP_SIGNATURE_CHECK_REQUIRED  - Perform signature check on the app. 
    // Requires the signature to be sent in the init packet.
    #ifndef NRF_BL_APP_SIGNATURE_CHECK_REQUIRED
    #define NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 0
    #endif

    The above is a snippet from the file 'sdk_config.h' available with the secure DFU example code from SDK version 16.0.0.
    It says that the signature must be sent in the 'init' packet. I imagine the init packet is a one time transfer that is sent during the DFU process.

    Does the boot loader save this signature somewhere in the flash and look it up every time the device (re-)boots?

    RMV

Reply
  • Hi Vidar,

    // <q> NRF_BL_APP_SIGNATURE_CHECK_REQUIRED  - Perform signature check on the app. 
    // Requires the signature to be sent in the init packet.
    #ifndef NRF_BL_APP_SIGNATURE_CHECK_REQUIRED
    #define NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 0
    #endif

    The above is a snippet from the file 'sdk_config.h' available with the secure DFU example code from SDK version 16.0.0.
    It says that the signature must be sent in the 'init' packet. I imagine the init packet is a one time transfer that is sent during the DFU process.

    Does the boot loader save this signature somewhere in the flash and look it up every time the device (re-)boots?

    RMV

Children
Related