summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/admin
diff options
context:
space:
mode:
authorassar <assar@FreeBSD.org>2001-02-13 16:46:19 +0000
committerassar <assar@FreeBSD.org>2001-02-13 16:46:19 +0000
commit3a971fe69aad52dfd248901ae796e64a96ae3e37 (patch)
treeac7b5c62510ffa9f0316643bcb19a3fed3d5bef7 /crypto/heimdal/admin
parent2934fc23653f64b32f4db32233d7eda11ca274f0 (diff)
parentebfe6dc471c206300fd82c7c0fd145f683aa52f6 (diff)
downloadFreeBSD-src-3a971fe69aad52dfd248901ae796e64a96ae3e37.zip
FreeBSD-src-3a971fe69aad52dfd248901ae796e64a96ae3e37.tar.gz
This commit was generated by cvs2svn to compensate for changes in r72445,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'crypto/heimdal/admin')
-rw-r--r--crypto/heimdal/admin/Makefile.am8
-rw-r--r--crypto/heimdal/admin/Makefile.in298
-rw-r--r--crypto/heimdal/admin/change.c4
-rw-r--r--crypto/heimdal/admin/copy.c198
-rw-r--r--crypto/heimdal/admin/get.c22
-rw-r--r--crypto/heimdal/admin/ktutil.846
-rw-r--r--crypto/heimdal/admin/ktutil.c15
-rw-r--r--crypto/heimdal/admin/list.c132
-rw-r--r--crypto/heimdal/admin/purge.c19
9 files changed, 472 insertions, 270 deletions
diff --git a/crypto/heimdal/admin/Makefile.am b/crypto/heimdal/admin/Makefile.am
index 2b9d5b9..f6eca74 100644
--- a/crypto/heimdal/admin/Makefile.am
+++ b/crypto/heimdal/admin/Makefile.am
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.30 2000/01/06 08:02:37 assar Exp $
+# $Id: Makefile.am,v 1.33 2000/12/16 00:16:45 joda Exp $
include $(top_srcdir)/Makefile.am.common
@@ -15,14 +15,12 @@ ktutil_SOURCES = add.c \
ktutil.c \
list.c \
purge.c \
- remove.c \
- srvconvert.c \
- srvcreate.c
+ remove.c
LDADD = \
$(top_builddir)/lib/kadm5/libkadm5clnt.la \
$(top_builddir)/lib/krb5/libkrb5.la \
- $(top_builddir)/lib/des/libdes.la \
+ $(LIB_des) \
$(top_builddir)/lib/asn1/libasn1.la \
$(top_builddir)/lib/sl/libsl.la \
$(LIB_readline) \
diff --git a/crypto/heimdal/admin/Makefile.in b/crypto/heimdal/admin/Makefile.in
index 52665a5..9c192ad 100644
--- a/crypto/heimdal/admin/Makefile.in
+++ b/crypto/heimdal/admin/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4a from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-9, 2000 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -10,15 +10,6 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# $Id: Makefile.am,v 1.30 2000/01/06 08:02:37 assar Exp $
-
-
-# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $
-
-
-# $Id: Makefile.am.common,v 1.13 1999/11/01 03:19:58 assar Exp $
-
-
SHELL = @SHELL@
srcdir = @srcdir@
@@ -40,8 +31,6 @@ mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
-DESTDIR =
-
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
@@ -54,9 +43,10 @@ AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
@@ -65,26 +55,39 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+
+@SET_MAKE@
host_alias = @host_alias@
host_triplet = @host@
-AFS_EXTRA_LD = @AFS_EXTRA_LD@
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
+AMDEP = @AMDEP@
+AMTAR = @AMTAR@
+AS = @AS@
AWK = @AWK@
CANONICAL_HOST = @CANONICAL_HOST@
CATMAN = @CATMAN@
CATMANEXT = @CATMANEXT@
CC = @CC@
+CPP = @CPP@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
DBLIB = @DBLIB@
+DEPDIR = @DEPDIR@
+DIR_des = @DIR_des@
+DIR_roken = @DIR_roken@
+DLLTOOL = @DLLTOOL@
EXEEXT = @EXEEXT@
EXTRA_LIB45 = @EXTRA_LIB45@
GROFF = @GROFF@
+INCLUDES_roken = @INCLUDES_roken@
INCLUDE_ = @INCLUDE_@
-LD = @LD@
LEX = @LEX@
LIBOBJS = @LIBOBJS@
LIBTOOL = @LIBTOOL@
LIB_ = @LIB_@
LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
+LIB_des = @LIB_des@
+LIB_des_appl = @LIB_des_appl@
LIB_kdb = @LIB_kdb@
LIB_otp = @LIB_otp@
LIB_roken = @LIB_roken@
@@ -92,31 +95,43 @@ LIB_security = @LIB_security@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
-MAKE_X_PROGS_BIN_PROGS = @MAKE_X_PROGS_BIN_PROGS@
-MAKE_X_PROGS_BIN_SCRPTS = @MAKE_X_PROGS_BIN_SCRPTS@
-MAKE_X_PROGS_LIBEXEC_PROGS = @MAKE_X_PROGS_LIBEXEC_PROGS@
NEED_WRITEAUTH_FALSE = @NEED_WRITEAUTH_FALSE@
NEED_WRITEAUTH_TRUE = @NEED_WRITEAUTH_TRUE@
-NM = @NM@
NROFF = @NROFF@
+OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
+STRIP = @STRIP@
VERSION = @VERSION@
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
WFLAGS = @WFLAGS@
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
YACC = @YACC@
+dpagaix_CFLAGS = @dpagaix_CFLAGS@
+dpagaix_LDADD = @dpagaix_LDADD@
+install_sh = @install_sh@
+
+# $Id: Makefile.am,v 1.33 2000/12/16 00:16:45 joda Exp $
+
+
+# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $
+
+
+# $Id: Makefile.am.common,v 1.23 2000/12/05 09:11:09 joda Exp $
+
AUTOMAKE_OPTIONS = foreign no-dependencies
SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x
-INCLUDES = -I$(top_builddir)/include $(INCLUDE_readline)
+INCLUDES = -I$(top_builddir)/include $(INCLUDES_roken) $(INCLUDE_readline)
AM_CFLAGS = $(WFLAGS)
+CP = cp
+
COMPILE_ET = $(top_builddir)/lib/com_err/compile_et
buildinclude = $(top_builddir)/include
@@ -136,6 +151,7 @@ LIB_getsockopt = @LIB_getsockopt@
LIB_logout = @LIB_logout@
LIB_logwtmp = @LIB_logwtmp@
LIB_odm_initialize = @LIB_odm_initialize@
+LIB_pidfile = @LIB_pidfile@
LIB_readline = @LIB_readline@
LIB_res_search = @LIB_res_search@
LIB_setpcred = @LIB_setpcred@
@@ -144,6 +160,8 @@ LIB_socket = @LIB_socket@
LIB_syslog = @LIB_syslog@
LIB_tgetent = @LIB_tgetent@
+LIBS = @LIBS@
+
HESIODLIB = @HESIODLIB@
HESIODINCLUDE = @HESIODINCLUDE@
INCLUDE_hesiod = @INCLUDE_hesiod@
@@ -152,24 +170,20 @@ LIB_hesiod = @LIB_hesiod@
INCLUDE_krb4 = @INCLUDE_krb4@
LIB_krb4 = @LIB_krb4@
+INCLUDE_openldap = @INCLUDE_openldap@
+LIB_openldap = @LIB_openldap@
+
INCLUDE_readline = @INCLUDE_readline@
LEXLIB = @LEXLIB@
-cat1dir = $(mandir)/cat1
-cat3dir = $(mandir)/cat3
-cat5dir = $(mandir)/cat5
-cat8dir = $(mandir)/cat8
-
-MANRX = \(.*\)\.\([0-9]\)
-CATSUFFIX = @CATSUFFIX@
-
NROFF_MAN = groff -mandoc -Tascii
-@KRB4_TRUE@LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
+@KRB4_TRUE@LIB_kafs = @KRB4_TRUE@$(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
-@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/asn1/libasn1.la
-@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
+@KRB5_TRUE@LIB_krb5 = @KRB5_TRUE@$(top_builddir)/lib/krb5/libkrb5.la \
+@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
+@KRB5_TRUE@LIB_gssapi = @KRB5_TRUE@$(top_builddir)/lib/gssapi/libgssapi.la
CHECK_LOCAL = $(PROGRAMS)
@@ -177,11 +191,26 @@ man_MANS = ktutil.8
sbin_PROGRAMS = ktutil
-ktutil_SOURCES = add.c change.c copy.c get.c ktutil.c list.c purge.c remove.c srvconvert.c srvcreate.c
-
-
-LDADD = $(top_builddir)/lib/kadm5/libkadm5clnt.la $(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/des/libdes.la $(top_builddir)/lib/asn1/libasn1.la $(top_builddir)/lib/sl/libsl.la $(LIB_readline) $(LIB_roken)
+ktutil_SOURCES = add.c \
+ change.c \
+ copy.c \
+ get.c \
+ ktutil.c \
+ list.c \
+ purge.c \
+ remove.c
+
+
+LDADD = \
+ $(top_builddir)/lib/kadm5/libkadm5clnt.la \
+ $(top_builddir)/lib/krb5/libkrb5.la \
+ $(LIB_des) \
+ $(top_builddir)/lib/asn1/libasn1.la \
+ $(top_builddir)/lib/sl/libsl.la \
+ $(LIB_readline) \
+ $(LIB_roken)
+subdir = admin
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../include/config.h
CONFIG_CLEAN_FILES =
@@ -192,39 +221,40 @@ PROGRAMS = $(sbin_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir) -I../include
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
X_CFLAGS = @X_CFLAGS@
X_LIBS = @X_LIBS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
-ktutil_OBJECTS = add.$(OBJEXT) change.$(OBJEXT) copy.$(OBJEXT) \
+am_ktutil_OBJECTS = add.$(OBJEXT) change.$(OBJEXT) copy.$(OBJEXT) \
get.$(OBJEXT) ktutil.$(OBJEXT) list.$(OBJEXT) purge.$(OBJEXT) \
-remove.$(OBJEXT) srvconvert.$(OBJEXT) srvcreate.$(OBJEXT)
+remove.$(OBJEXT)
+ktutil_OBJECTS = $(am_ktutil_OBJECTS)
ktutil_LDADD = $(LDADD)
ktutil_DEPENDENCIES = $(top_builddir)/lib/kadm5/libkadm5clnt.la \
-$(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/des/libdes.la \
-$(top_builddir)/lib/asn1/libasn1.la $(top_builddir)/lib/sl/libsl.la
+$(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/asn1/libasn1.la \
+$(top_builddir)/lib/sl/libsl.la
ktutil_LDFLAGS =
-CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CFLAGS = @CFLAGS@
CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(ktutil_SOURCES)
man8dir = $(mandir)/man8
MANS = $(man_MANS)
+depcomp =
DIST_COMMON = Makefile.am Makefile.in
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
GZIP_ENV = --best
SOURCES = $(ktutil_SOURCES)
-OBJECTS = $(ktutil_OBJECTS)
+OBJECTS = $(am_ktutil_OBJECTS)
all: all-redirect
.SUFFIXES:
-.SUFFIXES: .1 .3 .5 .8 .S .c .cat1 .cat3 .cat5 .cat8 .et .h .lo .o .obj .s .x
+.SUFFIXES: .1 .3 .5 .8 .c .cat1 .cat3 .cat5 .cat8 .et .h .lo .o .obj .x
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common
cd $(top_srcdir) && $(AUTOMAKE) --foreign admin/Makefile
@@ -247,31 +277,20 @@ install-sbinPROGRAMS: $(sbin_PROGRAMS)
$(mkinstalldirs) $(DESTDIR)$(sbindir)
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/$$f"; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(sbindir)/$$f; \
else :; fi; \
done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
- list='$(sbin_PROGRAMS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+ f="`echo $$p|sed -e 's/$(EXEEXT)$$//' -e '$(transform)' -e 's/$$/$(EXEEXT)/'`"; \
+ echo " rm -f $(DESTDIR)$(sbindir)/$$f"; \
+ rm -f $(DESTDIR)$(sbindir)/$$f; \
done
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
mostlyclean-compile:
-rm -f *.o core *.core
-rm -f *.$(OBJEXT)
@@ -283,15 +302,6 @@ distclean-compile:
maintainer-clean-compile:
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
mostlyclean-libtool:
-rm -f *.lo
@@ -305,6 +315,12 @@ maintainer-clean-libtool:
ktutil$(EXEEXT): $(ktutil_OBJECTS) $(ktutil_DEPENDENCIES)
@rm -f ktutil$(EXEEXT)
$(LINK) $(ktutil_LDFLAGS) $(ktutil_OBJECTS) $(ktutil_LDADD) $(LIBS)
+.c.o:
+ $(COMPILE) -c $<
+.c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+.c.lo:
+ $(LTCOMPILE) -c -o $@ $<
install-man8:
$(mkinstalldirs) $(DESTDIR)$(man8dir)
@@ -319,6 +335,7 @@ install-man8:
else file=$$i; fi; \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
@@ -334,6 +351,7 @@ uninstall-man8:
for i in $$list; do \
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
rm -f $(DESTDIR)$(man8dir)/$$inst; \
@@ -347,23 +365,27 @@ uninstall-man:
tags: TAGS
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
+ mkid -fID $$unique $(LISP)
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
+ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
mostlyclean-tags:
@@ -376,17 +398,16 @@ maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-subdir = admin
-
distdir: $(DISTFILES)
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
else \
test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
@@ -415,7 +436,7 @@ uninstall: uninstall-am
all-am: Makefile $(PROGRAMS) $(MANS) all-local
all-redirect: all-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
@@ -429,6 +450,7 @@ distclean-generic:
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
+ -rm -f Makefile.in
mostlyclean-am: mostlyclean-sbinPROGRAMS mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags \
mostlyclean-generic
@@ -466,7 +488,7 @@ distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check-local check check-am installcheck-am installcheck \
install-exec-am install-exec install-data-local install-data-am \
install-data install-am install uninstall-am uninstall all-local \
-all-redirect all-am all installdirs mostlyclean-generic \
+all-redirect all-am all install-strip installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
@@ -476,7 +498,10 @@ install-suid-programs:
for file in $$foo; do \
x=$(DESTDIR)$(bindir)/$$file; \
if chown 0:0 $$x && chmod u+s $$x; then :; else \
- chmod 0 $$x; fi; done
+ echo "*"; \
+ echo "* Failed to install $$x setuid root"; \
+ echo "*"; \
+ fi; done
install-exec-hook: install-suid-programs
@@ -488,8 +513,8 @@ install-build-headers:: $(include_HEADERS) $(build_HEADERZ)
else file="$$f"; fi; \
if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
: ; else \
- echo " cp $$file $(buildinclude)/$$f"; \
- cp $$file $(buildinclude)/$$f; \
+ echo " $(CP) $$file $(buildinclude)/$$f"; \
+ $(CP) $$file $(buildinclude)/$$f; \
fi ; \
done
@@ -558,87 +583,8 @@ dist-cat8-mans:
dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
-install-cat1-mans:
- @ext=1;\
- foo='$(man1_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.1) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat1dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat1/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat3-mans:
- @ext=3;\
- foo='$(man3_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.3) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat3dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat3/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat5-mans:
- @ext=5;\
- foo='$(man5_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.5) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat5dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat5/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat8-mans:
- @ext=8;\
- foo='$(man8_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.8) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat8dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat8/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat-mans: install-cat1-mans install-cat3-mans install-cat5-mans install-cat8-mans
+install-cat-mans:
+ $(SHELL) $(top_srcdir)/cf/install-catman.sh "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS)
install-data-local: install-cat-mans
diff --git a/crypto/heimdal/admin/change.c b/crypto/heimdal/admin/change.c
index 3de4f86..128395a 100644
--- a/crypto/heimdal/admin/change.c
+++ b/crypto/heimdal/admin/change.c
@@ -33,7 +33,7 @@
#include "ktutil_locl.h"
-RCSID("$Id: change.c,v 1.1 2000/01/02 04:41:00 assar Exp $");
+RCSID("$Id: change.c,v 1.2 2000/06/03 12:24:03 assar Exp $");
static void
change_entry (krb5_context context, krb5_keytab_entry *entry,
@@ -158,7 +158,7 @@ kt_change (int argc, char **argv)
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
if(ret){
- krb5_warn(context, ret, "krb5_kt_start_seq_get");
+ krb5_warn(context, ret, "krb5_kt_start_seq_get %s", keytab_string);
return 1;
}
diff --git a/crypto/heimdal/admin/copy.c b/crypto/heimdal/admin/copy.c
index d846610..d2b5069 100644
--- a/crypto/heimdal/admin/copy.c
+++ b/crypto/heimdal/admin/copy.c
@@ -33,17 +33,105 @@
#include "ktutil_locl.h"
-RCSID("$Id: copy.c,v 1.1 2000/01/02 04:41:01 assar Exp $");
+RCSID("$Id: copy.c,v 1.5 2000/12/16 00:45:29 joda Exp $");
+
+
+static krb5_boolean
+compare_keyblock(const krb5_keyblock *a, const krb5_keyblock *b)
+{
+ if(a->keytype != b->keytype ||
+ a->keyvalue.length != b->keyvalue.length ||
+ memcmp(a->keyvalue.data, b->keyvalue.data, a->keyvalue.length) != 0)
+ return FALSE;
+ return TRUE;
+}
+
+static int
+kt_copy_int (const char *from, const char *to)
+{
+ krb5_error_code ret;
+ krb5_keytab src_keytab, dst_keytab;
+ krb5_kt_cursor cursor;
+ krb5_keytab_entry entry, dummy;
+
+ ret = krb5_kt_resolve (context, from, &src_keytab);
+ if (ret) {
+ krb5_warn (context, ret, "resolving src keytab `%s'", from);
+ return 0;
+ }
+
+ ret = krb5_kt_resolve (context, to, &dst_keytab);
+ if (ret) {
+ krb5_kt_close (context, src_keytab);
+ krb5_warn (context, ret, "resolving dst keytab `%s'", to);
+ return 0;
+ }
+
+ ret = krb5_kt_start_seq_get (context, src_keytab, &cursor);
+ if (ret) {
+ krb5_warn (context, ret, "krb5_kt_start_seq_get %s", keytab_string);
+ goto fail;
+ }
+
+ while((ret = krb5_kt_next_entry(context, src_keytab,
+ &entry, &cursor)) == 0) {
+ char *name_str;
+ char *etype_str;
+ krb5_unparse_name (context, entry.principal, &name_str);
+ krb5_enctype_to_string(context, entry.keyblock.keytype, &etype_str);
+ ret = krb5_kt_get_entry(context, dst_keytab,
+ entry.principal,
+ entry.vno,
+ entry.keyblock.keytype,
+ &dummy);
+ if(ret == 0) {
+ /* this entry is already in the new keytab, so no need to
+ copy it; if the keyblocks are not the same, something
+ is weird, so complain about that */
+ if(!compare_keyblock(&entry.keyblock, &dummy.keyblock)) {
+ krb5_warnx(context, "entry with different keyvalue "
+ "already exists for %s, keytype %s, kvno %d",
+ name_str, etype_str, entry.vno);
+ }
+ krb5_kt_free_entry(context, &dummy);
+ krb5_kt_free_entry (context, &entry);
+ free(name_str);
+ free(etype_str);
+ continue;
+ } else if(ret != KRB5_KT_NOTFOUND) {
+ krb5_warn(context, ret, "krb5_kt_get_entry(%s)", name_str);
+ krb5_kt_free_entry (context, &entry);
+ free(name_str);
+ free(etype_str);
+ break;
+ }
+ if (verbose_flag)
+ fprintf (stderr, "copying %s, keytype %s, kvno %d\n", name_str,
+ etype_str, entry.vno);
+ ret = krb5_kt_add_entry (context, dst_keytab, &entry);
+ krb5_kt_free_entry (context, &entry);
+ if (ret) {
+ krb5_warn (context, ret, "krb5_kt_add_entry(%s)", name_str);
+ free(name_str);
+ free(etype_str);
+ break;
+ }
+ free(name_str);
+ free(etype_str);
+ }
+ krb5_kt_end_seq_get (context, src_keytab, &cursor);
+
+ fail:
+ krb5_kt_close (context, src_keytab);
+ krb5_kt_close (context, dst_keytab);
+ return 0;
+}
int
kt_copy (int argc, char **argv)
{
- krb5_error_code ret;
int help_flag = 0;
int optind = 0;
- krb5_keytab src_keytab, dst_keytab;
- krb5_kt_cursor cursor;
- krb5_keytab_entry entry;
struct getargs args[] = {
{ "help", 'h', arg_flag, NULL}
@@ -53,6 +141,7 @@ kt_copy (int argc, char **argv)
int i = 0;
args[i++].value = &help_flag;
+ args[i++].value = &verbose_flag;
if(getarg(args, num_args, argc, argv, &optind)) {
arg_printusage(args, num_args, "ktutil copy",
@@ -74,46 +163,83 @@ kt_copy (int argc, char **argv)
return 0;
}
- ret = krb5_kt_resolve (context, argv[0], &src_keytab);
- if (ret) {
- krb5_warn (context, ret, "resolving src keytab `%s'", argv[0]);
- return 0;
- }
+ return kt_copy_int(argv[0], argv[1]);
+}
- ret = krb5_kt_resolve (context, argv[1], &dst_keytab);
- if (ret) {
- krb5_kt_close (context, src_keytab);
- krb5_warn (context, ret, "resolving dst keytab `%s'", argv[1]);
+#ifndef KEYFILE
+#define KEYFILE "/etc/srvtab"
+#endif
+
+/* copy to from v4 srvtab, just short for copy */
+static int
+conv(int srvconv, int argc, char **argv)
+{
+ int help_flag = 0;
+ char *srvtab = KEYFILE;
+ int optind = 0;
+ char kt4[1024], kt5[1024];
+
+ char *name;
+
+ struct getargs args[] = {
+ { "srvtab", 's', arg_string, NULL},
+ { "help", 'h', arg_flag, NULL}
+ };
+
+ int num_args = sizeof(args) / sizeof(args[0]);
+ int i = 0;
+
+ args[i++].value = &srvtab;
+ args[i++].value = &help_flag;
+
+ if(srvconv)
+ name = "ktutil srvconvert";
+ else
+ name = "ktutil srvcreate";
+
+ if(getarg(args, num_args, argc, argv, &optind)){
+ arg_printusage(args, num_args, name, "");
+ return 1;
+ }
+ if(help_flag){
+ arg_printusage(args, num_args, name, "");
return 0;
}
- ret = krb5_kt_start_seq_get (context, src_keytab, &cursor);
- if (ret) {
- krb5_warn (context, ret, "krb5_kt_start_seq_get");
- goto fail;
+ argc -= optind;
+ argv += optind;
+
+ if (argc != 0) {
+ arg_printusage(args, num_args, name, "");
+ return 1;
}
- while((ret = krb5_kt_next_entry(context, src_keytab,
- &entry, &cursor)) == 0) {
- ret = krb5_kt_add_entry (context, dst_keytab, &entry);
- if (verbose_flag) {
- char *name_str;
+ snprintf(kt4, sizeof(kt4), "krb4:%s", srvtab);
- krb5_unparse_name (context, entry.principal, &name_str);
- printf ("copying %s\n", name_str);
- free (name_str);
+ if(srvconv) {
+ if(keytab_string != NULL)
+ return kt_copy_int(kt4, keytab_string);
+ else {
+ krb5_kt_default_name(context, kt5, sizeof(kt5));
+ return kt_copy_int(kt4, kt5);
}
+ } else {
+ if(keytab_string != NULL)
+ return kt_copy_int(keytab_string, kt4);
- krb5_kt_free_entry (context, &entry);
- if (ret) {
- krb5_warn (context, ret, "krb5_kt_add_entry");
- break;
- }
+ krb5_kt_default_name(context, kt5, sizeof(kt5));
+ return kt_copy_int(kt5, kt4);
}
- krb5_kt_end_seq_get (context, src_keytab, &cursor);
+}
-fail:
- krb5_kt_close (context, src_keytab);
- krb5_kt_close (context, dst_keytab);
- return 0;
+int
+srvconv(int argc, char **argv)
+{
+ return conv(1, argc, argv);
+}
+
+int
+srvcreate(int argc, char **argv)
+{
+ return conv(0, argc, argv);
}
diff --git a/crypto/heimdal/admin/get.c b/crypto/heimdal/admin/get.c
index 143ffa2..5df72a1 100644
--- a/crypto/heimdal/admin/get.c
+++ b/crypto/heimdal/admin/get.c
@@ -33,7 +33,7 @@
#include "ktutil_locl.h"
-RCSID("$Id: get.c,v 1.15 2000/01/02 04:41:01 assar Exp $");
+RCSID("$Id: get.c,v 1.16 2000/12/31 02:51:43 assar Exp $");
int
kt_get(int argc, char **argv)
@@ -131,13 +131,26 @@ kt_get(int argc, char **argv)
if(ret == 0)
created++;
else if(ret != KADM5_DUP) {
+ krb5_warn(context, ret, "kadm5_create_principal(%s)", argv[i]);
krb5_free_principal(context, princ_ent);
continue;
}
ret = kadm5_randkey_principal(kadm_handle, princ_ent, &keys, &n_keys);
+ if (ret) {
+ krb5_warn(context, ret, "kadm5_randkey_principal(%s)", argv[i]);
+ krb5_free_principal(context, princ_ent);
+ continue;
+ }
ret = kadm5_get_principal(kadm_handle, princ_ent, &princ,
KADM5_PRINCIPAL | KADM5_KVNO | KADM5_ATTRIBUTES);
+ if (ret) {
+ krb5_warn(context, ret, "kadm5_get_principal(%s)", argv[i]);
+ for (j = 0; j < n_keys; j++)
+ krb5_free_keyblock_contents(context, &keys[j]);
+ krb5_free_principal(context, princ_ent);
+ continue;
+ }
princ.attributes &= (~KRB5_KDB_DISALLOW_ALL_TIX);
mask = KADM5_ATTRIBUTES;
if(created) {
@@ -145,6 +158,13 @@ kt_get(int argc, char **argv)
mask |= KADM5_KVNO;
}
ret = kadm5_modify_principal(kadm_handle, &princ, mask);
+ if (ret) {
+ krb5_warn(context, ret, "kadm5_modify_principal(%s)", argv[i]);
+ for (j = 0; j < n_keys; j++)
+ krb5_free_keyblock_contents(context, &keys[j]);
+ krb5_free_principal(context, princ_ent);
+ continue;
+ }
for(j = 0; j < n_keys; j++) {
entry.principal = princ_ent;
entry.vno = princ.kvno;
diff --git a/crypto/heimdal/admin/ktutil.8 b/crypto/heimdal/admin/ktutil.8
index b70fc93..cb86fa5 100644
--- a/crypto/heimdal/admin/ktutil.8
+++ b/crypto/heimdal/admin/ktutil.8
@@ -1,22 +1,23 @@
-.\" $Id: ktutil.8,v 1.6 2000/01/02 05:07:50 assar Exp $
+.\" $Id: ktutil.8,v 1.9 2000/12/16 00:58:49 joda Exp $
.\"
-.Dd Aug 27, 1997
+.Dd December 16, 2000
.Dt KTUTIL 8
.Os HEIMDAL
.Sh NAME
.Nm ktutil
-.Ar command
.Nd
-handle a keytab
+manage Kerberos keytabs
.Sh SYNOPSIS
.Nm
-.Op Fl k Ar keytab
-.Op Fl -keytab= Ns Ar keytab
-.Op Fl v
+.Oo Fl k Ar keytab \*(Ba Xo
+.Fl -keytab= Ns Ar keytab
+.Xc
+.Oc
+.Op Fl v | Fl -verbose
.Op Fl -version
-.Op Fl h
-.Op Fl -help
-.Ar command
+.Op Fl h | Fl -help
+.Ar command
+.Op Ar args
.Sh DESCRIPTION
.Nm
is a program for managing keytabs.
@@ -43,7 +44,7 @@ prompted for.
.Op Fl r Ar realm
.Op Fl -realm= Ns Ar realm
.Op Fl -a Ar host
-.Op Fl -admin-server= Ns Ar hots
+.Op Fl -admin-server= Ns Ar host
.Op Fl -s Ar port
.Op Fl -server-port= Ns Ar port
.Xc
@@ -74,7 +75,10 @@ to
Get a key for
.Nm principal
and store it in a keytab.
-.It list
+.It list Xo
+.Op Fl -keys
+.Op Fl -timestamp
+.Xc
List the keys stored in the keytab.
.It remove Xo
.Op Fl p Ar principal
@@ -94,8 +98,8 @@ removes keys of any type.
.Xc
Removes all old entries (for which there is a newer version) that are
older than
-.Ar age
-seconds.
+.Ar age
+(default one week).
.It srvconvert
.It srv2keytab Xo
.Op Fl s Ar srvtab
@@ -104,7 +108,13 @@ seconds.
Converts the version 4 srvtab in
.Ar srvtab
to a version 5 keytab and stores it in
-.Ar keytab .
+.Ar keytab .
+Identical to:
+.Bd -ragged -offset indent
+.Li ktutil copy
+.Li krb4: Ns Ar srvtab
+.Ar keytab
+.Ed
.It srvcreate
.It key2srvtab Xo
.Op Fl s Ar srvtab
@@ -114,6 +124,12 @@ Converts the version 5 keytab in
.Ar keytab
to a version 4 srvtab and stores it in
.Ar srvtab .
+Identical to:
+.Bd -ragged -offset indent
+.Li ktutil copy
+.Ar keytab
+.Li krb4: Ns Ar srvtab
+.Ed
.El
.Sh SEE ALSO
.Xr kadmin 8
diff --git a/crypto/heimdal/admin/ktutil.c b/crypto/heimdal/admin/ktutil.c
index 205bd89..35ca1c9 100644
--- a/crypto/heimdal/admin/ktutil.c
+++ b/crypto/heimdal/admin/ktutil.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
+ * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -32,14 +32,17 @@
*/
#include "ktutil_locl.h"
+#include <err.h>
-RCSID("$Id: ktutil.c,v 1.26 2000/02/07 04:29:25 assar Exp $");
+RCSID("$Id: ktutil.c,v 1.30 2001/01/25 12:44:37 assar Exp $");
static int help_flag;
static int version_flag;
int verbose_flag;
char *keytab_string;
+static char keytab_buf[256];
+
static int help(int argc, char **argv);
static SL_cmd cmds[] = {
@@ -127,7 +130,9 @@ main(int argc, char **argv)
int optind = 0;
krb5_error_code ret;
set_progname(argv[0]);
- krb5_init_context(&context);
+ ret = krb5_init_context(&context);
+ if (ret)
+ errx (1, "krb5_init_context failed: %d", ret);
if(getarg(args, num_args, argc, argv, &optind))
usage(1);
if(help_flag)
@@ -143,6 +148,10 @@ main(int argc, char **argv)
if(keytab_string) {
ret = krb5_kt_resolve(context, keytab_string, &keytab);
} else {
+ if(krb5_kt_default_name (context, keytab_buf, sizeof(keytab_buf)))
+ strlcpy (keytab_buf, "unknown", sizeof(keytab_buf));
+ keytab_string = keytab_buf;
+
ret = krb5_kt_default(context, &keytab);
}
if(ret)
diff --git a/crypto/heimdal/admin/list.c b/crypto/heimdal/admin/list.c
index 1924a21..04c1d78 100644
--- a/crypto/heimdal/admin/list.c
+++ b/crypto/heimdal/admin/list.c
@@ -33,7 +33,28 @@
#include "ktutil_locl.h"
-RCSID("$Id: list.c,v 1.1 2000/01/02 04:41:02 assar Exp $");
+RCSID("$Id: list.c,v 1.3 2000/06/29 08:21:40 joda Exp $");
+
+static int help_flag;
+static int list_keys;
+static int list_timestamp;
+
+static struct getargs args[] = {
+ { "help", 'h', arg_flag, &help_flag },
+ { "keys", 0, arg_flag, &list_keys, "show key value" },
+ { "timestamp", 0, arg_flag, &list_timestamp, "show timestamp" },
+};
+
+static int num_args = sizeof(args) / sizeof(args[0]);
+
+struct key_info {
+ char *version;
+ char *etype;
+ char *principal;
+ char *timestamp;
+ char *key;
+ struct key_info *next;
+};
int
kt_list(int argc, char **argv)
@@ -41,43 +62,102 @@ kt_list(int argc, char **argv)
krb5_error_code ret;
krb5_kt_cursor cursor;
krb5_keytab_entry entry;
+ int optind = 0;
+ struct key_info *ki, **kie = &ki, *kp;
+
+ int max_version = sizeof("Vno") - 1;
+ int max_etype = sizeof("Type") - 1;
+ int max_principal = sizeof("Principal") - 1;
+ int max_timestamp = sizeof("Date") - 1;
+ int max_key = sizeof("Key") - 1;
+
+ if(verbose_flag)
+ list_timestamp = 1;
+
+ if(getarg(args, num_args, argc, argv, &optind)){
+ arg_printusage(args, num_args, "ktutil list", "");
+ return 1;
+ }
+ if(help_flag){
+ arg_printusage(args, num_args, "ktutil list", "");
+ return 0;
+ }
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
if(ret){
- krb5_warn(context, ret, "krb5_kt_start_seq_get");
+ krb5_warn(context, ret, "krb5_kt_start_seq_get %s", keytab_string);
return 1;
}
- printf("%s", "Version");
- printf(" ");
- printf("%-15s", "Type");
- printf(" ");
- printf("%s", "Principal");
- printf("\n");
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0){
- char *p;
- printf(" %3d ", entry.vno);
- printf(" ");
- ret = krb5_enctype_to_string(context, entry.keyblock.keytype, &p);
+#define CHECK_MAX(F) if(max_##F < strlen(kp->F)) max_##F = strlen(kp->F)
+
+ kp = malloc(sizeof(*kp));
+
+ asprintf(&kp->version, "%d", entry.vno);
+ CHECK_MAX(version);
+ ret = krb5_enctype_to_string(context,
+ entry.keyblock.keytype, &kp->etype);
if (ret != 0)
- asprintf(&p, "unknown (%d)", entry.keyblock.keytype);
- printf("%-15s", p);
- free(p);
- printf(" ");
- krb5_unparse_name(context, entry.principal, &p);
- printf("%s ", p);
- free(p);
- printf("\n");
- if (verbose_flag) {
+ asprintf(&kp->etype, "unknown (%d)", entry.keyblock.keytype);
+ CHECK_MAX(etype);
+ krb5_unparse_name_short(context, entry.principal, &kp->principal);
+ CHECK_MAX(principal);
+ if (list_timestamp) {
char tstamp[256];
- struct tm *tm;
- time_t ts = entry.timestamp;
- tm = gmtime (&ts);
- strftime (tstamp, sizeof(tstamp), "%Y-%m-%d %H:%M:%S UTC", tm);
- printf(" Timestamp: %s\n", tstamp);
+ krb5_format_time(context, entry.timestamp,
+ tstamp, sizeof(tstamp), FALSE);
+
+ kp->timestamp = strdup(tstamp);
+ CHECK_MAX(timestamp);
}
+ if(list_keys) {
+ int i;
+ kp->key = malloc(2 * entry.keyblock.keyvalue.length + 1);
+ for(i = 0; i < entry.keyblock.keyvalue.length; i++)
+ snprintf(kp->key + 2 * i, 3, "%02x",
+ ((unsigned char*)entry.keyblock.keyvalue.data)[i]);
+ CHECK_MAX(key);
+ }
+ kp->next = NULL;
+ *kie = kp;
+ kie = &kp->next;
krb5_kt_free_entry(context, &entry);
}
ret = krb5_kt_end_seq_get(context, keytab, &cursor);
+
+ printf("%-*s %-*s %-*s", max_version, "Vno",
+ max_etype, "Type",
+ max_principal, "Principal");
+ if(list_timestamp)
+ printf(" %-*s", max_timestamp, "Date");
+ if(list_keys)
+ printf(" %s", "Key");
+ printf("\n");
+
+ for(kp = ki; kp; ) {
+ printf("%*s %-*s %-*s", max_version, kp->version,
+ max_etype, kp->etype,
+ max_principal, kp->principal);
+ if(list_timestamp)
+ printf(" %-*s", max_timestamp, kp->timestamp);
+ if(list_keys)
+ printf(" %s", kp->key);
+ printf("\n");
+
+ /* free entries */
+ free(kp->version);
+ free(kp->etype);
+ free(kp->principal);
+ if(list_timestamp)
+ free(kp->timestamp);
+ if(list_keys) {
+ memset(kp->key, 0, strlen(kp->key));
+ free(kp->key);
+ }
+ ki = kp;
+ kp = kp->next;
+ free(ki);
+ }
return 0;
}
diff --git a/crypto/heimdal/admin/purge.c b/crypto/heimdal/admin/purge.c
index 3e262c5..5e22de5 100644
--- a/crypto/heimdal/admin/purge.c
+++ b/crypto/heimdal/admin/purge.c
@@ -33,7 +33,7 @@
#include "ktutil_locl.h"
-RCSID("$Id: purge.c,v 1.1 2000/01/02 05:06:50 assar Exp $");
+RCSID("$Id: purge.c,v 1.3 2000/06/29 08:31:47 joda Exp $");
/*
* keep track of the highest version for every principal.
@@ -101,9 +101,10 @@ kt_purge(int argc, char **argv)
krb5_kt_cursor cursor;
krb5_keytab_entry entry;
int help_flag = 0;
- int age = 7 * 24 * 60 * 60;
+ char *age_str = "1 week";
+ int age;
struct getargs args[] = {
- { "age", 0, arg_integer, NULL, "age to retire" },
+ { "age", 0, arg_string, NULL, "age to retire" },
{ "help", 'h', arg_flag, NULL }
};
int num_args = sizeof(args) / sizeof(args[0]);
@@ -112,7 +113,7 @@ kt_purge(int argc, char **argv)
struct e *head = NULL;
time_t judgement_day;
- args[i++].value = &age;
+ args[i++].value = &age_str;
args[i++].value = &help_flag;
if(getarg(args, num_args, argc, argv, &optind)) {
@@ -124,9 +125,15 @@ kt_purge(int argc, char **argv)
return 0;
}
+ age = parse_time(age_str, "s");
+ if(age < 0) {
+ krb5_warnx(context, "unparasable time `%s'", age_str);
+ return 0;
+ }
+
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
if(ret){
- krb5_warn(context, ret, "krb5_kt_start_seq_get");
+ krb5_warn(context, ret, "krb5_kt_start_seq_get %s", keytab_string);
return 1;
}
@@ -140,7 +147,7 @@ kt_purge(int argc, char **argv)
ret = krb5_kt_start_seq_get(context, keytab, &cursor);
if(ret){
- krb5_warn(context, ret, "krb5_kt_start_seq_get");
+ krb5_warn(context, ret, "krb5_kt_start_seq_get, %s", keytab_string);
return 1;
}
OpenPOWER on IntegriCloud