mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
crypto: rockchip: v2: modify the algos supported by each platform
1. add sha224/sha384 support. 2. XTS mode was removed due to panic on some platforms(RV1126 kernel 4.19). Signed-off-by: Lin Jinhan <troy.lin@rock-chips.com> Change-Id: I339cb21c6abefa684f9d36e8faaa04d6ab43d3b1
This commit is contained in:
@@ -658,6 +658,7 @@ config CRYPTO_DEV_ROCKCHIP
|
||||
select CRYPTO_SM3
|
||||
select CRYPTO_SM4
|
||||
select CRYPTO_SHA256
|
||||
select CRTPTO_SHA512
|
||||
select CRYPTO_HASH
|
||||
select CRYPTO_SKCIPHER
|
||||
select CRYPTO_RSA
|
||||
|
||||
@@ -569,7 +569,9 @@ static struct rk_crypto_algt *crypto_v2_algs[] = {
|
||||
&rk_v2_ofb_des3_ede_alg, /* ofb(des3_ede) */
|
||||
|
||||
&rk_v2_ahash_sha1, /* sha1 */
|
||||
&rk_v2_ahash_sha224, /* sha224 */
|
||||
&rk_v2_ahash_sha256, /* sha256 */
|
||||
&rk_v2_ahash_sha384, /* sha384 */
|
||||
&rk_v2_ahash_sha512, /* sha512 */
|
||||
&rk_v2_ahash_md5, /* md5 */
|
||||
&rk_v2_ahash_sm3, /* sm3 */
|
||||
@@ -583,16 +585,18 @@ static struct rk_crypto_algt *crypto_v2_algs[] = {
|
||||
&rk_v2_asym_rsa, /* rsa */
|
||||
};
|
||||
|
||||
static char *px30_algs_name[] = {
|
||||
"ecb(aes)", "cbc(aes)", "xts(aes)",
|
||||
"ecb(des)", "cbc(des)",
|
||||
"ecb(des3_ede)", "cbc(des3_ede)",
|
||||
"sha1", "sha256", "sha512", "md5",
|
||||
static char *crypto_no_sm_algs_name[] = {
|
||||
"ecb(aes)", "cbc(aes)", "cfb(aes)", "ofb(aes)", "ctr(aes)",
|
||||
"ecb(des)", "cbc(des)", "cfb(des)", "ofb(des)",
|
||||
"ecb(des3_ede)", "cbc(des3_ede)", "cfb(des3_ede)", "ofb(des3_ede)",
|
||||
"sha1", "sha224", "sha256", "sha384", "sha512", "md5",
|
||||
"hmac(sha1)", "hmac(sha256)", "hmac(sha512)", "hmac(md5)",
|
||||
"rsa"
|
||||
};
|
||||
|
||||
static char *crypto_full_algs_name[] = {
|
||||
"ecb(sm4)", "cbc(sm4)", "cfb(sm4)", "ofb(sm4)", "ctr(sm4)", "xts(sm4)",
|
||||
"ecb(aes)", "cbc(aes)", "cfb(aes)", "ofb(aes)", "ctr(aes)", "xts(aes)",
|
||||
static char *crypto_rv1126_algs_name[] = {
|
||||
"ecb(sm4)", "cbc(sm4)", "cfb(sm4)", "ofb(sm4)", "ctr(sm4)",
|
||||
"ecb(aes)", "cbc(aes)", "cfb(aes)", "ofb(aes)", "ctr(aes)",
|
||||
"ecb(des)", "cbc(des)", "cfb(des)", "ofb(des)",
|
||||
"ecb(des3_ede)", "cbc(des3_ede)", "cfb(des3_ede)", "ofb(des3_ede)",
|
||||
"sha1", "sha256", "sha512", "md5", "sm3",
|
||||
@@ -600,11 +604,21 @@ static char *crypto_full_algs_name[] = {
|
||||
"rsa"
|
||||
};
|
||||
|
||||
static char *crypto_full_algs_name[] = {
|
||||
"ecb(sm4)", "cbc(sm4)", "cfb(sm4)", "ofb(sm4)", "ctr(sm4)",
|
||||
"ecb(aes)", "cbc(aes)", "cfb(aes)", "ofb(aes)", "ctr(aes)",
|
||||
"ecb(des)", "cbc(des)", "cfb(des)", "ofb(des)",
|
||||
"ecb(des3_ede)", "cbc(des3_ede)", "cfb(des3_ede)", "ofb(des3_ede)",
|
||||
"sha1", "sha224", "sha256", "sha384", "sha512", "md5", "sm3",
|
||||
"hmac(sha1)", "hmac(sha256)", "hmac(sha512)", "hmac(md5)", "hmac(sm3)",
|
||||
"rsa"
|
||||
};
|
||||
|
||||
static const struct rk_crypto_soc_data px30_soc_data =
|
||||
RK_CRYPTO_V2_SOC_DATA_INIT(px30_algs_name, false);
|
||||
RK_CRYPTO_V2_SOC_DATA_INIT(crypto_no_sm_algs_name, false);
|
||||
|
||||
static const struct rk_crypto_soc_data rv1126_soc_data =
|
||||
RK_CRYPTO_V2_SOC_DATA_INIT(crypto_full_algs_name, true);
|
||||
RK_CRYPTO_V2_SOC_DATA_INIT(crypto_rv1126_algs_name, true);
|
||||
|
||||
static const struct rk_crypto_soc_data full_soc_data =
|
||||
RK_CRYPTO_V2_SOC_DATA_INIT(crypto_full_algs_name, false);
|
||||
|
||||
@@ -44,6 +44,10 @@
|
||||
#define RK_BUFFER_ORDER 3
|
||||
#define RK_BUFFER_SIZE (PAGE_SIZE << RK_BUFFER_ORDER)
|
||||
|
||||
#define RK_DMA_ALIGNMENT 64
|
||||
#define sha384_state sha512_state
|
||||
#define sha224_state sha256_state
|
||||
|
||||
struct rk_crypto_soc_data {
|
||||
char **valid_algs_name;
|
||||
int valid_algs_num;
|
||||
@@ -189,7 +193,9 @@ struct rk_crypto_algt {
|
||||
enum rk_hash_algo {
|
||||
HASH_ALGO_MD5,
|
||||
HASH_ALGO_SHA1,
|
||||
HASH_ALGO_SHA224,
|
||||
HASH_ALGO_SHA256,
|
||||
HASH_ALGO_SHA384,
|
||||
HASH_ALGO_SHA512,
|
||||
HASH_ALGO_SM3,
|
||||
};
|
||||
|
||||
@@ -48,7 +48,9 @@ extern struct rk_crypto_algt rk_v2_cfb_des3_ede_alg;
|
||||
extern struct rk_crypto_algt rk_v2_ofb_des3_ede_alg;
|
||||
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sha1;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sha224;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sha256;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sha384;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sha512;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_md5;
|
||||
extern struct rk_crypto_algt rk_v2_ahash_sm3;
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
static const u32 hash_algo2bc[] = {
|
||||
[HASH_ALGO_MD5] = CRYPTO_MD5,
|
||||
[HASH_ALGO_SHA1] = CRYPTO_SHA1,
|
||||
[HASH_ALGO_SHA224] = CRYPTO_SHA224,
|
||||
[HASH_ALGO_SHA256] = CRYPTO_SHA256,
|
||||
[HASH_ALGO_SHA384] = CRYPTO_SHA384,
|
||||
[HASH_ALGO_SHA512] = CRYPTO_SHA512,
|
||||
[HASH_ALGO_SM3] = CRYPTO_SM3,
|
||||
};
|
||||
@@ -31,7 +33,9 @@ static const u32 hash_algo2bc[] = {
|
||||
const char *hash_algo2name[] = {
|
||||
[HASH_ALGO_MD5] = "md5",
|
||||
[HASH_ALGO_SHA1] = "sha1",
|
||||
[HASH_ALGO_SHA224] = "sha224",
|
||||
[HASH_ALGO_SHA256] = "sha256",
|
||||
[HASH_ALGO_SHA384] = "sha384",
|
||||
[HASH_ALGO_SHA512] = "sha512",
|
||||
[HASH_ALGO_SM3] = "sm3",
|
||||
};
|
||||
@@ -563,7 +567,9 @@ static void rk_cra_hash_exit(struct crypto_tfm *tfm)
|
||||
|
||||
struct rk_crypto_algt rk_v2_ahash_md5 = RK_HASH_ALGO_INIT(MD5, md5);
|
||||
struct rk_crypto_algt rk_v2_ahash_sha1 = RK_HASH_ALGO_INIT(SHA1, sha1);
|
||||
struct rk_crypto_algt rk_v2_ahash_sha224 = RK_HASH_ALGO_INIT(SHA224, sha224);
|
||||
struct rk_crypto_algt rk_v2_ahash_sha256 = RK_HASH_ALGO_INIT(SHA256, sha256);
|
||||
struct rk_crypto_algt rk_v2_ahash_sha384 = RK_HASH_ALGO_INIT(SHA384, sha384);
|
||||
struct rk_crypto_algt rk_v2_ahash_sha512 = RK_HASH_ALGO_INIT(SHA512, sha512);
|
||||
struct rk_crypto_algt rk_v2_ahash_sm3 = RK_HASH_ALGO_INIT(SM3, sm3);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user