diff options
author | Jeff Layton <jlayton@redhat.com> | 2007-11-03 00:48:29 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-11-03 00:48:29 -0400 |
commit | 09fe7ba78dedb9017401ed555ecc4435c99a7556 (patch) | |
tree | 145fc0688723fb5083da5c3f25efd40cd1c1e559 | |
parent | 745542e210b3b15751ea9d511321924ac36b85db (diff) |
[CIFS] implement upcalls for SPNEGO blob via keyctl API
Add routines to handle upcalls to userspace via keyctl for the purpose
of getting a SPNEGO blob for a particular uid and server combination.
Clean up the Makefile a bit and set it up to only compile cifs_spnego
if CONFIG_CIFS_UPCALL is set. Also change CONFIG_CIFS_UPCALL to depend
on CONFIG_KEYS rather than CONFIG_CONNECTOR.
cifs_spnego.h defines the communications between kernel and userspace
and is intended to be shared with userspace programs.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
-rw-r--r-- | fs/Kconfig | 2 | ||||
-rw-r--r-- | fs/cifs/Makefile | 7 | ||||
-rw-r--r-- | fs/cifs/cifsproto.h | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/fs/Kconfig b/fs/Kconfig index cc28a69246a7..e431c38a7262 100644 --- a/fs/Kconfig +++ b/fs/Kconfig | |||
@@ -2007,7 +2007,7 @@ config CIFS_EXPERIMENTAL | |||
2007 | config CIFS_UPCALL | 2007 | config CIFS_UPCALL |
2008 | bool "Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)" | 2008 | bool "Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)" |
2009 | depends on CIFS_EXPERIMENTAL | 2009 | depends on CIFS_EXPERIMENTAL |
2010 | depends on CONNECTOR | 2010 | depends on KEYS |
2011 | help | 2011 | help |
2012 | Enables an upcall mechanism for CIFS which will be used to contact | 2012 | Enables an upcall mechanism for CIFS which will be used to contact |
2013 | userspace helper utilities to provide SPNEGO packaged Kerberos | 2013 | userspace helper utilities to provide SPNEGO packaged Kerberos |
diff --git a/fs/cifs/Makefile b/fs/cifs/Makefile index ff6ba8d823f0..45e42fb97c19 100644 --- a/fs/cifs/Makefile +++ b/fs/cifs/Makefile | |||
@@ -3,4 +3,9 @@ | |||
3 | # | 3 | # |
4 | obj-$(CONFIG_CIFS) += cifs.o | 4 | obj-$(CONFIG_CIFS) += cifs.o |
5 | 5 | ||
6 | cifs-objs := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o fcntl.o readdir.o ioctl.o sess.o export.o cifsacl.o | 6 | cifs-y := cifsfs.o cifssmb.o cifs_debug.o connect.o dir.o file.o inode.o \ |
7 | link.o misc.o netmisc.o smbdes.o smbencrypt.o transport.o asn1.o \ | ||
8 | md4.o md5.o cifs_unicode.o nterr.o xattr.o cifsencrypt.o fcntl.o \ | ||
9 | readdir.o ioctl.o sess.o export.o cifsacl.o | ||
10 | |||
11 | cifs-$(CONFIG_CIFS_UPCALL) += cifs_spnego.o | ||
diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h index 1ffe25592b25..dd1d7c200ee6 100644 --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h | |||
@@ -76,6 +76,8 @@ extern void header_assemble(struct smb_hdr *, char /* command */ , | |||
76 | extern int small_smb_init_no_tc(const int smb_cmd, const int wct, | 76 | extern int small_smb_init_no_tc(const int smb_cmd, const int wct, |
77 | struct cifsSesInfo *ses, | 77 | struct cifsSesInfo *ses, |
78 | void **request_buf); | 78 | void **request_buf); |
79 | extern struct key *cifs_get_spnego_key(struct cifsSesInfo *sesInfo, | ||
80 | const char *hostname); | ||
79 | extern int CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, | 81 | extern int CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, |
80 | const int stage, | 82 | const int stage, |
81 | const struct nls_table *nls_cp); | 83 | const struct nls_table *nls_cp); |