Developer Portal Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    Mbedtls library on XDK

    New Poster

    Mbedtls library on XDK

    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;
    }

     

     

    1 REPLY 1
    Highlighted
    New Poster

    Re: Mbedtls library on XDK

    UPDATE: figured out by enabling mbedtls macros on xdk110/common/application.mk makefile.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist