Make krb5_decrypt use the same struct as krb5_encrypt.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2035 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1997-07-07 19:13:22 +00:00
parent 1ae9f2bcaf
commit d01a5934f4

View File

@@ -103,7 +103,7 @@ krb5_do_encrypt(krb5_context context,
p = calloc(1, sz);
if (p == NULL)
return ENOMEM;
des_rand_data(p, et->confoundersize);
des_rand_data(p, et->confoundersize); /* XXX */
memcpy(p + et->confoundersize + et->checksumsize, ptr, len);
(*et->checksum)(p, sz, p + et->confoundersize);
(*et->encrypt)(p, sz, keyblock, 1);
@@ -142,6 +142,16 @@ krb5_do_decrypt(krb5_context context,
return 0;
}
static struct encryption_type *
find_encryption_type(int etype)
{
struct encryption_type *e;
for(e = em; e < em + num_etypes; e++)
if(etype == e->type)
return e;
return NULL;
}
krb5_error_code
krb5_encrypt (krb5_context context,
void *ptr,
@@ -151,8 +161,21 @@ krb5_encrypt (krb5_context context,
krb5_data *result)
{
struct encryption_type *e;
for(e = em; e < em + num_etypes; e++)
if(etype == e->type)
if((e = find_encryption_type(etype)))
return krb5_do_encrypt(context, ptr, len, e, keyblock, result);
return KRB5_PROG_ETYPE_NOSUPP;
}
krb5_error_code
krb5_decrypt (krb5_context context,
void *ptr,
size_t len,
int etype,
krb5_keyblock *keyblock,
krb5_data *result)
{
struct encryption_type *e;
if((e = find_encryption_type(etype)))
return krb5_do_encrypt(context, ptr, len, e, keyblock, result);
return KRB5_PROG_ETYPE_NOSUPP;
}