mbed-os5 only for TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Revision:
1:9db0e321a9f4
Parent:
0:5b88d5760320
--- a/features/netsocket/TLSSocket.cpp	Tue Dec 17 23:23:45 2019 +0000
+++ b/features/netsocket/TLSSocket.cpp	Tue Dec 31 06:02:27 2019 +0000
@@ -20,6 +20,8 @@
 #define TRACE_GROUP "TLSS"
 #include "mbed-trace/mbed_trace.h"
 
+#if !defined(MBED_CONF_NSAPI_OFFLOAD_TLSSOCKET) || !(MBED_CONF_NSAPI_OFFLOAD_TLSSOCKET)
+
 // This class requires Mbed TLS SSL/TLS client code
 #if defined(MBEDTLS_SSL_CLI_C)
 
@@ -46,5 +48,71 @@
      */
     close();
 }
+#endif // MBEDTLS_SSL_CLI_C
 
-#endif // MBEDTLS_SSL_CLI_C
+#else // MBED_CONF_NSAPI_OFFLOAD_TLSSOCKET
+
+TLSSocket::TLSSocket()
+{
+}
+
+TLSSocket::~TLSSocket()
+{
+}
+
+
+nsapi_error_t TLSSocket::set_hostname(const char *hostname)
+{
+    return setsockopt(NSAPI_TLSSOCKET_LEVEL, NSAPI_TLSSOCKET_SET_HOSTNAME, hostname, strlen(hostname));
+}
+
+nsapi_error_t TLSSocket::set_root_ca_cert(const void *root_ca, size_t len)
+{
+    return setsockopt(NSAPI_TLSSOCKET_LEVEL, NSAPI_TLSSOCKET_SET_CACERT, root_ca, len);
+}
+
+nsapi_error_t TLSSocket::set_root_ca_cert(const char *root_ca_pem)
+{
+    return set_root_ca_cert(root_ca_pem, strlen(root_ca_pem));
+}
+
+nsapi_error_t TLSSocket::set_client_cert_key(const void *client_cert, size_t client_cert_len,
+                                             const void *client_private_key_pem, size_t client_private_key_len)
+{
+    nsapi_error_t ret = setsockopt(NSAPI_TLSSOCKET_LEVEL, NSAPI_TLSSOCKET_SET_CLCERT, client_cert, client_cert_len);
+    if (ret == NSAPI_ERROR_OK) {
+        ret = setsockopt(NSAPI_TLSSOCKET_LEVEL, NSAPI_TLSSOCKET_SET_CLKEY, client_private_key_pem, client_private_key_len);
+    }
+    return ret;
+}
+
+nsapi_error_t TLSSocket::set_client_cert_key(const char *client_cert_pem, const char *client_private_key_pem)
+{
+    return set_client_cert_key(client_cert_pem, strlen(client_cert_pem), client_private_key_pem, strlen(client_private_key_pem));
+}
+
+nsapi_error_t TLSSocket::connect(const char *host, uint16_t port)
+{
+    nsapi_error_t ret = enable_tlssocket();
+    if (ret == NSAPI_ERROR_OK) {
+        ret = TCPSocket::connect(host, port);
+    }
+    return ret;
+}
+
+nsapi_error_t TLSSocket::connect(const SocketAddress &address)
+{
+    nsapi_error_t ret = enable_tlssocket();
+    if (ret == NSAPI_ERROR_OK) {
+        ret = TCPSocket::connect(address);
+    }
+    return ret;
+}
+
+nsapi_error_t TLSSocket::enable_tlssocket()
+{
+    bool enabled = true;
+    return setsockopt(NSAPI_TLSSOCKET_LEVEL, NSAPI_TLSSOCKET_ENABLE, &enabled, sizeof(enabled));
+}
+
+#endif // MBED_CONF_NSAPI_OFFLOAD_TLSSOCKET