aboutsummaryrefslogtreecommitdiff
path: root/crypto/heimdal/lib/hdb/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/hdb/print.c')
-rw-r--r--crypto/heimdal/lib/hdb/print.c236
1 files changed, 0 insertions, 236 deletions
diff --git a/crypto/heimdal/lib/hdb/print.c b/crypto/heimdal/lib/hdb/print.c
deleted file mode 100644
index 5db316618cf9..000000000000
--- a/crypto/heimdal/lib/hdb/print.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (c) 1999 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of KTH nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-#include "hdb_locl.h"
-#include <ctype.h>
-
-RCSID("$Id: print.c,v 1.4 1999/12/26 13:50:22 assar Exp $");
-
-/*
- This is the present contents of a dump line. This might change at
- any time. Fields are separated by white space.
-
- principal
- keyblock
- kvno
- keys...
- mkvno
- enctype
- keyvalue
- salt (- means use normal salt)
- creation date and principal
- modification date and principal
- principal valid from date (not used)
- principal valid end date (not used)
- principal key expires (not used)
- max ticket life
- max renewable life
- flags
- */
-
-static void
-append_hex(char *str, krb5_data *data)
-{
- int i, s = 1;
- char *p;
-
- p = data->data;
- for(i = 0; i < data->length; i++)
- if(!isalnum((unsigned char)p[i]) && p[i] != '.'){
- s = 0;
- break;
- }
- if(s){
- p = calloc(1, data->length + 2 + 1);
- p[0] = '\"';
- p[data->length + 1] = '\"';
- memcpy(p + 1, data->data, data->length);
- }else{
- p = calloc(1, data->length * 2 + 1);
- for(i = 0; i < data->length; i++)
- sprintf(p + 2 * i, "%02x", ((u_char*)data->data)[i]);
- }
- strcat(str, p);
- free(p);
-}
-
-static char *
-time2str(time_t t)
-{
- static char buf[128];
- strftime(buf, sizeof(buf), "%Y%m%d%H%M%S", gmtime(&t));
- return buf;
-}
-
-static krb5_error_code
-event2string(krb5_context context, Event *ev, char **str)
-{
- char *p;
- char *pr;
- krb5_error_code ret;
- if(ev == NULL){
- *str = strdup("-");
- return (*str == NULL) ? ENOMEM : 0;
- }
- if (ev->principal == NULL) {
- pr = strdup("UNKNOWN");
- if (pr == NULL)
- return ENOMEM;
- } else {
- ret = krb5_unparse_name(context, ev->principal, &pr);
- if(ret)
- return ret;
- }
- ret = asprintf(&p, "%s:%s", time2str(ev->time), pr);
- free(pr);
- if(ret < 0)
- return ENOMEM;
- *str = p;
- return 0;
-}
-
-krb5_error_code
-hdb_entry2string(krb5_context context, hdb_entry *ent, char **str)
-{
- char *p;
- char buf[1024] = "";
- int i;
- krb5_error_code ret;
-
- /* --- principal */
- ret = krb5_unparse_name(context, ent->principal, &p);
- if(ret)
- return ret;
- strlcat(buf, p, sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
- free(p);
- /* --- kvno */
- asprintf(&p, "%d", ent->kvno);
- strlcat(buf, p, sizeof(buf));
- free(p);
- /* --- keys */
- for(i = 0; i < ent->keys.len; i++){
- /* --- mkvno, keytype */
- if(ent->keys.val[i].mkvno)
- asprintf(&p, ":%d:%d:",
- *ent->keys.val[i].mkvno,
- ent->keys.val[i].key.keytype);
- else
- asprintf(&p, "::%d:",
- ent->keys.val[i].key.keytype);
- strlcat(buf, p, sizeof(buf));
- free(p);
- /* --- keydata */
- append_hex(buf, &ent->keys.val[i].key.keyvalue);
- strlcat(buf, ":", sizeof(buf));
- /* --- salt */
- if(ent->keys.val[i].salt){
- asprintf(&p, "%u/", ent->keys.val[i].salt->type);
- strlcat(buf, p, sizeof(buf));
- free(p);
- append_hex(buf, &ent->keys.val[i].salt->salt);
- }else
- strlcat(buf, "-", sizeof(buf));
- }
- strlcat(buf, " ", sizeof(buf));
- /* --- created by */
- event2string(context, &ent->created_by, &p);
- strlcat(buf, p, sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
- free(p);
- /* --- modified by */
- event2string(context, ent->modified_by, &p);
- strlcat(buf, p, sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
- free(p);
-
- /* --- valid start */
- if(ent->valid_start)
- strlcat(buf, time2str(*ent->valid_start), sizeof(buf));
- else
- strlcat(buf, "-", sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
-
- /* --- valid end */
- if(ent->valid_end)
- strlcat(buf, time2str(*ent->valid_end), sizeof(buf));
- else
- strlcat(buf, "-", sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
-
- /* --- password ends */
- if(ent->pw_end)
- strlcat(buf, time2str(*ent->pw_end), sizeof(buf));
- else
- strlcat(buf, "-", sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
-
- /* --- max life */
- if(ent->max_life){
- asprintf(&p, "%d", *ent->max_life);
- strlcat(buf, p, sizeof(buf));
- free(p);
- }else
- strlcat(buf, "-", sizeof(buf));
- strlcat(buf, " ", sizeof(buf));
-
- /* --- max renewable life */
- if(ent->max_renew){
- asprintf(&p, "%d", *ent->max_renew);
- strlcat(buf, p, sizeof(buf));
- free(p);
- }else
- strlcat(buf, "-", sizeof(buf));
-
- strlcat(buf, " ", sizeof(buf));
-
- /* --- flags */
- asprintf(&p, "%d", HDBFlags2int(ent->flags));
- strlcat(buf, p, sizeof(buf));
- free(p);
-
- *str = strdup(buf);
-
- return 0;
-}
-
-/* print a hdb_entry to (FILE*)data; suitable for hdb_foreach */
-
-krb5_error_code
-hdb_print_entry(krb5_context context, HDB *db, hdb_entry *entry, void *data)
-{
- char *p;
- hdb_entry2string(context, entry, &p);
- fprintf((FILE*)data, "%s\n", p);
- free(p);
- return 0;
-}