ipsec: Use skcipher and ahash when probing algorithms
authorHerbert Xu <herbert@gondor.apana.org.au>
Sun, 24 Jan 2016 13:19:11 +0000 (21:19 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 27 Jan 2016 12:36:07 +0000 (20:36 +0800)
This patch removes the last reference to hash and ablkcipher from
IPsec and replaces them with ahash and skcipher respectively.  For
skcipher there is currently no difference at all, while for ahash
the current code is actually buggy and would prevent asynchronous
algorithms from being discovered.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: David S. Miller <davem@davemloft.net>
net/xfrm/xfrm_algo.c

index f07224d8b88f6a2479de02ce944181edcd2576ab..250e567ba3d636c8f9103a7949b7d1b5208b77ee 100644 (file)
@@ -9,6 +9,8 @@
  * any later version.
  */
 
+#include <crypto/hash.h>
+#include <crypto/skcipher.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/pfkeyv2.h>
@@ -782,14 +784,13 @@ void xfrm_probe_algs(void)
        BUG_ON(in_softirq());
 
        for (i = 0; i < aalg_entries(); i++) {
-               status = crypto_has_hash(aalg_list[i].name, 0,
-                                        CRYPTO_ALG_ASYNC);
+               status = crypto_has_ahash(aalg_list[i].name, 0, 0);
                if (aalg_list[i].available != status)
                        aalg_list[i].available = status;
        }
 
        for (i = 0; i < ealg_entries(); i++) {
-               status = crypto_has_ablkcipher(ealg_list[i].name, 0, 0);
+               status = crypto_has_skcipher(ealg_list[i].name, 0, 0);
                if (ealg_list[i].available != status)
                        ealg_list[i].available = status;
        }