Commit 25fb8638 authored by Stephan Mueller's avatar Stephan Mueller Committed by Herbert Xu

crypto: af_alg - add setsockopt for auth tag size

Use setsockopt on the tfm FD to provide the authentication tag size for
an AEAD cipher. This is achieved by adding a callback function which is
intended to be used by the AEAD AF_ALG implementation.

The optlen argument of the setsockopt specifies the authentication tag
size to be used with the AEAD tfm.
Signed-off-by: default avatarStephan Mueller <smueller@chronox.de>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 905b42e5
...@@ -215,6 +215,13 @@ static int alg_setsockopt(struct socket *sock, int level, int optname, ...@@ -215,6 +215,13 @@ static int alg_setsockopt(struct socket *sock, int level, int optname,
goto unlock; goto unlock;
err = alg_setkey(sk, optval, optlen); err = alg_setkey(sk, optval, optlen);
break;
case ALG_SET_AEAD_AUTHSIZE:
if (sock->state == SS_CONNECTED)
goto unlock;
if (!type->setauthsize)
goto unlock;
err = type->setauthsize(ask->private, optlen);
} }
unlock: unlock:
......
...@@ -50,6 +50,7 @@ struct af_alg_type { ...@@ -50,6 +50,7 @@ struct af_alg_type {
void (*release)(void *private); void (*release)(void *private);
int (*setkey)(void *private, const u8 *key, unsigned int keylen); int (*setkey)(void *private, const u8 *key, unsigned int keylen);
int (*accept)(void *private, struct sock *sk); int (*accept)(void *private, struct sock *sk);
int (*setauthsize)(void *private, unsigned int authsize);
struct proto_ops *ops; struct proto_ops *ops;
struct module *owner; struct module *owner;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment