Print extensions.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15879 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1999-2002 Kungliga Tekniska H<>gskolan
|
* Copyright (c) 1999-2005 Kungliga Tekniska H<>gskolan
|
||||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
||||||
|
|
||||||
#include "hdb_locl.h"
|
#include "hdb_locl.h"
|
||||||
|
#include <hex.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
RCSID("$Id$");
|
RCSID("$Id$");
|
||||||
@@ -91,8 +92,9 @@ append_hex(krb5_context context, krb5_storage *sp, krb5_data *data)
|
|||||||
if(printable)
|
if(printable)
|
||||||
return append_string(context, sp, "\"%.*s\"",
|
return append_string(context, sp, "\"%.*s\"",
|
||||||
data->length, data->data);
|
data->length, data->data);
|
||||||
for(i = 0; i < data->length; i++)
|
hex_encode(data->data, data->length, &p);
|
||||||
append_string(context, sp, "%02x", ((unsigned char*)data->data)[i]);
|
append_string(context, sp, "%s", p);
|
||||||
|
free(p);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,11 +200,41 @@ entry2string_int (krb5_context context, krb5_storage *sp, hdb_entry *ent)
|
|||||||
|
|
||||||
/* --- generation number */
|
/* --- generation number */
|
||||||
if(ent->generation) {
|
if(ent->generation) {
|
||||||
append_string(context, sp, "%s:%d:%d", time2str(ent->generation->time),
|
append_string(context, sp, "%s:%d:%d ", time2str(ent->generation->time),
|
||||||
ent->generation->usec,
|
ent->generation->usec,
|
||||||
ent->generation->gen);
|
ent->generation->gen);
|
||||||
|
} else
|
||||||
|
append_string(context, sp, "- ");
|
||||||
|
|
||||||
|
/* --- extensions */
|
||||||
|
if(ent->extensions && ent->extensions->len > 0) {
|
||||||
|
for(i = 0; i < ent->extensions->len; i++) {
|
||||||
|
void *d;
|
||||||
|
size_t size, sz;
|
||||||
|
|
||||||
|
ASN1_MALLOC_ENCODE(HDB_extension, d, size,
|
||||||
|
&ent->extensions->val[i], &sz, ret);
|
||||||
|
if (ret) {
|
||||||
|
krb5_clear_error_string(context);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
if(size != sz)
|
||||||
|
krb5_abortx(context, "internal asn.1 encoder error");
|
||||||
|
|
||||||
|
if (hex_encode(d, size, &p) < 0) {
|
||||||
|
free(d);
|
||||||
|
krb5_set_error_string(context, "malloc: out of memory");
|
||||||
|
return ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(d);
|
||||||
|
append_string(context, sp, "%s%s", p,
|
||||||
|
ent->extensions->len - 1 != i ? ":" : "");
|
||||||
|
free(p);
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
append_string(context, sp, "-");
|
append_string(context, sp, "-");
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user