diff options
Diffstat (limited to 'drivers/crypto/sunxi-ss')
| -rw-r--r-- | drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 26 | ||||
| -rw-r--r-- | drivers/crypto/sunxi-ss/sun4i-ss-core.c | 4 | ||||
| -rw-r--r-- | drivers/crypto/sunxi-ss/sun4i-ss.h | 2 | 
3 files changed, 8 insertions, 24 deletions
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c index 6f7cbf6c2b55..6536fd4bee65 100644 --- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c +++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c @@ -542,25 +542,11 @@ int sun4i_ss_des_setkey(struct crypto_skcipher *tfm, const u8 *key,  			unsigned int keylen)  {  	struct sun4i_tfm_ctx *op = crypto_skcipher_ctx(tfm); -	struct sun4i_ss_ctx *ss = op->ss; -	u32 flags; -	u32 tmp[DES_EXPKEY_WORDS]; -	int ret; - -	if (unlikely(keylen != DES_KEY_SIZE)) { -		dev_err(ss->dev, "Invalid keylen %u\n", keylen); -		crypto_skcipher_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN); -		return -EINVAL; -	} - -	flags = crypto_skcipher_get_flags(tfm); +	int err; -	ret = des_ekey(tmp, key); -	if (unlikely(!ret) && (flags & CRYPTO_TFM_REQ_FORBID_WEAK_KEYS)) { -		crypto_skcipher_set_flags(tfm, CRYPTO_TFM_RES_WEAK_KEY); -		dev_dbg(ss->dev, "Weak key %u\n", keylen); -		return -EINVAL; -	} +	err = verify_skcipher_des_key(tfm, key); +	if (err) +		return err;  	op->keylen = keylen;  	memcpy(op->key, key, keylen); @@ -578,8 +564,8 @@ int sun4i_ss_des3_setkey(struct crypto_skcipher *tfm, const u8 *key,  	struct sun4i_tfm_ctx *op = crypto_skcipher_ctx(tfm);  	int err; -	err = des3_verify_key(tfm, key); -	if (unlikely(err)) +	err = verify_skcipher_des3_key(tfm, key); +	if (err)  		return err;  	op->keylen = keylen; diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-core.c b/drivers/crypto/sunxi-ss/sun4i-ss-core.c index 2e8704271f45..9aa6fe081a27 100644 --- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c +++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c @@ -225,7 +225,6 @@ static struct sun4i_ss_alg_template ss_algs[] = {  static int sun4i_ss_probe(struct platform_device *pdev)  { -	struct resource *res;  	u32 v;  	int err, i;  	unsigned long cr; @@ -240,8 +239,7 @@ static int sun4i_ss_probe(struct platform_device *pdev)  	if (!ss)  		return -ENOMEM; -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -	ss->base = devm_ioremap_resource(&pdev->dev, res); +	ss->base = devm_platform_ioremap_resource(pdev, 0);  	if (IS_ERR(ss->base)) {  		dev_err(&pdev->dev, "Cannot request MMIO\n");  		return PTR_ERR(ss->base); diff --git a/drivers/crypto/sunxi-ss/sun4i-ss.h b/drivers/crypto/sunxi-ss/sun4i-ss.h index 8654d48aedc0..35a27a7145f8 100644 --- a/drivers/crypto/sunxi-ss/sun4i-ss.h +++ b/drivers/crypto/sunxi-ss/sun4i-ss.h @@ -29,7 +29,7 @@  #include <crypto/internal/hash.h>  #include <crypto/internal/skcipher.h>  #include <crypto/aes.h> -#include <crypto/des.h> +#include <crypto/internal/des.h>  #include <crypto/internal/rng.h>  #include <crypto/rng.h>  | 

