]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
disable crypto algorithm if no key size is supported
authorAndreas Steffen <andreas.steffen@strongswan.org>
Sat, 25 Dec 2010 15:11:50 +0000 (16:11 +0100)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Sat, 25 Dec 2010 15:11:50 +0000 (16:11 +0100)
src/libstrongswan/crypto/crypto_tester.c

index 9c852c054cb69f34568f3bf86a4a9d40e9b12d7a..b4a29734a928319d90fedf71b6c136c09fdb61b6 100644 (file)
@@ -192,6 +192,7 @@ METHOD(crypto_tester_t, test_crypter, bool,
                        DBG1(DBG_LIB, "%N[%s]: %u bit key size not supported",
                                 encryption_algorithm_names, alg, plugin_name,
                                 BITS_PER_BYTE * vector->key_size);
+                       failed = TRUE;
                        continue;
                }
 
@@ -242,10 +243,19 @@ METHOD(crypto_tester_t, test_crypter, bool,
        enumerator->destroy(enumerator);
        if (!tested)
        {
-               DBG1(DBG_LIB, "%s %N[%s]: no test vectors found",
-                        this->required ? "disabled" : "enabled ",
-                        encryption_algorithm_names, alg, plugin_name);
-               return !this->required;
+               if (failed)
+               {
+                       DBG1(DBG_LIB,"disable %N[%s]: no key size supported",
+                                encryption_algorithm_names, alg, plugin_name);
+                       return FALSE;              
+               }
+               else
+               {
+                       DBG1(DBG_LIB, "%s %N[%s]: no test vectors found",
+                                this->required ? "disabled" : "enabled ",
+                                encryption_algorithm_names, alg, plugin_name);
+                       return !this->required;
+               }
        }
        if (!failed)
        {
@@ -402,10 +412,19 @@ METHOD(crypto_tester_t, test_aead, bool,
        enumerator->destroy(enumerator);
        if (!tested)
        {
-               DBG1(DBG_LIB, "%s %N[%s]: no test vectors found",
-                        this->required ? "disabled" : "enabled ",
-                        encryption_algorithm_names, alg, plugin_name);
-               return !this->required;
+               if (failed)
+               {
+                       DBG1(DBG_LIB,"disable %N[%s]: no key size supported",
+                                encryption_algorithm_names, alg, plugin_name);
+                       return FALSE;              
+               }
+               else
+               {
+                       DBG1(DBG_LIB, "%s %N[%s]: no test vectors found",
+                                this->required ? "disabled" : "enabled ",
+                                encryption_algorithm_names, alg, plugin_name);
+                       return !this->required;
+               }
        }
        if (!failed)
        {