Example client with wolfSSL3.11.1 for TLS1.3 beta

Dependencies:   EthernetInterface-FRDM-k64F mbed-rtos mbed wolfSSL-TLS13-Beta

Fork of Example-client-tls by wolf SSL

Revision:
6:12068e6dc456
Parent:
5:76ad456ac3f0
--- a/client-tls.cpp	Thu Apr 28 01:07:49 2016 +0000
+++ b/client-tls.cpp	Tue May 30 06:16:51 2017 +0000
@@ -1,6 +1,6 @@
 /* client-tcp.c
  *
- * Copyright (C) 2006-2015 wolfSSL Inc.
+ * Copyright (C) 2006-2017 wolfSSL Inc.
  *
  * This file is part of wolfSSL. (formerly known as CyaSSL)
  *
@@ -43,7 +43,7 @@
 static int getline(char *prompt, char *buff, int size)
 {
     int sz ;
-    
+
     printf("%s", prompt) ;
     for(sz = 0 ;  (sz < size) && ((*buff = getchar()) != '\r'); sz++, buff++) {
         putchar(*buff) ;
@@ -84,7 +84,7 @@
 /*
  *  clients initial contact with server. Socket to connect to: sock
  */
- int ClientGreet(TCPSocketConnection *socket, WOLFSSL *ssl)
+int ClientGreet(TCPSocketConnection *socket, WOLFSSL *ssl)
 {
     /* data to send to the server, data recieved from the server */
     char    sendBuff[MAXDATASIZE], rcvBuff[MAXDATASIZE] = {0};
@@ -98,21 +98,16 @@
         printf("Write error[%d]\n", ret, wc_GetErrorString(ret));
         return EXIT_FAILURE;
     }
-    printf("Recieved:\n");
-    while(1) {
-        if ((ret = wolfSSL_read(ssl, rcvBuff, sizeof(rcvBuff)-1)) < 0) {
-            if(ret == 0)break ;
-            /* the server failed to send data, or error trying */
-            ret = wolfSSL_get_error(ssl, 0);
-            printf("Read error[%d], %s\n", ret, wc_GetErrorString(ret));
-            return EXIT_FAILURE;
-        }
-        rcvBuff[ret] = '\0' ;
-        printf("%s", rcvBuff);
-        if((rcvBuff[ret-3] == '\n')&&
-           (rcvBuff[ret-2] == '\n')&&
-           (rcvBuff[ret-1] == '\n'))break ;
+
+    if ((ret = wolfSSL_read(ssl, rcvBuff, sizeof(rcvBuff)-1)) < 0) {
+        /* the server failed to send data, or error trying */
+        ret = wolfSSL_get_error(ssl, 0);
+        printf("Read error[%d], %s\n", ret, wc_GetErrorString(ret));
+        return EXIT_FAILURE;
     }
+    rcvBuff[ret] = '\0' ; 
+    printf("Recieved: %s\n", rcvBuff);
+
     return ret;
 }
 
@@ -127,7 +122,7 @@
     int         ret = 0;
 
     /* create and initiLize WOLFSSL_CTX structure */
-    if ((ctx = wolfSSL_CTX_new(wolfTLSv1_2_client_method())) == NULL) {
+    if ((ctx = wolfSSL_CTX_new(wolfTLSv1_3_client_method())) == NULL) {
         printf("SSL_CTX_new error.\n");
         return EXIT_FAILURE;
     }
@@ -150,7 +145,7 @@
     } else {
         ret = wolfSSL_get_error(ssl, 0);
         printf("TLS Connect error[%d], %s\n", ret, wc_GetErrorString(ret));
-        return EXIT_FAILURE;        
+        return EXIT_FAILURE;
     }
     /* frees all data before client termination */
     wolfSSL_free(ssl);
@@ -167,7 +162,7 @@
 {
     char server_addr[40] ;
     char server_port[10] ;
-    
+
     printf("Starting TLS Client,...\n") ;
     wolfSSL_Init();      /* initialize wolfSSL */
     /* wolfSSL_Debugging_ON(); */
@@ -183,7 +178,7 @@
 
     getline("Server Addr: ", server_addr, sizeof(server_addr)) ;
     getline("Server Port: ", server_port, sizeof(server_port)) ;
-    
+
     while (socket.connect(server_addr, atoi(server_port)) < 0) {
         printf("Unable to connect to (%s) on port (%s)\n", server_addr, server_port);
         wait(1.0);