Browse Source

Fix in `snifftest` to try loading private key into static ephemeral and private key. Updated pcap files (were missing TCP packets).

David Garske 3 years ago
parent
commit
e6017de19d

+ 3 - 0
scripts/sniffer-testsuite.test

@@ -2,6 +2,9 @@
 
 #sniffer-testsuite.test
 
+# ./configure --enable-sniffer [--enable-session-ticket]
+# Resumption tests require "--enable-session-ticket"
+
 echo -e "\nStaring snifftest on testsuite.pcap...\n"
 ./sslSniffer/sslSnifferTest/snifftest ./scripts/testsuite.pcap ./certs/server-key.pem 127.0.0.1 11111
 

BIN
scripts/sniffer-tls13-dh.pcap


BIN
scripts/sniffer-tls13-ecc.pcap


+ 19 - 10
sslSniffer/sslSnifferTest/snifftest.c

@@ -491,7 +491,8 @@ int main(int argc, char** argv)
         }
         else {
             const char* passwd = NULL;
-            int isEphemeralKey = 0;
+            int loadCount = 0;
+
             /* defaults for server and port */
             port = 443;
             server = "127.0.0.1";
@@ -505,23 +506,31 @@ int main(int argc, char** argv)
             if (argc >= 6)
                 passwd = argv[5];
 
-            if (argc >= 7)
-                isEphemeralKey = 1;
-
-            if (isEphemeralKey) {
-                ret = ssl_SetEphemeralKey(server, port, argv[2],
-                                    FILETYPE_PEM, passwd, err);
+            /* try and load as both static ephemeral and private key */
+            /* only fail if no key is loaded */
+        #ifdef WOLFSSL_STATIC_EPHEMERAL
+            ret = ssl_SetEphemeralKey(server, port, argv[2],
+                                FILETYPE_PEM, passwd, err);
+            if (ret == 0)
+                loadCount++;
+        #endif
+            ret = ssl_SetPrivateKey(server, port, argv[2],
+                                FILETYPE_PEM, passwd, err);
+            if (ret == 0)
+                loadCount++;
+            if (loadCount > 0) {
+                ret = 0;
             }
             else {
-                ret = ssl_SetPrivateKey(server, port, argv[2],
-                                    FILETYPE_PEM, passwd, err);
+                printf("Failed loading private key %d\n", ret);
+                exit(EXIT_FAILURE);
             }
         }
     }
     else {
         /* usage error */
         printf( "usage: ./snifftest or ./snifftest dump pemKey"
-                " [server] [port] [password] [isEphemeral]\n");
+                " [server] [port] [password]\n");
         exit(EXIT_FAILURE);
     }