summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/kadmin/mod.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/kadmin/mod.c')
-rw-r--r--crypto/heimdal/kadmin/mod.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/crypto/heimdal/kadmin/mod.c b/crypto/heimdal/kadmin/mod.c
index 48d00a6..1ea9c86 100644
--- a/crypto/heimdal/kadmin/mod.c
+++ b/crypto/heimdal/kadmin/mod.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1998, 1999 Kungliga Tekniska Högskolan
+ * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -33,7 +33,7 @@
#include "kadmin_locl.h"
-RCSID("$Id: mod.c,v 1.7 1999/12/02 17:04:58 joda Exp $");
+RCSID("$Id: mod.c,v 1.10 2000/07/11 14:34:56 joda Exp $");
static int parse_args (krb5_context context, kadm5_principal_ent_t ent,
int argc, char **argv, int *optind, char *name,
@@ -49,6 +49,7 @@ parse_args(krb5_context context, kadm5_principal_ent_t ent,
char *max_rlife_str = NULL;
char *expiration_str = NULL;
char *pw_expiration_str = NULL;
+ int new_kvno = -1;
int ret, i;
struct getargs args[] = {
@@ -62,6 +63,8 @@ parse_args(krb5_context context, kadm5_principal_ent_t ent,
NULL, "Expiration time", "time"},
{"pw-expiration-time", 0, arg_string,
NULL, "Password expiration time", "time"},
+ {"kvno", 0, arg_integer,
+ NULL, "Key version number", "number"},
};
i = 0;
@@ -70,6 +73,7 @@ parse_args(krb5_context context, kadm5_principal_ent_t ent,
args[i++].value = &max_rlife_str;
args[i++].value = &expiration_str;
args[i++].value = &pw_expiration_str;
+ args[i++].value = &new_kvno;
*optind = 0; /* XXX */
@@ -86,6 +90,11 @@ parse_args(krb5_context context, kadm5_principal_ent_t ent,
expiration_str, pw_expiration_str, attr_str);
if (ret)
return ret;
+
+ if(new_kvno != -1) {
+ ent->kvno = new_kvno;
+ *mask |= KADM5_KVNO;
+ }
return 0;
}
@@ -122,13 +131,12 @@ mod_entry(int argc, char **argv)
KADM5_MAX_LIFE | KADM5_MAX_RLIFE |
KADM5_PRINC_EXPIRE_TIME |
KADM5_PW_EXPIRATION);
+ krb5_free_principal (context, princ_ent);
if (ret) {
printf ("no such principal: %s\n", argv[0]);
- krb5_free_principal (context, princ_ent);
return 0;
}
edit_entry(&princ, &mask, NULL, 0);
-
} else {
princ.principal = princ_ent;
}
@@ -136,8 +144,6 @@ mod_entry(int argc, char **argv)
ret = kadm5_modify_principal(kadm_handle, &princ, mask);
if(ret)
krb5_warn(context, ret, "kadm5_modify_principal");
- if(princ_ent)
- krb5_free_principal(context, princ_ent);
kadm5_free_principal_ent(kadm_handle, &princ);
return 0;
}
OpenPOWER on IntegriCloud