(init_des_key, set_password): DES3 keys also
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3543 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
25
admin/util.c
25
admin/util.c
@@ -39,18 +39,27 @@
|
|||||||
#include "admin_locl.h"
|
#include "admin_locl.h"
|
||||||
#include <parse_units.h>
|
#include <parse_units.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_key(Key *k, krb5_keytype keytype)
|
||||||
|
{
|
||||||
|
memset(k, 0, sizeof(*k));
|
||||||
|
krb5_generate_random_keyblock(context, keytype, &k->key);
|
||||||
|
seal_key(k);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
init_des_key(hdb_entry *ent)
|
init_des_key(hdb_entry *ent)
|
||||||
{
|
{
|
||||||
Key *k;
|
Key *k;
|
||||||
|
|
||||||
ent->keys.val = realloc(ent->keys.val,
|
ent->keys.val = realloc(ent->keys.val,
|
||||||
(ent->keys.len + 1) * sizeof(*ent->keys.val));
|
(ent->keys.len + 2) * sizeof(*ent->keys.val));
|
||||||
k = ent->keys.val + ent->keys.len;
|
k = ent->keys.val + ent->keys.len;
|
||||||
ent->keys.len++;
|
ent->keys.len += 2;
|
||||||
memset(k, 0, sizeof(*k));
|
|
||||||
krb5_generate_random_keyblock(context, KEYTYPE_DES, &k->key);
|
|
||||||
seal_key(k);
|
|
||||||
ent->kvno++;
|
ent->kvno++;
|
||||||
|
|
||||||
|
add_key(k++, KEYTYPE_DES);
|
||||||
|
add_key(k++, KEYTYPE_DES3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -261,8 +270,10 @@ set_password(hdb_entry *ent)
|
|||||||
ent->keys.val = NULL;
|
ent->keys.val = NULL;
|
||||||
init_des_key(ent);
|
init_des_key(ent);
|
||||||
} else{
|
} else{
|
||||||
ent->keys.len = 1;
|
ent->keys.len = 2;
|
||||||
ent->keys.val = calloc(1, sizeof(*ent->keys.val));
|
ent->keys.val = calloc(2, sizeof(*ent->keys.val));
|
||||||
|
ent->keys.val[0].key.keytype = KEYTYPE_DES;
|
||||||
|
ent->keys.val[1].key.keytype = KEYTYPE_DES3;
|
||||||
set_keys(ent, buf);
|
set_keys(ent, buf);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user