in source/1nce_zero_touch_provisioning.c [193:334]
    static uint8_t onboarding_request( uint8_t status,
                                       NetworkContext_t * pxNetworkContext,
                                       char ** completeResponse );
#endif
/**
 * @brief re-initialize MQTT connection information
 * from received onboarding response.
 *
 * @return The status of the excution result.
 */
static uint8_t nceReinitConnParams( char * completeResponse,
                                    char ** pThingName,
                                    char ** pEndpoint,
                                    char ** pExampleTopic,
                                    char ** pRootCA,
                                    char ** pClientCert,
                                    char ** pPrvKey );
/**
 * @brief Replace matched patterns in a string.
 *
 * @param[in] orig: the target string to be replaced.
 * @param[in] rep: the string pattern to be replaced.
 * @param[in] with: the string pattern to replace.
 *
 * @return the pointer pointing to the new string after being replaced.
 */
char * str_replace( char * orig,
                    char * rep,
                    char * with );
extern UBaseType_t uxRand( void );
/*-----------------------------------------------------------*/
uint8_t nce_onboard( char ** pThingName,
                     char ** pEndpoint,
                     char ** pExampleTopic,
                     char ** pRootCA,
                     char ** pClientCert,
                     char ** pPrvKey )
{
    uint8_t status = EXIT_FAILURE;
    char completeResponse[ 5000 ];
    memset( completeResponse, '\0', 5000 );
    LogInfo( ( "Start 1NCE device onboarding." ) );
    /* Create TLS connection for onboarding request. */
    TlsTransportStatus_t xNetworkStatus = nce_connect( &xNetworkContext );
    if( TLS_TRANSPORT_SUCCESS != xNetworkStatus )
    {
        LogError( ( "Failed to connect to 1NCE server." ) );
        return status;
    }
    /* Build onboarding request. */
    #ifdef democonfigRANGE_SIZE
        status = onboarding_request( status, &xNetworkContext, &completeResponse );
        if( status == EXIT_FAILURE )
        {
            return status;
        }
    #else
        char packetToSent[ 100 ];
        memset( packetToSent, '\0', 100 * sizeof( char ) );
        sprintf( packetToSent, "GET /device-api/onboarding HTTP/1.1\r\n"
                               "Host: %s\r\n"
                               "Accept: text/csv\r\n\r\n", ONBOARDING_ENDPOINT );
        LogInfo( ( "Send onboarding request:\r\n%.*s",
                   strlen( packetToSent ),
                   packetToSent ) );
        /* Send onboarding request. */
        int32_t sentBytes = TLS_FreeRTOS_send( &xNetworkContext,
                                               &packetToSent,
                                               strlen( packetToSent ) );
        configASSERT( sentBytes > 0 );
        if( sentBytes <= 0 )
        {
            LogError( ( "Failed to send onboarding request." ) );
            return status;
        }
        /* Receive onboarding response. */
        int32_t recvBytes = TLS_FreeRTOS_recv( &xNetworkContext,
                                               &PART[ 0 ],
                                               RECV_BUFFER_LEN );
        if( recvBytes < 0 )
        {
            LogError( ( "Failed to receive onboarding response." ) );
            return status;
        }
        LogDebug( ( "Received raw response: %d bytes.", recvBytes ) );
        LogDebug( ( "\r\n%.*s", recvBytes, PART ) );
        strcat( completeResponse,
                strstr( PART, "Express\r\n\r\n" ) + strlen( "Express\r\n\r\n" ) );
        memset( PART, ( int8_t ) '\0', sizeof( PART ) );
        while( recvBytes == RECV_BUFFER_LEN )
        {
            recvBytes = TLS_FreeRTOS_recv( &xNetworkContext,
                                           &PART[ 0 ],
                                           RECV_BUFFER_LEN );
            if( recvBytes < 0 )
            {
                LogError( ( "Failed to receive onboarding response." ) );
                return status;
            }
            LogDebug( ( "Received raw response: %d bytes.", strlen( PART ) ) );
            LogDebug( ( "\r\n%.*s", strlen( PART ), PART ) );
            strcat( completeResponse, PART );
            memset( PART, ( int8_t ) '\0', sizeof( PART ) );
        }
    #endif /* ifdef democonfigRANGE_SIZE */
    LogInfo( ( " Onboarding response is received." ) );
    /* Disconnect onboarding TLS connection. */
    TLS_FreeRTOS_Disconnect( &xNetworkContext );
    /* Re-initialize MQTT connection information with onboarding information. */
    status = nceReinitConnParams( completeResponse,
                                  pThingName,
                                  pEndpoint,
                                  pExampleTopic,
                                  pRootCA,
                                  pClientCert,
                                  pPrvKey );
    return status;
}