]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
copy greet to greet_client
authorLuke Howard <lukeh@padl.com>
Wed, 26 Aug 2009 11:00:29 +0000 (11:00 +0000)
committerLuke Howard <lukeh@padl.com>
Wed, 26 Aug 2009 11:00:29 +0000 (11:00 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/users/lhoward/authdata@22616 dc483132-0cff-0310-8789-dd5450dbe970

src/plugins/authdata/greet_client/Makefile.in [new file with mode: 0644]
src/plugins/authdata/greet_client/deps [new file with mode: 0644]
src/plugins/authdata/greet_client/greet.exports [new file with mode: 0644]
src/plugins/authdata/greet_client/greet_auth.c [new file with mode: 0644]

diff --git a/src/plugins/authdata/greet_client/Makefile.in b/src/plugins/authdata/greet_client/Makefile.in
new file mode 100644 (file)
index 0000000..1c71c45
--- /dev/null
@@ -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 (file)
index 0000000..b754fcf
--- /dev/null
@@ -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 (file)
index 0000000..1189eff
--- /dev/null
@@ -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 (file)
index 0000000..91b9a69
--- /dev/null
@@ -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 <string.h>
+#include <errno.h>
+#include <krb5/authdata_plugin.h>
+
+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,
+};