Https example program using TLSSocket library.

Hello-TLSSocket

TLSSocket library example program.

In this example, https connection to os.mbed.com is established by using TLSSocket. The program is tested on K64F.

Output from console

When set mbed-trace.enable true.

HelloTSLSocket, HTTPS example of TLSSocket

[INFO][TLSx]: Connecting to os.mbed.com:443
[INFO][TLSx]: Connected.
[INFO][TLSx]: Starting the TLS handshake...
[INFO][TLSx]: TLS connection to os.mbed.com:443 established

[DBG ][TLSx]: Server certificate:
    cert. version     : 3
    serial number     : 03:56:D4:79:41:63:31:CA:E0:56:06:61
    issuer name       : C=BE, O=GlobalSign nv-sa, CN=GlobalSign Organization Validation CA - SHA256 - G2
    subject name      : C=GB, ST=Cambridgeshire, L=Cambridge, O=Arm Ltd, CN=*.mbed.com
    issued  on        : 2018-05-04 15:36:03
    expires on        : 2019-06-06 10:31:02
    signed using      : RSA with SHA-256
    RSA key size      : 2048 bits
    basic constraints : CA=false
    subject alt name  : *.mbed.com, mbed.org, *.mbed.org, mbed.com
    key usage         : Digital Signature, Key Encipherment
    ext key usage     : TLS Web Server Authentication, TLS Web Client Authentication


[INFO][TLSx]: Certificate verification passed

GET / HTTP/1.1
Host: os.mbed.com
Connection: close

HTTP/1.1 200 OK
Server: nginx/1.11.12
Date: Wed, 13 Jun 2018 08:26:02 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Language,Cookie,Accept-Encoding
Content-Language: en-gb
Set-Cookie: csrftoken=zM3AGfeZ6W4OQZsT6nCcxNBYxEEN73sf; expires=Wed, 12-Jun-2019 08:25:33 GMT; Max-Age=31449600; Path=/
Strict-Transport-Security: max-age=31536000; includeSubdomains

eae
<!DOCTYPE html>

...
...
...

        AJAX_req.onreadystatechange = handle_AJAX_Complete;
        AJAX_req.send();
    }
</script>


</body>
</html>

0

HelloTSLSocket DONE.

Revision:
6:75b01b028cd4
Parent:
3:cf61a5596cf2
Child:
7:fc43e66fb54a
diff -r 3d7363b058b2 -r 75b01b028cd4 main.cpp
--- a/main.cpp	Thu Apr 19 16:43:27 2018 +0900
+++ b/main.cpp	Tue Apr 24 17:24:26 2018 +0900
@@ -46,19 +46,19 @@
     }
 
     // Create a TLS socket
-    TLSSocket socket = TLSSocket();
-    if(socket.open(network) != 0) {
+    TLSSocket* socket = new TLSSocket();
+    if(socket->open(network) != 0) {
         printf("Unable to open TLS socket.\r\n");
         return -1;
     }
 
     // Connect to the server, including TLS handshake
-    if(socket.connect(HOST_NAME, PORT, ROOT_CA_PEM) != 0) {
+    if(socket->connect(HOST_NAME, PORT, ROOT_CA_PEM) != 0) {
         printf("Failed to connect to the server.");
         return -1;
     }
     
-    const size_t buf_size = 2048;
+    const size_t buf_size = 1024;
     char *buf = new char[buf_size];
 
     // Send HTTP request
@@ -74,14 +74,14 @@
                 "\n", HTTPS_PATH, HOST_NAME);
     printf("\r\n%s", buf);
     int rc = 0;
-    rc = socket.send(buf, len);
+    rc = socket->send(buf, len);
     if(rc < 0) {
         printf("send error.\r\n");
         return -1;
     }
 
-    // Receive response from the server    
-    while((rc = socket.recv(buf, buf_size - 1)) > 0) {
+    // Receive response from the server
+    while((rc = socket->recv(buf, buf_size - 1)) > 0) {
         buf[rc] = '\0';
         printf("%s", buf);
     }
@@ -93,5 +93,6 @@
     printf("HelloTSLSocket DONE.\r\n");
     delete[] buf;
     
-    socket.close();
+    socket->close();
+    delete socket;
 }