From 36de714126ca42813d3144301a1a0343ddc5bca6 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Sat, 1 Nov 1997 00:43:38 +0000 Subject: [PATCH] Moved from create/chpass git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3731 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/kadm5/set_keys.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/kadm5/set_keys.c diff --git a/lib/kadm5/set_keys.c b/lib/kadm5/set_keys.c new file mode 100644 index 000000000..9c05adbfa --- /dev/null +++ b/lib/kadm5/set_keys.c @@ -0,0 +1,31 @@ +#include "kadm5_locl.h" + +kadm5_ret_t +_kadm5_set_keys(kadm5_server_context *context, + hdb_entry *ent, const char *password) +{ + int i; + krb5_data salt; + kadm5_ret_t ret; + Key *key; + krb5_get_salt(ent->principal, &salt); + for(i = 0; i < ent->keys.len; i++){ + key = &ent->keys.val[i]; + if(key->salt && key->salt->type == hdb_pw_salt && + key->salt->salt.length != 0){ + /* zap old salt, but not v4 salts */ + free_Salt(key->salt); + key->salt = NULL; + } + krb5_free_keyblock(context->context, &key->key); + ret = krb5_string_to_key(password, + key->salt ? &key->salt->salt : &salt, + key->key.keytype, + &key->key); + if(ret) + break; + } + ent->kvno++; + krb5_data_free(&salt); + return ret; +}