[PATCH v4 14/19] crypto: talitos/aead - Use macro for algorithm definitions
Paul Louvel <[email protected]>
| Newsgroups | org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Replace the repetitive struct initializer entries with preprocessor macros. The fallback setkey assignment (aead_alg->setkey ?: aead_setkey) is replaced by specifying the correct setkey handler directly in each macro invocation. Reviewed-by: Christophe Leroy (CS GROUP) <[email protected]> Signed-off-by: Paul Louvel <[email protected]> --- drivers/crypto/talitos/talitos-aead.c | 679 +++++++++++----------------------- 1 file changed, 218 insertions(+), 461 deletions(-) diff --git a/drivers/crypto/talitos/talitos-aead.c b/drivers/crypto/talitos/talitos-aead.c index 5537f2b6317f..cd1b8e6d371b 100644 --- a/drivers/crypto/talitos/talitos-aead.c +++ b/drivers/crypto/talitos/talitos-aead.c @@ -405,463 +405,225 @@ static void talitos_cra_exit_aead(struct crypto_aead *tfm) talitos_cra_exit(crypto_aead_tfm(tfm)); } +#define TALITOS_AEAD_ALG_COMMON(name, name_prefix, set_key, block_size, \ + max_auth_size, template, priority) \ + { \ + .type = CRYPTO_ALG_TYPE_AEAD, \ + .alg.aead = { \ + .base = { \ + .cra_name = name, \ + .cra_driver_name = name"-talitos"name_prefix, \ + .cra_blocksize = block_size, \ + .cra_flags = CRYPTO_ALG_ASYNC | \ + CRYPTO_ALG_ALLOCATES_MEMORY | \ + CRYPTO_ALG_KERN_DRIVER_ONLY, \ + .cra_priority = (priority), \ + .cra_ctxsize = sizeof(struct talitos_ctx), \ + .cra_module = THIS_MODULE, \ + }, \ + .ivsize = block_size, \ + .maxauthsize = max_auth_size, \ + .setkey = set_key, \ + .init = talitos_cra_init_aead, \ + .exit = talitos_cra_exit_aead, \ + .encrypt = aead_encrypt, \ + .decrypt = aead_decrypt, \ + }, \ + .desc_hdr_template = template, \ + } + +#define TALITOS_AEAD_ALG(name, set_key, block_size, max_auth_size, template) \ + TALITOS_AEAD_ALG_COMMON(name, "", set_key, block_size, max_auth_size, \ + template, TALITOS_CRA_PRIORITY) + +#define TALITOS_AEAD_ALG_HSNA(name, set_key, block_size, max_auth_size, \ + template) \ + TALITOS_AEAD_ALG_COMMON(name, "-hsna", set_key, block_size, \ + max_auth_size, template, \ + TALITOS_CRA_PRIORITY_AEAD_HSNA) + static struct talitos_alg_template aead_driver_algs[] = { - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha1),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha1-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA1_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA1_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha1),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha1-" - "cbc-aes-talitos-hsna", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA1_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA1_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha1)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha1-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA1_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA1_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha1)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha1-" - "cbc-3des-talitos-hsna", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA1_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA1_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha224),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha224-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA224_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA224_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha224),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha224-" - "cbc-aes-talitos-hsna", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA224_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA224_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha224)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha224-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA224_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA224_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha224)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha224-" - "cbc-3des-talitos-hsna", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA224_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA224_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha256),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha256-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA256_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA256_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha256),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha256-" - "cbc-aes-talitos-hsna", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA256_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA256_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha256)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha256-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA256_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA256_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha256)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha256-" - "cbc-3des-talitos-hsna", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA256_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_SHA256_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha384),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha384-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA384_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUB | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEUB_SHA384_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha384)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha384-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA384_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUB | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEUB_SHA384_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha512),cbc(aes))", - .cra_driver_name = "authenc-hmac-sha512-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = SHA512_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUB | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEUB_SHA512_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(sha512)," - "cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-sha512-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = SHA512_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUB | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEUB_SHA512_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(md5),cbc(aes))", - .cra_driver_name = "authenc-hmac-md5-" - "cbc-aes-talitos", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = MD5_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_MD5_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(md5),cbc(aes))", - .cra_driver_name = "authenc-hmac-md5-" - "cbc-aes-talitos-hsna", - .cra_blocksize = AES_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = AES_BLOCK_SIZE, - .maxauthsize = MD5_DIGEST_SIZE, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_AESU | - DESC_HDR_MODE0_AESU_CBC | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_MD5_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(md5),cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-md5-" - "cbc-3des-talitos", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = MD5_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_IPSEC_ESP | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_MD5_HMAC, - }, - { .type = CRYPTO_ALG_TYPE_AEAD, - .priority = TALITOS_CRA_PRIORITY_AEAD_HSNA, - .alg.aead = { - .base = { - .cra_name = "authenc(hmac(md5),cbc(des3_ede))", - .cra_driver_name = "authenc-hmac-md5-" - "cbc-3des-talitos-hsna", - .cra_blocksize = DES3_EDE_BLOCK_SIZE, - .cra_flags = CRYPTO_ALG_ASYNC | - CRYPTO_ALG_ALLOCATES_MEMORY, - }, - .ivsize = DES3_EDE_BLOCK_SIZE, - .maxauthsize = MD5_DIGEST_SIZE, - .setkey = aead_des3_setkey, - }, - .desc_hdr_template = DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | - DESC_HDR_SEL0_DEU | - DESC_HDR_MODE0_DEU_CBC | - DESC_HDR_MODE0_DEU_3DES | - DESC_HDR_SEL1_MDEUA | - DESC_HDR_MODE1_MDEU_INIT | - DESC_HDR_MODE1_MDEU_PAD | - DESC_HDR_MODE1_MDEU_MD5_HMAC, - }, + /* AEAD algorithms. These use a single-pass ipsec_esp descriptor */ + + /* sha1 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(sha1),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, SHA1_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA1_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha1),cbc(aes))", aead_setkey, AES_BLOCK_SIZE, + SHA1_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA1_HMAC), + + TALITOS_AEAD_ALG("authenc(hmac(sha1),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA1_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | + DESC_HDR_MODE0_DEU_3DES | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA1_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha1),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA1_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA1_HMAC), + + /* sha224 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(sha224),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, SHA224_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA224_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha224),cbc(aes))", aead_setkey, AES_BLOCK_SIZE, + SHA224_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA224_HMAC), + + TALITOS_AEAD_ALG( + "authenc(hmac(sha224),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA224_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA224_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha224),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA224_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA224_HMAC), + + /* sha256 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(sha256),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, SHA256_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA256_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha256),cbc(aes))", aead_setkey, AES_BLOCK_SIZE, + SHA256_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA256_HMAC), + + TALITOS_AEAD_ALG( + "authenc(hmac(sha256),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA256_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA256_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(sha256),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA256_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_SHA256_HMAC), + + /* sha384 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(sha384),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, SHA384_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUB | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEUB_SHA384_HMAC), + + TALITOS_AEAD_ALG( + "authenc(hmac(sha384),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA384_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUB | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEUB_SHA384_HMAC), + + /* sha512 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(sha512),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, SHA512_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUB | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEUB_SHA512_HMAC), + + TALITOS_AEAD_ALG( + "authenc(hmac(sha512),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, SHA512_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUB | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEUB_SHA512_HMAC), + + /* md5 auth */ + + TALITOS_AEAD_ALG("authenc(hmac(md5),cbc(aes))", aead_setkey, + AES_BLOCK_SIZE, MD5_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_MD5_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(md5),cbc(aes))", aead_setkey, AES_BLOCK_SIZE, + MD5_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_AESU | + DESC_HDR_MODE0_AESU_CBC | DESC_HDR_SEL1_MDEUA | + DESC_HDR_MODE1_MDEU_INIT | DESC_HDR_MODE1_MDEU_PAD | + DESC_HDR_MODE1_MDEU_MD5_HMAC), + + TALITOS_AEAD_ALG( + "authenc(hmac(md5),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, MD5_DIGEST_SIZE, + DESC_HDR_TYPE_IPSEC_ESP | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | DESC_HDR_MODE1_MDEU_MD5_HMAC), + + TALITOS_AEAD_ALG_HSNA( + "authenc(hmac(md5),cbc(des3_ede))", aead_des3_setkey, + DES3_EDE_BLOCK_SIZE, MD5_DIGEST_SIZE, + DESC_HDR_TYPE_HMAC_SNOOP_NO_AFEU | DESC_HDR_SEL0_DEU | + DESC_HDR_MODE0_DEU_CBC | DESC_HDR_MODE0_DEU_3DES | + DESC_HDR_SEL1_MDEUA | DESC_HDR_MODE1_MDEU_INIT | + DESC_HDR_MODE1_MDEU_PAD | DESC_HDR_MODE1_MDEU_MD5_HMAC), }; int talitos_register_aead(struct device *dev) @@ -883,11 +645,6 @@ int talitos_register_aead(struct device *dev) if (has_ftr_sec1(priv)) alg->cra_alignmask = 3; - aead_alg->init = talitos_cra_init_aead; - aead_alg->exit = talitos_cra_exit_aead; - aead_alg->setkey = aead_alg->setkey ?: aead_setkey; - aead_alg->encrypt = aead_encrypt; - aead_alg->decrypt = aead_decrypt; if (!(priv->features & TALITOS_FTR_SHA224_HWINIT) && !strncmp(alg->cra_name, "authenc(hmac(sha224)", 20)) { continue; -- 2.55.0