summaryrefslogtreecommitdiff
path: root/src/kadmin/ktutil/ktutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kadmin/ktutil/ktutil.c')
-rw-r--r--src/kadmin/ktutil/ktutil.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/kadmin/ktutil/ktutil.c b/src/kadmin/ktutil/ktutil.c
index ef16d37a5693..6a8586da8207 100644
--- a/src/kadmin/ktutil/ktutil.c
+++ b/src/kadmin/ktutil/ktutil.c
@@ -140,7 +140,8 @@ void ktutil_add_entry(argc, argv)
char *princ = NULL;
char *enctype = NULL;
krb5_kvno kvno = 0;
- int use_pass = 0, use_key = 0, i;
+ int use_pass = 0, use_key = 0, use_kvno = 0, i;
+ char *salt = NULL;
for (i = 1; i < argc; i++) {
if ((strlen(argv[i]) == 2) && !strncmp(argv[i], "-p", 2)) {
@@ -149,6 +150,7 @@ void ktutil_add_entry(argc, argv)
}
if ((strlen(argv[i]) == 2) && !strncmp(argv[i], "-k", 2)) {
kvno = (krb5_kvno) atoi(argv[++i]);
+ use_kvno++;
continue;
}
if ((strlen(argv[i]) == 2) && !strncmp(argv[i], "-e", 2)) {
@@ -163,15 +165,22 @@ void ktutil_add_entry(argc, argv)
use_key++;
continue;
}
+ if ((strlen(argv[i]) == 2) && !strncmp(argv[i], "-s", 2)) {
+ salt = argv[++i];
+ continue;
+ }
}
- if (argc != 8 || !(princ && kvno && enctype) || (use_pass+use_key != 1)) {
+ if (!((argc == 8 && princ && use_kvno && enctype) ||
+ (argc == 10 && princ && use_kvno && enctype && salt)) ||
+ use_pass + use_key != 1) {
fprintf(stderr, _("usage: %s (-key | -password) -p principal "
- "-k kvno -e enctype\n"), argv[0]);
+ "-k kvno -e enctype [-s salt]\n"), argv[0]);
return;
}
- retval = ktutil_add(kcontext, &ktlist, princ, kvno, enctype, use_pass);
+ retval = ktutil_add(kcontext, &ktlist, princ, kvno, enctype, use_pass,
+ salt);
if (retval)
com_err(argv[0], retval, _("while adding new entry"));
}