*** empty log message ***
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1803 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
25
lib/krb5/generate_seq_number.c
Normal file
25
lib/krb5/generate_seq_number.c
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
#include <krb5_locl.h>
|
||||||
|
|
||||||
|
RCSID("$Id$");
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
krb5_generate_seq_number(krb5_context context,
|
||||||
|
const krb5_keyblock *key,
|
||||||
|
int32_t *seqno)
|
||||||
|
{
|
||||||
|
des_cblock c;
|
||||||
|
int32_t q;
|
||||||
|
u_char *p;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (key->keytype != KEYTYPE_DES)
|
||||||
|
abort ();
|
||||||
|
memmove (c, key->contents.data, sizeof(c));
|
||||||
|
des_new_random_key(&c);
|
||||||
|
q = 0;
|
||||||
|
for (p = (u_char *)c, i = 0; i < sizeof(c); ++i, ++p)
|
||||||
|
q = (q << 8) | *p;
|
||||||
|
q &= 0xffffffff;
|
||||||
|
*seqno = q;
|
||||||
|
return 0;
|
||||||
|
}
|
30
lib/krb5/generate_subkey.c
Normal file
30
lib/krb5/generate_subkey.c
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#include <krb5_locl.h>
|
||||||
|
|
||||||
|
RCSID("$Id$");
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
krb5_generate_subkey(krb5_context context,
|
||||||
|
const krb5_keyblock *key,
|
||||||
|
krb5_keyblock **subkey)
|
||||||
|
{
|
||||||
|
krb5_error_code ret;
|
||||||
|
krb5_keyblock *k;
|
||||||
|
|
||||||
|
if (key->keytype != KEYTYPE_DES)
|
||||||
|
abort ();
|
||||||
|
k = malloc(sizeof(**subkey));
|
||||||
|
if (k == NULL)
|
||||||
|
return ENOMEM;
|
||||||
|
k->keytype = key->keytype;
|
||||||
|
k->contents.length = 0;
|
||||||
|
ret = krb5_data_copy (&k->contents,
|
||||||
|
key->contents.data,
|
||||||
|
key->contents.length);
|
||||||
|
if (ret) {
|
||||||
|
free(k);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
des_new_random_key ((des_cblock *)k->contents.data);
|
||||||
|
*subkey = k;
|
||||||
|
return 0;
|
||||||
|
}
|
Reference in New Issue
Block a user