OSDN Git Service

crypto: ccree - add SM4 protected keys support
authorGilad Ben-Yossef <gilad@benyossef.com>
Thu, 18 Apr 2019 13:38:42 +0000 (16:38 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 25 Apr 2019 07:38:13 +0000 (15:38 +0800)
Add the registration for the SM4 based policy protected keys ciphers.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccree/cc_cipher.c

index d1754d1..8acedba 100644 (file)
@@ -1578,6 +1578,42 @@ static const struct cc_alg_template skcipher_algs[] = {
                .min_hw_rev = CC_HW_REV_713,
                .std_body = CC_STD_OSCCA,
        },
+       {
+               .name = "cbc(psm4)",
+               .driver_name = "cbc-psm4-ccree",
+               .blocksize = SM4_BLOCK_SIZE,
+               .template_skcipher = {
+                       .setkey = cc_cipher_sethkey,
+                       .encrypt = cc_cipher_encrypt,
+                       .decrypt = cc_cipher_decrypt,
+                       .min_keysize = CC_HW_KEY_SIZE,
+                       .max_keysize = CC_HW_KEY_SIZE,
+                       .ivsize = SM4_BLOCK_SIZE,
+                       },
+               .cipher_mode = DRV_CIPHER_CBC,
+               .flow_mode = S_DIN_to_SM4,
+               .min_hw_rev = CC_HW_REV_713,
+               .std_body = CC_STD_OSCCA,
+               .sec_func = true,
+       },
+       {
+               .name = "ctr(psm4)",
+               .driver_name = "ctr-psm4-ccree",
+               .blocksize = SM4_BLOCK_SIZE,
+               .template_skcipher = {
+                       .setkey = cc_cipher_sethkey,
+                       .encrypt = cc_cipher_encrypt,
+                       .decrypt = cc_cipher_decrypt,
+                       .min_keysize = CC_HW_KEY_SIZE,
+                       .max_keysize = CC_HW_KEY_SIZE,
+                       .ivsize = SM4_BLOCK_SIZE,
+                       },
+               .cipher_mode = DRV_CIPHER_CTR,
+               .flow_mode = S_DIN_to_SM4,
+               .min_hw_rev = CC_HW_REV_713,
+               .std_body = CC_STD_OSCCA,
+               .sec_func = true,
+       },
 };
 
 static struct cc_crypto_alg *cc_create_alg(const struct cc_alg_template *tmpl,