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,
|
EncryptedData *enc_part,
|
||||||
EncTicketPart *decr_part)
|
EncTicketPart *decr_part)
|
||||||
{
|
{
|
||||||
des_key_schedule sched;
|
krb5_error_code ret;
|
||||||
char *buf;
|
krb5_data plain;
|
||||||
int i;
|
int len;
|
||||||
int len = enc_part->cipher.length;
|
|
||||||
|
|
||||||
des_set_key (key->contents.data, sched);
|
ret = krb5_decrypt (context, enc_part->cipher.data, enc_part->cipher.length, key, &plain);
|
||||||
buf = malloc (len);
|
if (ret)
|
||||||
if (buf == NULL)
|
return ret;
|
||||||
return ENOMEM;
|
|
||||||
des_cbc_encrypt ((des_cblock *)enc_part->cipher.data,
|
|
||||||
(des_cblock *)buf,
|
|
||||||
len,
|
|
||||||
sched,
|
|
||||||
key->contents.data,
|
|
||||||
DES_DECRYPT);
|
|
||||||
/* XXX: Check CRC */
|
|
||||||
|
|
||||||
i = decode_EncTicketPart((unsigned char*)buf + 12, len - 12,
|
len = decode_EncTicketPart(plain.data, plain.length, decr_part);
|
||||||
decr_part);
|
krb5_data_free (&plain);
|
||||||
free (buf);
|
if (len < 0)
|
||||||
if (i < 0)
|
|
||||||
return ASN1_PARSE_ERROR;
|
return ASN1_PARSE_ERROR;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -39,30 +29,20 @@ decrypt_authenticator (krb5_context context,
|
|||||||
EncryptedData *enc_part,
|
EncryptedData *enc_part,
|
||||||
Authenticator *authenticator)
|
Authenticator *authenticator)
|
||||||
{
|
{
|
||||||
des_key_schedule sched;
|
krb5_error_code ret;
|
||||||
char *buf;
|
krb5_data plain;
|
||||||
int i;
|
int len;
|
||||||
int len = enc_part->cipher.length;
|
|
||||||
|
|
||||||
des_set_key (key->keyvalue.data, sched);
|
ret = krb5_decrypt (context, enc_part->cipher.data, enc_part->cipher.length, key, &plain);
|
||||||
buf = malloc (len);
|
if (ret)
|
||||||
if (buf == NULL)
|
return ret;
|
||||||
return ENOMEM;
|
|
||||||
des_cbc_encrypt ((des_cblock *)enc_part->cipher.data,
|
|
||||||
(des_cblock *)buf,
|
|
||||||
len,
|
|
||||||
sched,
|
|
||||||
key->keyvalue.data,
|
|
||||||
DES_DECRYPT);
|
|
||||||
/* XXX: Check CRC */
|
|
||||||
|
|
||||||
i = decode_Authenticator((unsigned char*)buf + 12, len - 12,
|
len = decode_Authenticator(plain.data, plain.length, authenticator);
|
||||||
authenticator);
|
krb5_data_free (&plain);
|
||||||
free(buf);
|
if (len < 0)
|
||||||
if (i < 0)
|
|
||||||
return ASN1_PARSE_ERROR;
|
return ASN1_PARSE_ERROR;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code
|
krb5_error_code
|
||||||
krb5_rd_req(krb5_context context,
|
krb5_rd_req(krb5_context context,
|
||||||
@@ -162,7 +142,7 @@ krb5_rd_req(krb5_context context,
|
|||||||
*ap_req_options |= AP_OPTS_MUTUAL_REQUIRED;
|
*ap_req_options |= AP_OPTS_MUTUAL_REQUIRED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check adress and time */
|
/* Check address and time */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user