summary refs log tree commit diff
path: root/crypto/cryptd.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2015-05-28 22:08:01 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2015-06-03 10:48:35 +0800
commit92b9876bdddb704d44ae29ef5da254b0a403d4af (patch)
treef807951422a110ff674abb7c003e590d92d767c0 /crypto/cryptd.c
parent0496f56065e00f6c3bfcefc4f9b5419847e4a8b5 (diff)
downloadlinux-92b9876bdddb704d44ae29ef5da254b0a403d4af.tar.gz
crypto: cryptd - Add setkey/setauthsize functions for AEAD
This patch adds setkey and setauthsize for cryptd AEAD.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/cryptd.c')
-rw-r--r--crypto/cryptd.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c
index 4264c8d9c97d..74c4dcbb198c 100644
--- a/crypto/cryptd.c
+++ b/crypto/cryptd.c
@@ -664,6 +664,24 @@ out_put_alg:
 	return err;
 }
 
+static int cryptd_aead_setkey(struct crypto_aead *parent,
+			      const u8 *key, unsigned int keylen)
+{
+	struct cryptd_aead_ctx *ctx = crypto_aead_ctx(parent);
+	struct crypto_aead *child = ctx->child;
+
+	return crypto_aead_setkey(child, key, keylen);
+}
+
+static int cryptd_aead_setauthsize(struct crypto_aead *parent,
+				   unsigned int authsize)
+{
+	struct cryptd_aead_ctx *ctx = crypto_aead_ctx(parent);
+	struct crypto_aead *child = ctx->child;
+
+	return crypto_aead_setauthsize(child, authsize);
+}
+
 static void cryptd_aead_crypt(struct aead_request *req,
 			struct crypto_aead *child,
 			int err,
@@ -793,8 +811,8 @@ static int cryptd_create_aead(struct crypto_template *tmpl,
 	inst->alg.cra_ctxsize = sizeof(struct cryptd_aead_ctx);
 	inst->alg.cra_init = cryptd_aead_init_tfm;
 	inst->alg.cra_exit = cryptd_aead_exit_tfm;
-	inst->alg.cra_aead.setkey      = alg->cra_aead.setkey;
-	inst->alg.cra_aead.setauthsize = alg->cra_aead.setauthsize;
+	inst->alg.cra_aead.setkey      = cryptd_aead_setkey;
+	inst->alg.cra_aead.setauthsize = cryptd_aead_setauthsize;
 	inst->alg.cra_aead.geniv       = alg->cra_aead.geniv;
 	inst->alg.cra_aead.ivsize      = alg->cra_aead.ivsize;
 	inst->alg.cra_aead.maxauthsize = alg->cra_aead.maxauthsize;