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.
Diff: main.cpp
- 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; }