I spent some time trying to work out why generating a private/public keypair in my application with the ECC module was failing due to an 'internal error' and had to eventually reference my code against the experimental example source code in the nRF5x SDK only to eventually work out that the cause of the problem was that the softdevice needs to be initialised before the function can be used - what is the reason behind this? My understanding of the softdevice is that it is for controlling the radio and the ECC can be used for BLE functionality but that is optional - therefore I was expecting that the module would have the ability to be enabled and used without the softdevice being initialised. Also why it not listed in the documentation that the softdevice has to be initialised before using it?
Also there is a stray #include "app_timer.h" in the ecc.c file, I say stray as the module doesn't use the application timer module at all and can be commented out without issue.