Hello guys,
I wanted try run on NRF9160 hardware CC310 cryptographic module.
I installed all software and tried run secure_services demo. Thats works, cool!
In next step I tried run RSA cryptographic fuctions. I found example in downloaded folders and added in secure_services.c my new code which should works with RSA, but I can not compile now.
I added next test code to secure_services demo:
int keysize; int ret; mbedtls_mpi N, P, Q, D, E, DP, DQ, QP; mbedtls_rsa_context rsa; mbedtls_ctr_drbg_context ctr_drbg; keysize = 2048; //for( ; keysize <= 4096; keysize *= 2 ) //{ while(1) { //mbedtls_snprintf( title, sizeof( title ), "RSA-%d", keysize ); mbedtls_ctr_drbg_init( &ctr_drbg ); mbedtls_rsa_init( &rsa, MBEDTLS_RSA_PKCS_V15, 0 ); mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); mbedtls_rsa_gen_key( &rsa, myrand, NULL, keysize, 65537 ); if( ( ret = mbedtls_rsa_export ( &rsa, &N, &P, &Q, &D, &E ) ) != 0 || ( ret = mbedtls_rsa_export_crt( &rsa, &DP, &DQ, &QP ) ) != 0 ) { for(int i = 0; i < 5; i++) { i = 5; } } if((ret = mbedtls_rsa_public( &rsa, buf, buf )) != 0) { for(int i = 0; i < 5; i++) { i = 5; } }; if((ret = mbedtls_rsa_private( &rsa, myrand, NULL, buf, buf )) != 0) { for(int i = 0; i < 5; i++) { i = 5; } }; mbedtls_rsa_free( &rsa ); }
And received flowing problems:
spm\zephyr\spm_zephyr_prebuilt.elf section `_TEXT_SECTION_NAME_2' will not fit in region `FLASH'
SPM and app are sharing an SPU region. Cannot partition flash correctly into secure and non-secure. Adjust partitions sizes so they are placed in separate regions.
region `FLASH' overflowed by 81920 bytes
ld returned 1 exit status
As I understood this problem with not enough memory for code which are placed in secure partition?
How can I fixed it?
Thanks.