wrapper of the mbed port of Cyassl. It's based of the work of Ashley Mills

Dependencies:   cyassl-lib

Dependents:   TLS_cyassl-Example TLS_cyassl-Example2 HTTPSClientExample2

Fork of TLS_cyassl by Francois Berder

Import programTLS_cyassl-Example

This program shows how to use TLS_cyassl to connect to mbed.org

Import programTLS_cyassl-Example2

This example show how to create a small TLS server using the TLS_cyassl library.

Committer:
feb11
Date:
Thu Sep 12 16:37:08 2013 +0000
Revision:
0:815067fd66c9
Child:
2:63ad554f6ca4
initial import

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 0:815067fd66c9 1 #ifndef TLSCONNECTION_H
feb11 0:815067fd66c9 2 #define TLSCONNECTION_H
feb11 0:815067fd66c9 3
feb11 0:815067fd66c9 4 #include "Socket.h"
feb11 0:815067fd66c9 5 #include "Endpoint.h"
feb11 0:815067fd66c9 6 #include "ssl.h"
feb11 0:815067fd66c9 7
feb11 0:815067fd66c9 8 /** This class provides a user-friendly interface for the
feb11 0:815067fd66c9 9 axTLS library.
feb11 0:815067fd66c9 10 */
feb11 0:815067fd66c9 11 class TLSConnection : public Socket, public Endpoint
feb11 0:815067fd66c9 12 {
feb11 0:815067fd66c9 13 public :
feb11 0:815067fd66c9 14
feb11 0:815067fd66c9 15 TLSConnection();
feb11 0:815067fd66c9 16
feb11 0:815067fd66c9 17 /** This function tries to establish a TLS connection
feb11 0:815067fd66c9 18 with the given host.
feb11 0:815067fd66c9 19 It will first try to establish a TCP connection on
feb11 0:815067fd66c9 20 port 443 with the host. Then, it runs the TLS
feb11 0:815067fd66c9 21 handshake protocol.
feb11 0:815067fd66c9 22
feb11 0:815067fd66c9 23 \param host A valid hostname (e.g. "mbed.org")
feb11 0:815067fd66c9 24 \return True if it managed to establish a connection
feb11 0:815067fd66c9 25 with the host. False otherwise.
feb11 0:815067fd66c9 26 */
feb11 0:815067fd66c9 27 bool connect(const char *host);
feb11 0:815067fd66c9 28
feb11 0:815067fd66c9 29 /** Indicates whether a connection is established or not.
feb11 0:815067fd66c9 30
feb11 0:815067fd66c9 31 \return true if a connection is established, otherwise
feb11 0:815067fd66c9 32 returns false.
feb11 0:815067fd66c9 33 */
feb11 0:815067fd66c9 34 bool is_connected(void);
feb11 0:815067fd66c9 35
feb11 0:815067fd66c9 36 /** Sends some data to the host. This method does not return
feb11 0:815067fd66c9 37 until length bytes have been sent.
feb11 0:815067fd66c9 38
feb11 0:815067fd66c9 39 \param data A pointer to some data
feb11 0:815067fd66c9 40 \param length Number of bytes to send
feb11 0:815067fd66c9 41 \return Number of bytes sent, or -1 if an error occured.
feb11 0:815067fd66c9 42 */
feb11 0:815067fd66c9 43 int send_all(char *data, int length);
feb11 0:815067fd66c9 44
feb11 0:815067fd66c9 45 /** Receive some data from the host.
feb11 0:815067fd66c9 46
feb11 0:815067fd66c9 47 \param data
feb11 0:815067fd66c9 48 \param length Maximum number of bytes to receive
feb11 0:815067fd66c9 49 \return Number of bytes read in range 0..length, or -1
feb11 0:815067fd66c9 50 if an error occured.
feb11 0:815067fd66c9 51 */
feb11 0:815067fd66c9 52 int receive(char *data, int length);
feb11 0:815067fd66c9 53
feb11 0:815067fd66c9 54 /** Close the connection.
feb11 0:815067fd66c9 55
feb11 0:815067fd66c9 56 \param shutdown
feb11 0:815067fd66c9 57 \return True if the connection was closed with success,
feb11 0:815067fd66c9 58 false otherwise. If no connection was established,
feb11 0:815067fd66c9 59 returns true immediately.
feb11 0:815067fd66c9 60 */
feb11 0:815067fd66c9 61 bool close(bool shutdown = true);
feb11 0:815067fd66c9 62
feb11 0:815067fd66c9 63 private :
feb11 0:815067fd66c9 64
feb11 0:815067fd66c9 65 bool _is_connected;
feb11 0:815067fd66c9 66
feb11 0:815067fd66c9 67 CYASSL_CTX *_ssl_ctx;
feb11 0:815067fd66c9 68 CYASSL *_ssl;
feb11 0:815067fd66c9 69 };
feb11 0:815067fd66c9 70
feb11 0:815067fd66c9 71 #endif
feb11 0:815067fd66c9 72
feb11 0:815067fd66c9 73