Use krb5_decrypt
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1328 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -8,27 +8,17 @@ decrypt_tkt_enc_part (krb5_context context,
|
||||
EncryptedData *enc_part,
|
||||
EncTicketPart *decr_part)
|
||||
{
|
||||
des_key_schedule sched;
|
||||
char *buf;
|
||||
int i;
|
||||
int len = enc_part->cipher.length;
|
||||
krb5_error_code ret;
|
||||
krb5_data plain;
|
||||
int len;
|
||||
|
||||
des_set_key (key->contents.data, sched);
|
||||
buf = malloc (len);
|
||||
if (buf == NULL)
|
||||
return ENOMEM;
|
||||
des_cbc_encrypt ((des_cblock *)enc_part->cipher.data,
|
||||
(des_cblock *)buf,
|
||||
len,
|
||||
sched,
|
||||
key->contents.data,
|
||||
DES_DECRYPT);
|
||||
/* XXX: Check CRC */
|
||||
ret = krb5_decrypt (context, enc_part->cipher.data, enc_part->cipher.length, key, &plain);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
i = decode_EncTicketPart((unsigned char*)buf + 12, len - 12,
|
||||
decr_part);
|
||||
free (buf);
|
||||
if (i < 0)
|
||||
len = decode_EncTicketPart(plain.data, plain.length, decr_part);
|
||||
krb5_data_free (&plain);
|
||||
if (len < 0)
|
||||
return ASN1_PARSE_ERROR;
|
||||
return 0;
|
||||
}
|
||||
@@ -39,30 +29,20 @@ decrypt_authenticator (krb5_context context,
|
||||
EncryptedData *enc_part,
|
||||
Authenticator *authenticator)
|
||||
{
|
||||
des_key_schedule sched;
|
||||
char *buf;
|
||||
int i;
|
||||
int len = enc_part->cipher.length;
|
||||
krb5_error_code ret;
|
||||
krb5_data plain;
|
||||
int len;
|
||||
|
||||
des_set_key (key->keyvalue.data, sched);
|
||||
buf = malloc (len);
|
||||
if (buf == NULL)
|
||||
return ENOMEM;
|
||||
des_cbc_encrypt ((des_cblock *)enc_part->cipher.data,
|
||||
(des_cblock *)buf,
|
||||
len,
|
||||
sched,
|
||||
key->keyvalue.data,
|
||||
DES_DECRYPT);
|
||||
/* XXX: Check CRC */
|
||||
ret = krb5_decrypt (context, enc_part->cipher.data, enc_part->cipher.length, key, &plain);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
i = decode_Authenticator((unsigned char*)buf + 12, len - 12,
|
||||
authenticator);
|
||||
free(buf);
|
||||
if (i < 0)
|
||||
len = decode_Authenticator(plain.data, plain.length, authenticator);
|
||||
krb5_data_free (&plain);
|
||||
if (len < 0)
|
||||
return ASN1_PARSE_ERROR;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
krb5_rd_req(krb5_context context,
|
||||
@@ -162,7 +142,7 @@ krb5_rd_req(krb5_context context,
|
||||
*ap_req_options |= AP_OPTS_MUTUAL_REQUIRED;
|
||||
}
|
||||
|
||||
/* Check adress and time */
|
||||
/* Check address and time */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user