From 33e767a1b4f51d62e79be9f2eeb2f3ac8da4bc36 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Mon, 16 Mar 2015 18:13:51 -0700 Subject: [PATCH] sniffer should fail a session missing a RSA key --- cyassl/sniffer_error.rc | 1 + src/sniffer.c | 9 ++++++++- wolfssl/sniffer_error.h | 1 + wolfssl/sniffer_error.rc | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cyassl/sniffer_error.rc b/cyassl/sniffer_error.rc index b7d35e80a..8bcd6926c 100644 --- a/cyassl/sniffer_error.rc +++ b/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" } diff --git a/src/sniffer.c b/src/sniffer.c index 28f7c542a..0e81a8674 100644 --- a/src/sniffer.c +++ b/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, diff --git a/wolfssl/sniffer_error.h b/wolfssl/sniffer_error.h index c54bd13f7..ad89a50d9 100644 --- a/wolfssl/sniffer_error.h +++ b/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 !!!! */ diff --git a/wolfssl/sniffer_error.rc b/wolfssl/sniffer_error.rc index b7d35e80a..8bcd6926c 100644 --- a/wolfssl/sniffer_error.rc +++ b/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" }