|
|
@@ -325,6 +325,23 @@ static struct skcipher_alg aes_algs[] = { {
|
|
|
.setkey = skcipher_aes_setkey,
|
|
|
.encrypt = ctr_encrypt,
|
|
|
.decrypt = ctr_encrypt,
|
|
|
+}, {
|
|
|
+ .base = {
|
|
|
+ .cra_name = "ctr(aes)",
|
|
|
+ .cra_driver_name = "ctr-aes-" MODE,
|
|
|
+ .cra_priority = PRIO - 1,
|
|
|
+ .cra_blocksize = 1,
|
|
|
+ .cra_ctxsize = sizeof(struct crypto_aes_ctx),
|
|
|
+ .cra_alignmask = 7,
|
|
|
+ .cra_module = THIS_MODULE,
|
|
|
+ },
|
|
|
+ .min_keysize = AES_MIN_KEY_SIZE,
|
|
|
+ .max_keysize = AES_MAX_KEY_SIZE,
|
|
|
+ .ivsize = AES_BLOCK_SIZE,
|
|
|
+ .chunksize = AES_BLOCK_SIZE,
|
|
|
+ .setkey = skcipher_aes_setkey,
|
|
|
+ .encrypt = ctr_encrypt,
|
|
|
+ .decrypt = ctr_encrypt,
|
|
|
}, {
|
|
|
.base = {
|
|
|
.cra_name = "__xts(aes)",
|
|
|
@@ -350,8 +367,9 @@ static void aes_exit(void)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; i < ARRAY_SIZE(aes_simd_algs) && aes_simd_algs[i]; i++)
|
|
|
- simd_skcipher_free(aes_simd_algs[i]);
|
|
|
+ for (i = 0; i < ARRAY_SIZE(aes_simd_algs); i++)
|
|
|
+ if (aes_simd_algs[i])
|
|
|
+ simd_skcipher_free(aes_simd_algs[i]);
|
|
|
|
|
|
crypto_unregister_skciphers(aes_algs, ARRAY_SIZE(aes_algs));
|
|
|
}
|
|
|
@@ -370,6 +388,9 @@ static int __init aes_init(void)
|
|
|
return err;
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(aes_algs); i++) {
|
|
|
+ if (!(aes_algs[i].base.cra_flags & CRYPTO_ALG_INTERNAL))
|
|
|
+ continue;
|
|
|
+
|
|
|
algname = aes_algs[i].base.cra_name + 2;
|
|
|
drvname = aes_algs[i].base.cra_driver_name + 2;
|
|
|
basename = aes_algs[i].base.cra_driver_name;
|