Hi,
I'm trying to use the mbedtls library on my application. When I add the needed header files, my application can not build due to "undefined reference" errors. I have developed my application on my Linux host system, but I do not know how to compile the libraries for the XDK. There is a printscreen of my application on attachment. Can someone guide me into compiling with this library? Thanks in advance.
/* system header files */
#include <stdio.h>
#include "BCDS_Basics.h"
/* additional interface header files */
#include "XdkSystemStartup.h"
#include "BCDS_Assert.h"
#include "AppController.h"
#include "BCDS_CmdProcessor.h"
#include "FreeRTOS.h"
#include "task.h"
#include "sha256.h"
#include "aes.h"
#include "entropy.h"
#include "ctr_drbg.h"
#include "pk.h"
int create_aes_key(unsigned char* key)
{
int ret;
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_entropy_context entropy;
char *pers = "aes generate key";
mbedtls_entropy_init(&entropy);
mbedtls_ctr_drbg_init(&ctr_drbg);
if((ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (unsigned char *) pers, strlen(pers))) != 0)
{
printf( " failed\n ! mbedtls_ctr_drbg_init returned -0x%04x\n", -ret );
return 0;
}
if((ret = mbedtls_ctr_drbg_random( &ctr_drbg, key, 32)) != 0)
{
printf(" failed\n ! mbedtls_ctr_drbg_random returned -0x%04x\n", -ret);
return 0;
}
return 1;
}
int create_iv(unsigned char* iv)
{
int ret;
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_entropy_context entropy;
//char *pers = "iv generate key";
mbedtls_entropy_init(&entropy);
mbedtls_ctr_drbg_init(&ctr_drbg);
if(ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, NULL, 0) != 0)
{
printf( " failed\n ! mbedtls_ctr_drbg_init returned -0x%04x\n", -ret );
return 0;
}
if((ret = mbedtls_ctr_drbg_random( &ctr_drbg, iv, 16)) != 0)
{
printf(" failed\n ! mbedtls_ctr_drbg_random returned -0x%04x\n", -ret);
return 0;
}
return 1;
}
int main(void)
{
unsigned char key[32];
unsigned char iv[16];
/* Mapping Default Error Handling function */
Retcode_T retcode = Retcode_Initialize(DefaultErrorHandlingFunc);
if (RETCODE_OK == retcode)
{
retcode = systemStartup();
}
/* Randomly create the AES key and the IV */
if(create_aes_key(key) == 0 || create_iv(iv) == 0)
return -1;
}
Solved! Go to Solution.
Hi,
could you please discribe in greater detail where and how to integrate the mbedtls macros on xdk110/common/application.mk makefile.
Thank you very much, Verena