use asn1 decoder function directly

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24060 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-12-11 04:50:58 +00:00
parent efccbcdeff
commit 60d35f97bc
3 changed files with 24 additions and 17 deletions

View File

@@ -375,17 +375,18 @@ decrypt_tkt_with_subkey (krb5_context context,
if (ret) if (ret)
return ret; return ret;
ret = krb5_decode_EncASRepPart(context, ret = decode_EncASRepPart(data.data,
data.data, data.length,
&dec_rep->enc_part,
&size);
if (ret)
ret = decode_EncTGSRepPart(data.data,
data.length, data.length,
&dec_rep->enc_part, &dec_rep->enc_part,
&size); &size);
if (ret) if (ret)
ret = krb5_decode_EncTGSRepPart(context, krb5_set_error_message(context, ret,
data.data, N_("Failed to decode encpart in ticket", ""));
data.length,
&dec_rep->enc_part,
&size);
krb5_data_free (&data); krb5_data_free (&data);
return ret; return ret;
} }

View File

@@ -149,15 +149,18 @@ krb5_rd_cred(krb5_context context,
goto out; goto out;
} }
ret = krb5_decode_EncKrbCredPart (context, ret = decode_EncKrbCredPart(enc_krb_cred_part_data.data,
enc_krb_cred_part_data.data, enc_krb_cred_part_data.length,
enc_krb_cred_part_data.length, &enc_krb_cred_part,
&enc_krb_cred_part, &len);
&len);
if (enc_krb_cred_part_data.data != cred.enc_part.cipher.data) if (enc_krb_cred_part_data.data != cred.enc_part.cipher.data)
krb5_data_free(&enc_krb_cred_part_data); krb5_data_free(&enc_krb_cred_part_data);
if (ret) if (ret) {
krb5_set_error_message(context, ret,
N_("Failed to decode "
"encrypte credential part", ""));
goto out; goto out;
}
/* check sender address */ /* check sender address */

View File

@@ -58,8 +58,11 @@ decrypt_tkt_enc_part (krb5_context context,
if (ret) if (ret)
return ret; return ret;
ret = krb5_decode_EncTicketPart(context, plain.data, plain.length, ret = decode_EncTicketPart(plain.data, plain.length, decr_part, &len);
decr_part, &len); if (ret)
krb5_set_error_message(context, ret,
N_("Failed to decode encrypted "
"ticket part", ""));
krb5_data_free (&plain); krb5_data_free (&plain);
return ret; return ret;
} }
@@ -881,8 +884,8 @@ krb5_rd_req_ctx(krb5_context context,
krb5_pac_free(context, pac); krb5_pac_free(context, pac);
if (ret) if (ret)
goto out; goto out;
} } else
ret = 0; ret = 0;
} }
out: out:
if (ret || outctx == NULL) { if (ret || outctx == NULL) {