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 <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

Reply via email to