A simple library to support serving https.

Dependents:   oldheating gps motorhome heating

Revision:
21:a6d6e26dd742
Parent:
19:f22327e8be7b
Child:
23:e93d5529b7a6
diff -r 197c3e6e8b8d -r a6d6e26dd742 tls/tls-response.c
--- a/tls/tls-response.c	Wed Oct 16 11:11:03 2019 +0000
+++ b/tls/tls-response.c	Wed Oct 16 17:14:03 2019 +0000
@@ -1,3 +1,4 @@
+#include "tls.h"
 #include "tls-defs.h"
 #include "tls-connection.h"
 #include "tls-session.h"
@@ -46,7 +47,7 @@
 }
 static void addHandshakeServerHello(uint8_t** pp, struct TlsConnection* pConnection)
 {
-    Log("     sending handshake server hello\r\n");
+    if (TlsTrace) Log("     sending handshake server hello\r\n");
     uint8_t* p = *pp;
     
     *p++ = TLS_HANDSHAKE_SERVER_HELLO;
@@ -89,7 +90,7 @@
 }
 static void addHandshakeServerHelloDone(uint8_t** pp)
 {   
-    LogTime("     sending handshake server hello done\r\n");
+    if (TlsTrace) LogTime("     sending handshake server hello done\r\n");
     uint8_t* p = *pp;
     
     *p++ = TLS_HANDSHAKE_SERVER_HELLO_DONE; *p++ = 0x00;
@@ -99,7 +100,7 @@
 }
 static void addHandshakeFinished(uint8_t** pp, struct TlsConnection* pConnection, struct TlsSession* pSession)
 {
-    LogTime("     sending handshake finished\r\n");
+    if (TlsTrace) LogTime("     sending handshake finished\r\n");
     uint8_t* p = *pp;
     
     TlsAes128CbcSha1EncryptStart(&p);
@@ -124,7 +125,7 @@
 }
 static void addChangeCipher(uint8_t** pp, struct TlsConnection* pConnection)
 {
-    LogTime("     sending change cipher\r\n");
+    if (TlsTrace) LogTime("     sending change cipher\r\n");
     uint8_t* p = *pp;
     
     *p++ = TLS_CONTENT_TYPE_CHANGE_CIPHER;             //Content is change cipher
@@ -140,7 +141,7 @@
 }
 static void addAlert(uint8_t** pp, struct TlsConnection* pConnection, uint8_t level, uint8_t description)
 {
-    LogTime("     sending alert\r\n");
+    if (TlsTrace) LogTime("     sending alert\r\n");
     Log    ("     - "); TlsLogAlertLevel(level); Log(": "); TlsLogAlertDescription(description); Log("\r\n");
     
     uint8_t* p = *pp;
@@ -215,9 +216,12 @@
 static bool sendContent(struct TlsConnection* pConnection, int* pWindowSize, uint8_t* pWindow, uint32_t positionOfWindowInStream)
 {
     //Start
-    LogTime("     adding application content\r\n");
-    LogF("- available window size %d\r\n", *pWindowSize);
-    LogF("- position of window in stream %d\r\n", positionOfWindowInStream);
+    if (TlsTrace)
+    {
+        LogTime("     adding application content\r\n");
+        LogF("- available window size %d\r\n", *pWindowSize);
+        LogF("- position of window in stream %d\r\n", positionOfWindowInStream);
+    }
     uint8_t* p = pWindow;
     *p++ = TLS_CONTENT_TYPE_APPLICATION;
     *p++ = 0x03; *p++ = 0x03;
@@ -230,11 +234,11 @@
 
     //Add the plain payload
     int payloadSize = *pWindowSize - 5 - TLS_AES_128_CBC_SHA1_MAX_OVERHEAD;
-    LogF("- available payload size %d\r\n", payloadSize);
+    if (TlsTrace) LogF("- available payload size %d\r\n", payloadSize);
     uint32_t positionOfPayloadInStream = positionOfWindowInStream - pConnection->serverPositionInStreamOffset;
-    LogF("- position of payload in stream %d\r\n", positionOfPayloadInStream);
+    if (TlsTrace) LogF("- position of payload in stream %d\r\n", positionOfPayloadInStream);
     bool finished = HttpAdd(pConnection->id, &payloadSize, (char*)p, positionOfPayloadInStream); //Return whatever HTTP would be
-    LogF("- resulting payload size %d\r\n", payloadSize);
+    if (TlsTrace) LogF("- resulting payload size %d\r\n", payloadSize);
     p += payloadSize;
     
     TlsAes128CbcSha1EncryptEnd(&p, pConnection, TLS_CONTENT_TYPE_APPLICATION);
@@ -245,7 +249,7 @@
     //Finalise
     pConnection->serverSequence++;
     *pWindowSize = p - pWindow;
-    LogF("- resulting window size %d\r\n", *pWindowSize);
+    if (TlsTrace) LogF("- resulting window size %d\r\n", *pWindowSize);
     pConnection->serverPositionInStreamOffset += *pWindowSize - payloadSize;
     
     return finished;