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

Can not open file error on "Importing Keil projects"

I have a question about "Importing Keil projects".

I want to run "ble_app_multirole_lesc (SDK V14.2.0)" using "SEGGER Embedded Studio".
However, there is no project file compatible with "SEGGER Embedded Studio" in this sample project.

Therefore, I imported the project according to the document of "Importing Keil projects".
As a result, the project was created.
However, the following error occurs.

Cannot open file: C:/***/nRF5_SDK_14.2.0_17b948a/examples/ble_central_and_peripheral/experimental/ble_app_multirole_lesc/pca10040/s132/arm5_no_packs/Output/ble_app_multirole_lesc_pca10040_s132 nrf52832_xxaa/Obj/ble_app_multirole_lesc_pca10040_s132.ind

Please tell me the cause.

Parents Reply Children
  • Yes, you can fix this in SDK 14.2.0. Excerpt from the whitepaper:

    nRF5 SDK versions prior to v15.0.0

    Elliptic curve public keys were not validated for examples with BluetoothRegistered LE Secure Connections in nRF5 SDK versions prior to v15.0.0.

    Experimental APIs for cryptographic routines are provided in nRF5 SDK versions prior to v15.0.0. There are also examples showing Bluetooth LE Secure Connections using these experimental cryptographic APIs.

    Implementations in nRF5 SDK versions prior to v15.0.0 use µECC to perform ECDH/DHKey generation in Bluetooth LE Secure Connections paring procedures. The implementations do not validate the remote Elliptic Curve Public Key as part of the pairing procedure, making it susceptible to the attacks described in Vulnerability Note VU#304725.

    The following are possible solutions to mitigate security issues for using µECC in SDK versions prior to nRF5 SDK v15.0.0:
    1. Migrate to nRF5 SDK v15.0.0 and use the nrf_crypto APIs and the ble_lesc module according to the SDK examples containing Bluetooth LE Secure Connections pairing procedures.
    2. Add a specific call to the API to validate the elliptic curve public key received from the remote during the pairing procedure before using it to calculate the ECDH/DHKey. This API is called uECC_valid_public_key. Abort the pairing procedure if an invalid public key is detected by sending a random generated DHKey.

    I also think it may be worth having a look at the BLE examples which has "non-experimental" support for LESC in SDK 15.3.0, ble_app_hrs for instance.  

Related