test Add/remove pac buffer functions.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@19618 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -82,12 +82,12 @@ static const unsigned char saved_pac[] = {
|
|||||||
0x83, 0xb3, 0x13, 0x3f, 0xfc, 0x5c, 0x41, 0xad, 0xe2, 0x64, 0x83, 0xe0, 0x00, 0x00, 0x00, 0x00
|
0x83, 0xb3, 0x13, 0x3f, 0xfc, 0x5c, 0x41, 0xad, 0xe2, 0x64, 0x83, 0xe0, 0x00, 0x00, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
static krb5_keyblock kdc_keyblock = {
|
static const krb5_keyblock kdc_keyblock = {
|
||||||
ETYPE_ARCFOUR_HMAC_MD5,
|
ETYPE_ARCFOUR_HMAC_MD5,
|
||||||
{ 16, "\xB2\x86\x75\x71\x48\xAF\x7F\xD2\x52\xC5\x36\x03\xA1\x50\xB7\xE7" }
|
{ 16, "\xB2\x86\x75\x71\x48\xAF\x7F\xD2\x52\xC5\x36\x03\xA1\x50\xB7\xE7" }
|
||||||
};
|
};
|
||||||
|
|
||||||
static krb5_keyblock member_keyblock = {
|
static const krb5_keyblock member_keyblock = {
|
||||||
ETYPE_ARCFOUR_HMAC_MD5,
|
ETYPE_ARCFOUR_HMAC_MD5,
|
||||||
{ 16, "\xD2\x17\xFA\xEA\xE5\xE6\xB5\xF9\x5C\xCC\x94\x07\x7A\xB8\xA5\xFC" }
|
{ 16, "\xD2\x17\xFA\xEA\xE5\xE6\xB5\xF9\x5C\xCC\x94\x07\x7A\xB8\xA5\xFC" }
|
||||||
};
|
};
|
||||||
@@ -139,5 +139,79 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
_krb5_pac_free(context, pac);
|
_krb5_pac_free(context, pac);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test empty free
|
||||||
|
*/
|
||||||
|
|
||||||
|
ret = krb5_pac_init(context, &pac);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_init");
|
||||||
|
_krb5_pac_free(context, pac);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test add remove buffer
|
||||||
|
*/
|
||||||
|
|
||||||
|
ret = krb5_pac_init(context, &pac);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_init");
|
||||||
|
|
||||||
|
{
|
||||||
|
const krb5_data cdata = { 2, "\x00\x00" } ;
|
||||||
|
|
||||||
|
ret = krb5_pac_add_buffer(context, pac, 1, &cdata);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_add_buffer");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ret = krb5_pac_get_buffer(context, pac, 1, &data);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_get_buffer");
|
||||||
|
if (data.length != 2 || memcmp(data.data, "\x00\x00", 2) != 0)
|
||||||
|
krb5_errx(context, 1, "krb5_pac_get_buffer data not the same");
|
||||||
|
krb5_data_free(&data);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const krb5_data cdata = { 2, "\x02\x00" } ;
|
||||||
|
|
||||||
|
ret = krb5_pac_add_buffer(context, pac, 2, &cdata);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_add_buffer");
|
||||||
|
}
|
||||||
|
{
|
||||||
|
ret = krb5_pac_get_buffer(context, pac, 1, &data);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_get_buffer");
|
||||||
|
if (data.length != 2 || memcmp(data.data, "\x00\x00", 2) != 0)
|
||||||
|
krb5_errx(context, 1, "krb5_pac_get_buffer data not the same");
|
||||||
|
krb5_data_free(&data);
|
||||||
|
/* */
|
||||||
|
ret = krb5_pac_get_buffer(context, pac, 2, &data);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "krb5_pac_get_buffer");
|
||||||
|
if (data.length != 2 || memcmp(data.data, "\x02\x00", 2) != 0)
|
||||||
|
krb5_errx(context, 1, "krb5_pac_get_buffer data not the same");
|
||||||
|
krb5_data_free(&data);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = _krb5_pac_sign(context, pac, authtime, p,
|
||||||
|
&member_keyblock, &kdc_keyblock, &data);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "_krb5_pac_sign");
|
||||||
|
|
||||||
|
_krb5_pac_free(context, pac);
|
||||||
|
|
||||||
|
ret = _krb5_pac_parse(context, data.data, data.length, &pac);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "_krb5_pac_parse 3");
|
||||||
|
|
||||||
|
ret = _krb5_pac_verify(context, pac, authtime, p,
|
||||||
|
&member_keyblock, &kdc_keyblock);
|
||||||
|
if (ret)
|
||||||
|
krb5_err(context, 1, ret, "_krb5_pac_verify 3");
|
||||||
|
|
||||||
|
_krb5_pac_free(context, pac);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user