Skip to content

Commit

Permalink
ceph: add support for auth_x authentication protocol
Browse files Browse the repository at this point in the history
The auth_x protocol implements support for a kerberos-like mutual
authentication infrastructure used by Ceph.  We do not simply use vanilla
kerberos because of scalability and performance issues when dealing with
a large cluster of nodes providing a single logical service.

Auth_x provides mutual authentication of client and server and protects
against replay and man in the middle attacks.  It does not encrypt
the full session over the wire, however, so data payload may still be
snooped.

Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Sage Weil committed Feb 11, 2010
1 parent 07c8739 commit ec0994e
Show file tree
Hide file tree
Showing 5 changed files with 801 additions and 1 deletion.
1 change: 1 addition & 0 deletions fs/ceph/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ ceph-objs := super.o inode.o dir.o file.o addr.o ioctl.o \
debugfs.o \
auth.o auth_none.o \
crypto.o armor.o \
auth_x.o \
ceph_fs.o ceph_strings.o ceph_hash.o ceph_frag.o

else
Expand Down
6 changes: 5 additions & 1 deletion fs/ceph/auth.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

#include "types.h"
#include "auth_none.h"
#include "auth_x.h"
#include "decode.h"
#include "super.h"

Expand All @@ -14,14 +15,17 @@
* get protocol handler
*/
static u32 supported_protocols[] = {
CEPH_AUTH_NONE
CEPH_AUTH_NONE,
CEPH_AUTH_CEPHX
};

int ceph_auth_init_protocol(struct ceph_auth_client *ac, int protocol)
{
switch (protocol) {
case CEPH_AUTH_NONE:
return ceph_auth_none_init(ac);
case CEPH_AUTH_CEPHX:
return ceph_x_init(ac);
default:
return -ENOENT;
}
Expand Down
Loading

0 comments on commit ec0994e

Please sign in to comment.