Establishing a connection to mbed.org using TLS
Dependencies: EthernetInterface5 TLS_axTLS mbed-rtos mbed
main.cpp
- Committer:
- feb11
- Date:
- 2013-09-12
- Revision:
- 0:e98faa82e3ee
File content as of revision 0:e98faa82e3ee:
/* This example shows how to use TLS library. It establishes a connection to mbed.org and then closes this connection immediately. Don't forget to copy certificates on your mbed before running this program. You can download them as a zip package from the wiki: http://mbed.org/users/feb11/code/TLSExample/ */ #include "mbed.h" #include "EthernetInterface.h" #include "CertificateManager.h" #include "TLSConnection.h" const char host[] = "mbed.org"; LocalFileSystem local("local"); int main() { /* Ensure that the mbed has a time value approximately equal to the correct timestamp. This is needed because the certificate manager uses the timestamp to check whether certificates expired. Don't hesitate to remove this line if your mbed already store a correct time value, or update this value. */ set_time(1378376823); /* Starting Ethernet */ EthernetInterface eth; if(eth.init() || eth.connect()) { printf("Error with EthernetInterface\n\r"); return -1; } /* Loading certificates in precomputed mode. Notice that cert4 is the root certificate. */ CertificateManager::add("/local/cert1.der"); CertificateManager::add("/local/cert2.der"); CertificateManager::add("/local/cert3.der"); CertificateManager::add("/local/cert4.der"); if(!CertificateManager::load(true)) { printf("Failed to load certificates\n"); return -1; } /* Starting connection to mbed.org */ TLSConnection con; if(con.connect(host)) { printf("Connected to %s !\n", host); /* Since no memory is needed once the connection is established, we don't need to call CertificateManager::clear() to free memory. */ con.close(); } else { printf("Failed to connect to %s\n", host); } eth.disconnect(); return 0; }