aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/file.c6
-rw-r--r--client/internal.h4
-rw-r--r--client/keytab.c9
-rw-r--r--client/krb5.c15
-rw-r--r--client/remctl.c5
-rw-r--r--client/srvtab.c10
-rw-r--r--client/wallet.c8
7 files changed, 31 insertions, 26 deletions
diff --git a/client/file.c b/client/file.c
index 670a30d..c9edf3a 100644
--- a/client/file.c
+++ b/client/file.c
@@ -2,7 +2,7 @@
* File handling for the wallet client.
*
* Written by Russ Allbery <rra@stanford.edu>
- * Copyright 2007, 2008 Board of Trustees, Leland Stanford Jr. University
+ * Copyright 2007, 2008, 2010 Board of Trustees, Leland Stanford Jr. University
*
* See LICENSE for licensing terms.
*/
@@ -15,7 +15,9 @@
#include <sys/stat.h>
#include <client/internal.h>
-#include <util/util.h>
+#include <util/concat.h>
+#include <util/messages.h>
+#include <util/xmalloc.h>
/*
* Given a filename, some data, and a length, write that data to the given
diff --git a/client/internal.h b/client/internal.h
index e48616a..7fe962b 100644
--- a/client/internal.h
+++ b/client/internal.h
@@ -2,7 +2,7 @@
* Internal support functions for the wallet client.
*
* Written by Russ Allbery <rra@stanford.edu>
- * Copyright 2007, 2008 Board of Trustees, Leland Stanford Jr. University
+ * Copyright 2007, 2008, 2010 Board of Trustees, Leland Stanford Jr. University
*
* See LICENSE for licensing terms.
*/
@@ -11,8 +11,8 @@
#define CLIENT_INTERNAL_H 1
#include <portable/macros.h>
+#include <portable/krb5.h>
-#include <krb5.h>
#include <sys/types.h>
/* Forward declarations to avoid unnecessary includes. */
diff --git a/client/keytab.c b/client/keytab.c
index 393ce3c..5f2076f 100644
--- a/client/keytab.c
+++ b/client/keytab.c
@@ -8,12 +8,15 @@
*/
#include <config.h>
+#include <portable/krb5.h>
#include <portable/system.h>
#include <remctl.h>
#include <client/internal.h>
-#include <util/util.h>
+#include <util/concat.h>
+#include <util/messages-krb5.h>
+#include <util/messages.h>
/*
@@ -47,11 +50,7 @@ merge_keytab(krb5_context ctx, const char *newfile, const char *file)
status = krb5_kt_add_entry(ctx, old, &entry);
if (status != 0)
die_krb5(ctx, status, "cannot write to keytab %s", file);
-#ifdef HAVE_KRB5_KT_FREE_ENTRY
krb5_kt_free_entry(ctx, &entry);
-#else
- krb5_free_keytab_entry_contents(ctx, &entry);
-#endif
}
if (status != KRB5_KT_END)
die_krb5(ctx, status, "error reading temporary keytab %s", newfile);
diff --git a/client/krb5.c b/client/krb5.c
index 3698dd3..38172ae 100644
--- a/client/krb5.c
+++ b/client/krb5.c
@@ -15,7 +15,8 @@
#include <krb5.h>
#include <client/internal.h>
-#include <util/util.h>
+#include <util/messages-krb5.h>
+#include <util/messages.h>
/*
@@ -29,7 +30,7 @@ kinit(krb5_context ctx, const char *principal)
krb5_principal princ;
krb5_ccache ccache;
krb5_creds creds;
- krb5_get_init_creds_opt opts;
+ krb5_get_init_creds_opt *opts;
krb5_error_code status;
char cache_name[] = "/tmp/krb5cc_wallet_XXXXXX";
int fd;
@@ -38,17 +39,21 @@ kinit(krb5_context ctx, const char *principal)
status = krb5_parse_name(ctx, principal, &princ);
if (status != 0)
die_krb5(ctx, status, "invalid Kerberos principal %s", principal);
- krb5_get_init_creds_opt_init(&opts);
+ status = krb5_get_init_creds_opt_alloc(ctx, &opts);
+ if (status != 0)
+ die_krb5(ctx, status, "cannot allocate credential options");
+ krb5_get_init_creds_opt_set_default_flags(ctx, "wallet", princ->realm,
+ opts);
memset(&creds, 0, sizeof(creds));
status = krb5_get_init_creds_password(ctx, &creds, princ, NULL,
- krb5_prompter_posix, NULL, 0, NULL, &opts);
+ krb5_prompter_posix, NULL, 0, NULL, opts);
if (status != 0)
die_krb5(ctx, status, "authentication failed");
/* Put the new credentials into a ticket cache. */
fd = mkstemp(cache_name);
if (fd < 0)
- sysdie("cannot create temporary ticket cache", cache_name);
+ sysdie("cannot create temporary ticket cache %s", cache_name);
status = krb5_cc_resolve(ctx, cache_name, &ccache);
if (status != 0)
die_krb5(ctx, status, "cannot create cache %s", cache_name);
diff --git a/client/remctl.c b/client/remctl.c
index 8dfeb0a..a4ff097 100644
--- a/client/remctl.c
+++ b/client/remctl.c
@@ -2,7 +2,7 @@
* remctl interface for the wallet client.
*
* Written by Russ Allbery <rra@stanford.edu>
- * Copyright 2007 Board of Trustees, Leland Stanford Jr. University
+ * Copyright 2007, 2010 Board of Trustees, Leland Stanford Jr. University
*
* See LICENSE for licensing terms.
*/
@@ -13,7 +13,8 @@
#include <remctl.h>
#include <client/internal.h>
-#include <util/util.h>
+#include <util/messages.h>
+#include <util/xmalloc.h>
/*
diff --git a/client/srvtab.c b/client/srvtab.c
index 5b52955..b26e6fc 100644
--- a/client/srvtab.c
+++ b/client/srvtab.c
@@ -8,12 +8,12 @@
*/
#include <config.h>
+#include <portable/krb5.h>
#include <portable/system.h>
-#include <krb5.h>
-
#include <client/internal.h>
-#include <util/util.h>
+#include <util/messages-krb5.h>
+#include <util/messages.h>
#ifndef KRB5_KRB4_COMPAT
# define ANAME_SZ 40
@@ -87,11 +87,7 @@ write_srvtab(krb5_context ctx, const char *srvtab, const char *principal,
memcpy(data + length, entry.key.contents, 8);
#endif
length += 8;
-#ifdef HAVE_KRB5_KT_FREE_ENTRY
krb5_kt_free_entry(ctx, &entry);
-#else
- krb5_free_keytab_entry_contents(ctx, &entry);
-#endif
/* Write out the srvtab file. */
write_file(srvtab, data, length);
diff --git a/client/wallet.c b/client/wallet.c
index 4225d45..ce0f4e7 100644
--- a/client/wallet.c
+++ b/client/wallet.c
@@ -2,21 +2,23 @@
* The client program for the wallet system.
*
* Written by Russ Allbery <rra@stanford.edu>
- * Copyright 2006, 2007, 2008
+ * Copyright 2006, 2007, 2008, 2010
* Board of Trustees, Leland Stanford Jr. University
*
* See LICENSE for licensing terms.
*/
#include <config.h>
+#include <portable/krb5.h>
#include <portable/system.h>
#include <errno.h>
-#include <krb5.h>
#include <remctl.h>
#include <client/internal.h>
-#include <util/util.h>
+#include <util/messages-krb5.h>
+#include <util/messages.h>
+#include <util/xmalloc.h>
/*
* Basic wallet behavior options set either on the command line or via