This example show how to create a small TLS server using the TLS_cyassl library.
Dependencies: EthernetInterface8 TLS_cyassl mbed-rtos mbed
Once you launched this program on the mbed, create a small python script :
TLS client
import httplib conn = httplib.HTTPSConnection("10.2.200.35", 443) conn.request("GET", "/") r1 = conn.getresponse() print r1.status, r1.reason data = r1.read() print data
In the terminal, your mbed prints its own IP address. Replace 10.2.200.35 with the IP address of your mbed.
Revision 0:e9b7265b84af, committed 2013-09-18
- Comitter:
- feb11
- Date:
- Wed Sep 18 09:21:51 2013 +0000
- Commit message:
- initial import
Changed in this revision
diff -r 000000000000 -r e9b7265b84af EthernetInterface.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/EthernetInterface.lib Wed Sep 18 09:21:51 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/feb11/code/EthernetInterface8/#4166958284dd
diff -r 000000000000 -r e9b7265b84af TLS_cyassl.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TLS_cyassl.lib Wed Sep 18 09:21:51 2013 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/feb11/code/TLS_cyassl/#29069dd9abfc
diff -r 000000000000 -r e9b7265b84af main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Sep 18 09:21:51 2013 +0000 @@ -0,0 +1,76 @@ +/** This example shows how to create + a small TLS server using the TLS library. +*/ + +#include "mbed.h" +#include "EthernetInterface.h" +#include "TLSConnection.h" +#include "TLSServer.h" + +const char host[] = "mbed.org"; + +const char page[] = " \ +<html> \ + <head>\ + <title>MBED</title>\ + </head>\ + <body>\ + Hello World !\ + </body>\ +</html>"; + +int main() +{ + set_time(1379062044 ); + EthernetInterface eth; + if(eth.init() || eth.connect()) + { + printf("Error with EthernetInterface\n\r"); + return -1; + } + printf("IP address is %s\n", eth.getIPAddress()); + + TLSServer srv; + if(!srv.init()) + { + printf("Failed to intialize server\n"); + return -1; + } + + TLSConnection con; + if(srv.accept(con)) + { + printf("New connection from %s\n", con.get_address()); + char buffer[512]; + + while(con.is_connected()) + { + int read = con.receive(buffer, 511); + if(read == 0) + { + break; + } + if(read != -1) + { + buffer[read] = '\0'; + printf("%s", buffer); + + sprintf(buffer, "HTTP/1.0 200 OK\r\nContent-Length: %d", strlen(page)); + strcat(buffer, "\r\n\r\n"); + strcat(buffer, page); + + con.send_all(buffer, strlen(buffer)); + } + else + { + printf("error occured\n"); + break; + } + } + + con.close(); + } + eth.disconnect(); + + return 0; +}
diff -r 000000000000 -r e9b7265b84af mbed-rtos.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Wed Sep 18 09:21:51 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed-rtos/#ee87e782d34f
diff -r 000000000000 -r e9b7265b84af mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Sep 18 09:21:51 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/9c8f0e3462fb \ No newline at end of file