On Tue, May 21, 2019 at 12:00:34PM +0200, Ondrej Mosnacek wrote:
>
> @@ -256,6 +362,48 @@ static int alg_setsockopt(struct socket *sock, int
> level, int optname,
> goto unlock;
>
> err = alg_setkey(sk, optval, optlen);
> +#ifdef CONFIG_KEYS
> + break;
> + case ALG_SET_KEY_KEYRING_LOGON:
> + if (sock->state == SS_CONNECTED)
> + goto unlock;
> + if (!type->setkey)
> + goto unlock;
> +
> + err = alg_setkey_keyring(sk, &alg_keyring_type_logon,
> + optval, optlen);
> + break;
> + case ALG_SET_KEY_KEYRING_USER:
> + if (sock->state == SS_CONNECTED)
> + goto unlock;
> + if (!type->setkey)
> + goto unlock;
> +
> + err = alg_setkey_keyring(sk, &alg_keyring_type_user,
> + optval, optlen);
> +#if IS_REACHABLE(CONFIG_TRUSTED_KEYS)
> + break;
> + case ALG_SET_KEY_KEYRING_TRUSTED:
> + if (sock->state == SS_CONNECTED)
> + goto unlock;
> + if (!type->setkey)
> + goto unlock;
> +
> + err = alg_setkey_keyring(sk, &alg_keyring_type_trusted,
> + optval, optlen);
> +#endif
> +#if IS_REACHABLE(CONFIG_ENCRYPTED_KEYS)
> + break;
> + case ALG_SET_KEY_KEYRING_ENCRYPTED:
> + if (sock->state == SS_CONNECTED)
> + goto unlock;
> + if (!type->setkey)
> + goto unlock;
> +
> + err = alg_setkey_keyring(sk, &alg_keyring_type_encrypted,
> + optval, optlen);
> +#endif
> +#endif /* CONFIG_KEYS */
> break;
What's with the funky placement of "break" outside of the ifdefs?
> diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h
> index bc2bcdec377b..f2d777901f00 100644
> --- a/include/uapi/linux/if_alg.h
> +++ b/include/uapi/linux/if_alg.h
> @@ -35,6 +35,13 @@ struct af_alg_iv {
> #define ALG_SET_OP 3
> #define ALG_SET_AEAD_ASSOCLEN 4
> #define ALG_SET_AEAD_AUTHSIZE 5
> +#define ALG_SET_PUBKEY 6 /* reserved for future use */
> +#define ALG_SET_DH_PARAMETERS 7 /* reserved for future use */
> +#define ALG_SET_ECDH_CURVE 8 /* reserved for future use */
Why do you need to reserve these values?
Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt