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:
@@ -103,7 +103,7 @@ krb5_do_encrypt(krb5_context context,
|
|||||||
p = calloc(1, sz);
|
p = calloc(1, sz);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
des_rand_data(p, et->confoundersize);
|
des_rand_data(p, et->confoundersize); /* XXX */
|
||||||
memcpy(p + et->confoundersize + et->checksumsize, ptr, len);
|
memcpy(p + et->confoundersize + et->checksumsize, ptr, len);
|
||||||
(*et->checksum)(p, sz, p + et->confoundersize);
|
(*et->checksum)(p, sz, p + et->confoundersize);
|
||||||
(*et->encrypt)(p, sz, keyblock, 1);
|
(*et->encrypt)(p, sz, keyblock, 1);
|
||||||
@@ -142,6 +142,16 @@ krb5_do_decrypt(krb5_context context,
|
|||||||
return 0;
|
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_error_code
|
||||||
krb5_encrypt (krb5_context context,
|
krb5_encrypt (krb5_context context,
|
||||||
void *ptr,
|
void *ptr,
|
||||||
@@ -151,8 +161,21 @@ krb5_encrypt (krb5_context context,
|
|||||||
krb5_data *result)
|
krb5_data *result)
|
||||||
{
|
{
|
||||||
struct encryption_type *e;
|
struct encryption_type *e;
|
||||||
for(e = em; e < em + num_etypes; e++)
|
if((e = find_encryption_type(etype)))
|
||||||
if(etype == e->type)
|
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_do_encrypt(context, ptr, len, e, keyblock, result);
|
||||||
return KRB5_PROG_ETYPE_NOSUPP;
|
return KRB5_PROG_ETYPE_NOSUPP;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user