A super trimmed down TLS stack, GPL licensed

Dependents:   MiniTLS-HTTPS-Example

MiniTLS - A super trimmed down TLS/SSL Library for embedded devices Author: Donatien Garnier Copyright (C) 2013-2014 AppNearMe Ltd

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Committer:
MiniTLS
Date:
Tue Jun 10 14:23:09 2014 +0000
Revision:
4:cbaf466d717d
Parent:
3:eb324ffffd2b
Fixes for mbed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MiniTLS 2:527a66d0a1a9 1 /*
MiniTLS 2:527a66d0a1a9 2 MiniTLS - A super trimmed down TLS/SSL Library for embedded devices
MiniTLS 2:527a66d0a1a9 3 Author: Donatien Garnier
MiniTLS 2:527a66d0a1a9 4 Copyright (C) 2013-2014 AppNearMe Ltd
MiniTLS 2:527a66d0a1a9 5
MiniTLS 2:527a66d0a1a9 6 This program is free software; you can redistribute it and/or
MiniTLS 2:527a66d0a1a9 7 modify it under the terms of the GNU General Public License
MiniTLS 2:527a66d0a1a9 8 as published by the Free Software Foundation; either version 2
MiniTLS 2:527a66d0a1a9 9 of the License, or (at your option) any later version.
MiniTLS 2:527a66d0a1a9 10
MiniTLS 2:527a66d0a1a9 11 This program is distributed in the hope that it will be useful,
MiniTLS 2:527a66d0a1a9 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
MiniTLS 2:527a66d0a1a9 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
MiniTLS 2:527a66d0a1a9 14 GNU General Public License for more details.
MiniTLS 2:527a66d0a1a9 15
MiniTLS 2:527a66d0a1a9 16 You should have received a copy of the GNU General Public License
MiniTLS 2:527a66d0a1a9 17 along with this program; if not, write to the Free Software
MiniTLS 2:527a66d0a1a9 18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
MiniTLS 2:527a66d0a1a9 19 *//**
MiniTLS 2:527a66d0a1a9 20 * \file TLSSocket.h
MiniTLS 2:527a66d0a1a9 21 * \copyright Copyright (c) AppNearMe Ltd 2013
MiniTLS 2:527a66d0a1a9 22 * \author Donatien Garnier
MiniTLS 2:527a66d0a1a9 23 */
MiniTLS 2:527a66d0a1a9 24
MiniTLS 2:527a66d0a1a9 25 #ifndef TLSSOCKET_H_
MiniTLS 2:527a66d0a1a9 26 #define TLSSOCKET_H_
MiniTLS 2:527a66d0a1a9 27
MiniTLS 2:527a66d0a1a9 28 #include "core/fwk.h"
MiniTLS 2:527a66d0a1a9 29 #include "MiniTLS.h"
MiniTLS 2:527a66d0a1a9 30
MiniTLS 2:527a66d0a1a9 31 // #include <cstdint> -- new to C++11
MiniTLS 2:527a66d0a1a9 32 #include "inc/minitls_errors.h"
MiniTLS 2:527a66d0a1a9 33
MiniTLS 2:527a66d0a1a9 34 #include "tls/tls_socket.h"
MiniTLS 2:527a66d0a1a9 35
MiniTLS 3:eb324ffffd2b 36 #define TLSSOCKET_BUF_SIZE 5000//804
MiniTLS 2:527a66d0a1a9 37
MiniTLS 2:527a66d0a1a9 38 /** TLS Socket
MiniTLS 2:527a66d0a1a9 39 * \param pMiniTLS pointer to MiniTLS instance
MiniTLS 2:527a66d0a1a9 40 */
MiniTLS 2:527a66d0a1a9 41 class TLSSocket
MiniTLS 2:527a66d0a1a9 42 {
MiniTLS 2:527a66d0a1a9 43 public:
MiniTLS 2:527a66d0a1a9 44 TLSSocket(MiniTLS* pMiniTLS);
MiniTLS 2:527a66d0a1a9 45 ~TLSSocket();
MiniTLS 2:527a66d0a1a9 46
MiniTLS 2:527a66d0a1a9 47 minitls_err_t init();
MiniTLS 2:527a66d0a1a9 48
MiniTLS 2:527a66d0a1a9 49 minitls_err_t connect(const char* hostname, uint16_t port, int timeout);
MiniTLS 2:527a66d0a1a9 50
MiniTLS 2:527a66d0a1a9 51 minitls_err_t read(uint8_t* buf, size_t minLength, size_t maxLength, size_t* readLength, int timeout);
MiniTLS 2:527a66d0a1a9 52 minitls_err_t write(uint8_t* buf, size_t length, size_t* writtenLength, int timeout);
MiniTLS 2:527a66d0a1a9 53 minitls_err_t flush(int timeout);
MiniTLS 2:527a66d0a1a9 54
MiniTLS 2:527a66d0a1a9 55 minitls_err_t close();
MiniTLS 2:527a66d0a1a9 56
MiniTLS 2:527a66d0a1a9 57 private:
MiniTLS 2:527a66d0a1a9 58 uint8_t m_writeBuf[TLSSOCKET_BUF_SIZE];
MiniTLS 2:527a66d0a1a9 59 uint8_t m_readBuf[TLSSOCKET_BUF_SIZE];
MiniTLS 2:527a66d0a1a9 60
MiniTLS 2:527a66d0a1a9 61 tls_socket_t m_sock;
MiniTLS 2:527a66d0a1a9 62
MiniTLS 2:527a66d0a1a9 63 MiniTLS* m_pMiniTLS;
MiniTLS 2:527a66d0a1a9 64 };
MiniTLS 2:527a66d0a1a9 65
MiniTLS 2:527a66d0a1a9 66 #endif /* TLSSOCKET_H_ */
MiniTLS 2:527a66d0a1a9 67