Save asn1 class, type and tag of the reply if there is one. Used to
verify the reply in kdc-replay. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20956 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -158,8 +158,9 @@ krb5_kdc_process_krb5_request(krb5_context context,
|
|||||||
int
|
int
|
||||||
krb5_kdc_save_request(krb5_context context,
|
krb5_kdc_save_request(krb5_context context,
|
||||||
const char *fn,
|
const char *fn,
|
||||||
unsigned char *buf,
|
const unsigned char *buf,
|
||||||
size_t len,
|
size_t len,
|
||||||
|
const krb5_data *reply,
|
||||||
const struct sockaddr *sa)
|
const struct sockaddr *sa)
|
||||||
{
|
{
|
||||||
krb5_storage *sp;
|
krb5_storage *sp;
|
||||||
@@ -170,7 +171,7 @@ krb5_kdc_save_request(krb5_context context,
|
|||||||
|
|
||||||
memset(&a, 0, sizeof(a));
|
memset(&a, 0, sizeof(a));
|
||||||
|
|
||||||
d.data = buf;
|
d.data = rk_UNCONST(buf);
|
||||||
d.length = len;
|
d.length = len;
|
||||||
t = _kdc_now.tv_sec;
|
t = _kdc_now.tv_sec;
|
||||||
|
|
||||||
@@ -191,16 +192,24 @@ krb5_kdc_save_request(krb5_context context,
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = krb5_store_uint32(sp, 1);
|
krb5_store_uint32(sp, 1);
|
||||||
if (ret)
|
krb5_store_uint32(sp, t);
|
||||||
goto out2;
|
krb5_store_address(sp, a);
|
||||||
ret = krb5_store_uint32(sp, t);
|
krb5_store_data(sp, d);
|
||||||
if (ret)
|
{
|
||||||
goto out2;
|
Der_class cl;
|
||||||
ret = krb5_store_address(sp, a);
|
Der_type ty;
|
||||||
if (ret)
|
unsigned int tag;
|
||||||
goto out2;
|
ret = der_get_tag (reply->data, reply->length,
|
||||||
ret = krb5_store_data(sp, d);
|
&cl, &ty, &tag, NULL);
|
||||||
|
if (ret) {
|
||||||
|
krb5_store_uint32(sp, 0xffffffff);
|
||||||
|
krb5_store_uint32(sp, 0xffffffff);
|
||||||
|
} else {
|
||||||
|
krb5_store_uint32(sp, MAKE_TAG(cl, ty, 0));
|
||||||
|
krb5_store_uint32(sp, tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
out2:
|
out2:
|
||||||
krb5_free_address(context, &a);
|
krb5_free_address(context, &a);
|
||||||
|
Reference in New Issue
Block a user