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