Add basic change for v1453

Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/test/others/mbtk_openssl_demo.c b/mbtk/test/others/mbtk_openssl_demo.c
new file mode 100755
index 0000000..08ff7b8
--- /dev/null
+++ b/mbtk/test/others/mbtk_openssl_demo.c
@@ -0,0 +1,190 @@
+/*-----------------------------------------------------------------------------------------------*/

+/**

+  @file NULL

+  @brief libssl.so.3 function test

+*/

+/*-----------------------------------------------------------------------------------------------*/

+

+/*-------------------------------------------------------------------------------------------------

+  Copyright (c) 2024 mobiletek Wireless Solution, Co., Ltd. All Rights Reserved.

+  mobiletek Wireless Solution Proprietary and Confidential.

+-------------------------------------------------------------------------------------------------*/

+

+/*-------------------------------------------------------------------------------------------------

+  EDIT HISTORY

+  This section contains comments describing changes made to the file.

+  Notice that changes are listed in reverse chronological order.

+  $Header: $

+  when       who          what, where, why

+  --------   ---------    -----------------------------------------------------------------

+  20250409    yq.wang      Created .

+-------------------------------------------------------------------------------------------------*/

+#include <stdio.h>

+#include <stdlib.h>

+#include <string.h>

+#include <unistd.h>

+#include <pthread.h>

+#include <sys/socket.h>

+#include <netinet/in.h>

+#include <arpa/inet.h>

+

+#ifdef MBTK_OPENSSL_V3_0_0_SUPPORT

+#include "mbtk_openssl.h"

+

+#define BUFFER_SIZE 1024

+    

+void* recv_thread(void *arg)

+{

+    mbtk_openssl_info_s *inter_info = (mbtk_openssl_info_s *)(intptr_t)arg;

+    char buffer[BUFFER_SIZE + 1] = {0};

+    

+    while(1)

+    {

+        memset(buffer, 0x00, BUFFER_SIZE + 1);

+        ssize_t len = mbtk_openssl_read(inter_info->ssl, buffer, BUFFER_SIZE);

+        if(len <= 0)

+        {

+            if(len == 0)

+            {

+                printf("Connection closed by server\n");

+            }

+            else

+            {

+                printf("mbtk_openssl_read() fail.[%d]\n", len);

+            }

+            break;

+        }

+        buffer[len] = '\0';

+        printf("\nReceived: %s\n", buffer);

+    }

+    

+    return NULL;

+}

+

+static int tcp_connect_init(int *client_fd, int port, char *ip)

+{

+    int ret = -1;

+    struct sockaddr_in server_addr;

+

+    if(port < 1 || port > 65535)

+    {

+        printf("[%s] Invalid port number\n", __func__);

+        goto error;

+    }

+

+    *client_fd = socket(AF_INET, SOCK_STREAM, 0);

+    if(*client_fd < 0)

+    {

+        printf("[%s] socket creation failed\n", __func__);

+        goto error;

+    }

+

+    server_addr.sin_family = AF_INET;

+    server_addr.sin_port = htons(port);

+    ret = inet_pton(AF_INET, ip, &server_addr.sin_addr);

+    if(ret <= 0)

+    {

+        perror("invalid address");

+        goto error;

+    }

+

+    ret = connect(*client_fd, (struct sockaddr *)&server_addr, sizeof(server_addr));

+    if(ret< 0)

+    {

+        perror("connection failed");

+        goto error;

+    }

+

+    printf("[%s] Connected to %s:%d\n", __func__, ip, port);

+    return 0;

+error:

+    if(*client_fd >= 0)

+    {

+        close(*client_fd);

+        *client_fd = -1;

+    }

+    return -1;

+}

+    

+int main(int argc, char *argv[])

+{

+    if(argc != 3)

+    {

+        printf("Usage: %s <IP> <PORT>\n", argv[0]);

+        exit(EXIT_FAILURE);

+    }

+

+    int ret = -1;

+    int client_fd = -1;

+    ssize_t bytes_recv = 0;

+    char buffer[BUFFER_SIZE + 1] = {0};

+    mbtk_openssl_result_e mbtk_ret = MBTK_OPENSSL_RESULT_SUCCESS;

+    mbtk_openssl_info_s inter_info = {0};

+    mbtk_openssl_options_s opt = {0};

+    

+    pthread_t tid;

+

+    ret = tcp_connect_init(&client_fd, atoi(argv[2]), argv[1]);

+    if(ret < 0)

+    {

+        printf("tcp_connect_init() fail\n");

+        exit(EXIT_FAILURE);

+    }

+

+    mbtk_openssl_options_default(&opt);

+    opt.load_cert = true;

+    opt.ca_file = "/ca.crt";

+    opt.crt_file = "/client.crt";

+    opt.key_file = "/client.key";

+    opt.safety_level = MBTK_OPENSSL_SAFETY_LEVEL_0;//Use level 0 for testing only

+    mbtk_ret = mbtk_openssl_init(client_fd, &opt, &inter_info);

+    if(mbtk_ret != MBTK_OPENSSL_RESULT_SUCCESS)

+    {

+        printf("mbtk_openssl_init() fail\n");

+        close(client_fd);

+        client_fd =-1;

+        exit(EXIT_FAILURE);

+    }

+    

+    ret = pthread_create(&tid, NULL, recv_thread, (void*)(intptr_t)&inter_info);

+    if(ret != 0)

+    {

+        perror("thread creation failed");

+        close(client_fd);

+        client_fd = -1;

+        exit(EXIT_FAILURE);

+    }

+

+    while(1) 

+    {

+        printf("Enter message: \n");

+        memset(buffer, 0x00, BUFFER_SIZE);

+        fgets(buffer, BUFFER_SIZE, stdin);

+

+        if(memcmp(buffer, "exit", 4) == 0)

+        {

+            printf("process exit\n");

+            break;

+        }

+        

+        ret = mbtk_openssl_write(inter_info.ssl, buffer, strlen(buffer));

+        if(ret < 0)

+        {

+            printf("mbtk_openssl_write() fail.[%d]\n", ret);

+            break;

+        }

+    }

+

+    mbtk_openssl_deinit(&inter_info);

+    close(client_fd);

+    client_fd = -1;

+    

+    return 0;

+}

+#else

+int main(int argc, char *argv[])

+{

+	printf("No support openssl.\n");

+	return 0;

+}

+#endif
\ No newline at end of file