From: Luke Howard Date: Wed, 26 Aug 2009 11:00:29 +0000 (+0000) Subject: copy greet to greet_client X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dce0643eab8fa34e4f2626728bea457955ecddab;p=thirdparty%2Fkrb5.git copy greet to greet_client git-svn-id: svn://anonsvn.mit.edu/krb5/users/lhoward/authdata@22616 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/plugins/authdata/greet_client/Makefile.in b/src/plugins/authdata/greet_client/Makefile.in new file mode 100644 index 0000000000..1c71c4521a --- /dev/null +++ b/src/plugins/authdata/greet_client/Makefile.in @@ -0,0 +1,39 @@ +thisconfigdir=../../.. +myfulldir=plugins/authdata/greet +mydir=plugins/authdata/greet +BUILDTOP=$(REL)..$(S)..$(S).. +KRB5_RUN_ENV = @KRB5_RUN_ENV@ +KRB5_CONFIG_SETUP = KRB5_CONFIG=$(SRCTOP)/config-files/krb5.conf ; export KRB5_CONFIG ; +PROG_LIBPATH=-L$(TOPLIBD) +PROG_RPATH=$(KRB5_LIBDIR) +MODULE_INSTALL_DIR = $(KRB5_AD_MODULE_DIR) +DEFS=@DEFS@ + +LOCALINCLUDES = -I../../../include/krb5 + +LIBBASE=greet +LIBMAJOR=0 +LIBMINOR=0 +SO_EXT=.so +#RELDIR=../plugins/preauth/wpse +# Depends on nothing +SHLIB_EXPDEPS = +SHLIB_EXPLIBS= + +SHLIB_DIRS=-L$(TOPLIBD) +SHLIB_RDIRS=$(KRB5_LIBDIR) +STOBJLISTS=OBJS.ST +STLIBOBJS= greet_auth.o + +SRCS= greet_auth.c + +all-unix:: all-liblinks +install-unix:: install-libs +clean-unix:: clean-libs clean-libobjs + +clean:: + $(RM) lib$(LIBBASE)$(SO_EXT) + +@libnover_frag@ +@libobj_frag@ + diff --git a/src/plugins/authdata/greet_client/deps b/src/plugins/authdata/greet_client/deps new file mode 100644 index 0000000000..b754fcff91 --- /dev/null +++ b/src/plugins/authdata/greet_client/deps @@ -0,0 +1,6 @@ +# +# Generated makefile dependencies follow. +# +greet_auth.so greet_auth.po $(OUTPRE)greet_auth.$(OBJEXT): \ + $(BUILDTOP)/include/krb5/krb5.h $(COM_ERR_DEPS) $(SRCTOP)/include/krb5/authdata_plugin.h \ + greet_auth.c diff --git a/src/plugins/authdata/greet_client/greet.exports b/src/plugins/authdata/greet_client/greet.exports new file mode 100644 index 0000000000..1189effc30 --- /dev/null +++ b/src/plugins/authdata/greet_client/greet.exports @@ -0,0 +1 @@ +authdata_server_0 diff --git a/src/plugins/authdata/greet_client/greet_auth.c b/src/plugins/authdata/greet_client/greet_auth.c new file mode 100644 index 0000000000..91b9a697fb --- /dev/null +++ b/src/plugins/authdata/greet_client/greet_auth.c @@ -0,0 +1,97 @@ +/* + * plugins/authdata/greet/ + * + * Copyright 2008 by the Massachusetts Institute of Technology. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * + * Sample authorization data plugin + */ + +#include +#include +#include + +typedef struct krb5_db_entry krb5_db_entry; + +static krb5_error_code +greet_init(krb5_context ctx, void **blob) +{ + *blob = "hello"; + return 0; +} + +static void +greet_fini(krb5_context ctx, void *blob) +{ +} + +static krb5_error_code +greet_authdata(krb5_context ctx, krb5_db_entry *client, + krb5_data *req_pkt, + krb5_kdc_req *request, + krb5_enc_tkt_part * enc_tkt_reply) +{ +#define GREET_SIZE (20) + + char *p; + krb5_authdata *a; + size_t count; + krb5_authdata **new_ad; + + p = calloc(1, GREET_SIZE); + a = calloc(1, sizeof(*a)); + + if (p == NULL || a == NULL) { + free(p); + free(a); + return ENOMEM; + } + strncpy(p, "hello there", GREET_SIZE-1); + a->magic = KV5M_AUTHDATA; + a->ad_type = -42; + a->length = GREET_SIZE; + a->contents = (unsigned char *)p; + if (enc_tkt_reply->authorization_data == 0) { + count = 0; + } else { + for (count = 0; enc_tkt_reply->authorization_data[count] != 0; count++) + ; + } + new_ad = realloc(enc_tkt_reply->authorization_data, + (count+2) * sizeof(krb5_authdata *)); + if (new_ad == NULL) { + free(p); + free(a); + return ENOMEM; + } + enc_tkt_reply->authorization_data = new_ad; + new_ad[count] = a; + new_ad[count+1] = NULL; + return 0; +} + +krb5plugin_authdata_ftable_v0 authdata_server_0 = { + "greet", + greet_init, + greet_fini, + greet_authdata, +};