Fix 12 Boring tests involving NULL-SHA ciphersuites
authorMatt Caswell <matt@openssl.org>
Tue, 14 Mar 2017 14:16:19 +0000 (14:16 +0000)
committerMatt Caswell <matt@openssl.org>
Tue, 14 Mar 2017 14:29:31 +0000 (14:29 +0000)
The Boring runner attempts to enable the NULL-SHA ciphersuite using the
cipherstring "DEFAULT:NULL-SHA". However in OpenSSL DEFAULT permanently
switches off NULL ciphersuites, so we fix this up to be "ALL:NULL-SHA"
instead. We can't change the runner so we have to change the shim to
detect this.

(Merged from https://github.com/openssl/openssl/pull/2933)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
test/ossl_shim/ossl_config.json
test/ossl_shim/test_config.cc

index e34208260375b69e192ce2346305cfebdc8d66e9..cdde095347a285d82d8c60c39b05c7dd12c2a821 100644 (file)
         "KeyUpdate-Server":"Test failure - reason unknown",
         "SSL3-ECDHE-PSK-AES128-CBC-SHA-server":"Test failure - reason unknown",
         "SSL3-ECDHE-PSK-AES256-CBC-SHA-server":"Test failure - reason unknown",
-        "SSL3-NULL-SHA-server":"Test failure - reason unknown",
-        "SSL3-NULL-SHA-client":"Test failure - reason unknown",
-        "SSL3-NULL-SHA-LargeRecord":"Test failure - reason unknown",
-        "SSL3-NULL-SHA-BadRecord":"Test failure - reason unknown",
-        "TLS1-NULL-SHA-server":"Test failure - reason unknown",
-        "TLS1-NULL-SHA-LargeRecord":"Test failure - reason unknown",
-        "TLS1-NULL-SHA-BadRecord":"Test failure - reason unknown",
-        "TLS11-NULL-SHA-server":"Test failure - reason unknown",
-        "TLS1-NULL-SHA-client":"Test failure - reason unknown",
-        "TLS11-NULL-SHA-client":"Test failure - reason unknown",
-        "TLS11-NULL-SHA-LargeRecord":"Test failure - reason unknown",
-        "TLS12-NULL-SHA-client":"Test failure - reason unknown",
-        "TLS12-NULL-SHA-server":"Test failure - reason unknown",
-        "TLS12-NULL-SHA-LargeRecord":"Test failure - reason unknown",
-        "TLS11-NULL-SHA-BadRecord":"Test failure - reason unknown",
-        "TLS12-NULL-SHA-BadRecord":"Test failure - reason unknown",
+        "DTLS1-NULL-SHA-server":"Test failure - reason unknown",
+        "DTLS1-NULL-SHA-client":"Test failure - reason unknown",
+        "DTLS12-NULL-SHA-client":"Test failure - reason unknown",
+        "DTLS12-NULL-SHA-server":"Test failure - reason unknown",
         "BadECDSA-1-4":"Test failure - reason unknown",
         "BadECDSA-3-4":"Test failure - reason unknown",
         "BadECDSA-4-1":"Test failure - reason unknown",
index 0fe7ba81a4ac7892d4eaa9cd150ae0f640862ea0..6e43c8da771fcb53abea9974789d878158404b35 100644 (file)
@@ -133,12 +133,26 @@ bool ParseConfig(int argc, char **argv, TestConfig *out_config) {
 
     std::string *string_field = FindField(out_config, kStringFlags, argv[i]);
     if (string_field != NULL) {
+      const char *val;
+
       i++;
       if (i >= argc) {
         fprintf(stderr, "Missing parameter\n");
         return false;
       }
-      string_field->assign(argv[i]);
+
+      /*
+       * Fix up the -cipher argument. runner uses "DEFAULT:NULL-SHA" to enable
+       * the NULL-SHA cipher. However in OpenSSL "DEFAULT" permanently switches
+       * off NULL ciphers, so we use "ALL:NULL-SHA" instead.
+       */
+      if (strcmp(argv[i - 1], "-cipher") == 0
+          && strcmp(argv[i], "DEFAULT:NULL-SHA") == 0)
+        val = "ALL:NULL-SHA";
+      else
+        val = argv[i];
+
+      string_field->assign(val);
       continue;
     }