aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/crypto/Kconfig2
-rw-r--r--drivers/crypto/hifn_795x.c11
2 files changed, 12 insertions, 1 deletions
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 1ef7697fc998..c2de1351819f 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -85,9 +85,9 @@ config ZCRYPT_MONOLITHIC
85 85
86config CRYPTO_DEV_HIFN_795X 86config CRYPTO_DEV_HIFN_795X
87 tristate "Driver HIFN 795x crypto accelerator chips" 87 tristate "Driver HIFN 795x crypto accelerator chips"
88 select CRYPTO_DES
88 select CRYPTO_ALGAPI 89 select CRYPTO_ALGAPI
89 select CRYPTO_ABLKCIPHER 90 select CRYPTO_ABLKCIPHER
90 select CRYPTO_BLKCIPHER
91 help 91 help
92 This option allows you to have support for HIFN 795x crypto adapters. 92 This option allows you to have support for HIFN 795x crypto adapters.
93 93
diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index e3376f2236b2..391c20a3dff8 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -29,6 +29,7 @@
29#include <linux/crypto.h> 29#include <linux/crypto.h>
30 30
31#include <crypto/algapi.h> 31#include <crypto/algapi.h>
32#include <crypto/des.h>
32 33
33#include <asm/kmap_types.h> 34#include <asm/kmap_types.h>
34 35
@@ -1924,6 +1925,16 @@ static int hifn_setkey(struct crypto_ablkcipher *cipher, const u8 *key,
1924 return -1; 1925 return -1;
1925 } 1926 }
1926 1927
1928 if (len == HIFN_DES_KEY_LENGTH) {
1929 u32 tmp[DES_EXPKEY_WORDS];
1930 int ret = des_ekey(tmp, key);
1931
1932 if (unlikely(ret == 0) && (tfm->crt_flags & CRYPTO_TFM_REQ_WEAK_KEY)) {
1933 tfm->crt_flags |= CRYPTO_TFM_RES_WEAK_KEY;
1934 return -EINVAL;
1935 }
1936 }
1937
1927 dev->flags &= ~HIFN_FLAG_OLD_KEY; 1938 dev->flags &= ~HIFN_FLAG_OLD_KEY;
1928 1939
1929 memcpy(ctx->key, key, len); 1940 memcpy(ctx->key, key, len);