Browse Source

sniffer should fail a session missing a RSA key

John Safranek 9 years ago
parent
commit
33e767a1b4
4 changed files with 11 additions and 1 deletions
  1. 1 0
      cyassl/sniffer_error.rc
  2. 8 1
      src/sniffer.c
  3. 1 0
      wolfssl/sniffer_error.h
  4. 1 0
      wolfssl/sniffer_error.rc

+ 1 - 0
cyassl/sniffer_error.rc

@@ -88,5 +88,6 @@ STRINGTABLE
     71, "Decrypt Keys Not Set Up"
     72, "Late Key Load Error"
     73, "Got Certificate Status msg"
+    74, "RSA Key Missing Error"
 }
 

+ 8 - 1
src/sniffer.c

@@ -237,7 +237,8 @@ static const char* const msgTable[] =
     /* 71 */
     "Decrypt Keys Not Set Up",
     "Late Key Load Error",
-    "Got Certificate Status msg"
+    "Got Certificate Status msg",
+    "RSA Key Missing Error"
 };
 
 
@@ -1287,6 +1288,12 @@ static int ProcessClientKeyExchange(const byte* input, int* sslBytes,
     RsaKey key;
     int    ret;
 
+    if (session->sslServer->buffers.key.buffer == NULL ||
+        session->sslServer->buffers.key.length == 0) {
+
+        SetError(RSA_KEY_MISSING_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
     ret = wc_InitRsaKey(&key, 0);
     if (ret == 0)
         ret = wc_RsaPrivateKeyDecode(session->sslServer->buffers.key.buffer,

+ 1 - 0
wolfssl/sniffer_error.h

@@ -106,6 +106,7 @@
 #define DECRYPT_KEYS_NOT_SETUP 71
 #define CLIENT_HELLO_LATE_KEY_STR 72
 #define GOT_CERT_STATUS_STR 73
+#define RSA_KEY_MISSING_STR 74
 /* !!!! also add to msgTable in sniffer.c and .rc file !!!! */
 
 

+ 1 - 0
wolfssl/sniffer_error.rc

@@ -88,5 +88,6 @@ STRINGTABLE
     71, "Decrypt Keys Not Set Up"
     72, "Late Key Load Error"
     73, "Got Certificate Status msg"
+    74, "RSA Key Missing Error"
 }