You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
crypto: rockchip - switch to skcipher API
Commit 7a7ffe65c8 ("crypto: skcipher - Add top-level skcipher interface")
dated 20 august 2015 introduced the new skcipher API which is supposed to
replace both blkcipher and ablkcipher. While all consumers of the API have
been converted long ago, some producers of the ablkcipher remain, forcing
us to keep the ablkcipher support routines alive, along with the matching
code to expose [a]blkciphers via the skcipher API.
So switch this driver to the skcipher API, allowing us to finally drop the
ablkcipher code in the near future.
Cc: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
23a6564a6b
commit
ce0183cb64
@@ -1,5 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-$(CONFIG_CRYPTO_DEV_ROCKCHIP) += rk_crypto.o
|
||||
rk_crypto-objs := rk3288_crypto.o \
|
||||
rk3288_crypto_ablkcipher.o \
|
||||
rk3288_crypto_skcipher.o \
|
||||
rk3288_crypto_ahash.o
|
||||
|
||||
@@ -264,8 +264,8 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)
|
||||
for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
|
||||
rk_cipher_algs[i]->dev = crypto_info;
|
||||
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
|
||||
err = crypto_register_alg(
|
||||
&rk_cipher_algs[i]->alg.crypto);
|
||||
err = crypto_register_skcipher(
|
||||
&rk_cipher_algs[i]->alg.skcipher);
|
||||
else
|
||||
err = crypto_register_ahash(
|
||||
&rk_cipher_algs[i]->alg.hash);
|
||||
@@ -277,7 +277,7 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)
|
||||
err_cipher_algs:
|
||||
for (k = 0; k < i; k++) {
|
||||
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
|
||||
crypto_unregister_alg(&rk_cipher_algs[k]->alg.crypto);
|
||||
crypto_unregister_skcipher(&rk_cipher_algs[k]->alg.skcipher);
|
||||
else
|
||||
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
|
||||
}
|
||||
@@ -290,7 +290,7 @@ static void rk_crypto_unregister(void)
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
|
||||
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
|
||||
crypto_unregister_alg(&rk_cipher_algs[i]->alg.crypto);
|
||||
crypto_unregister_skcipher(&rk_cipher_algs[i]->alg.skcipher);
|
||||
else
|
||||
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/delay.h>
|
||||
#include <crypto/internal/hash.h>
|
||||
#include <crypto/internal/skcipher.h>
|
||||
|
||||
#include <crypto/md5.h>
|
||||
#include <crypto/sha.h>
|
||||
@@ -256,7 +257,7 @@ enum alg_type {
|
||||
struct rk_crypto_tmp {
|
||||
struct rk_crypto_info *dev;
|
||||
union {
|
||||
struct crypto_alg crypto;
|
||||
struct skcipher_alg skcipher;
|
||||
struct ahash_alg hash;
|
||||
} alg;
|
||||
enum alg_type type;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
538
drivers/crypto/rockchip/rk3288_crypto_skcipher.c
Normal file
538
drivers/crypto/rockchip/rk3288_crypto_skcipher.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user