xref: /openbsd-src/regress/lib/libradius/test00.c (revision 0eaf192d8f98a1706afb2186171b5fb45b160397)
1*0eaf192dSyasuoka #include "incs.h"
2*0eaf192dSyasuoka 
3*0eaf192dSyasuoka /*
4*0eaf192dSyasuoka  * basic header operation
5*0eaf192dSyasuoka  */
6*0eaf192dSyasuoka 
test00(void)7*0eaf192dSyasuoka void test00(void)
8*0eaf192dSyasuoka {
9*0eaf192dSyasuoka 	RADIUS_PACKET *packet;
10*0eaf192dSyasuoka 	uint8_t code;
11*0eaf192dSyasuoka 	uint8_t id;
12*0eaf192dSyasuoka 	const uint8_t *pdata;
13*0eaf192dSyasuoka 	uint8_t authenticator[16];
14*0eaf192dSyasuoka 
15*0eaf192dSyasuoka 	code = random();
16*0eaf192dSyasuoka 	id = random();
17*0eaf192dSyasuoka 	packet = radius_new_request_packet(code);
18*0eaf192dSyasuoka 	radius_set_id(packet, id);
19*0eaf192dSyasuoka 	pdata = (const uint8_t *)radius_get_data(packet);
20*0eaf192dSyasuoka 	CHECK(pdata[0] == code);
21*0eaf192dSyasuoka 	CHECK(radius_get_code(packet) == code);
22*0eaf192dSyasuoka 	CHECK(pdata[1] == id);
23*0eaf192dSyasuoka 	CHECK(radius_get_id(packet) == id);
24*0eaf192dSyasuoka 	CHECK(((pdata[2] << 8) | pdata[3]) == 20);
25*0eaf192dSyasuoka 	CHECK(radius_get_length(packet) == 20);
26*0eaf192dSyasuoka 
27*0eaf192dSyasuoka 	CHECK(radius_get_authenticator_retval(packet) == pdata + 4);
28*0eaf192dSyasuoka 	radius_get_authenticator(packet, authenticator);
29*0eaf192dSyasuoka 	CHECK(memcmp(authenticator, radius_get_authenticator_retval(packet), 16) == 0);
30*0eaf192dSyasuoka }
31*0eaf192dSyasuoka 
32*0eaf192dSyasuoka ADD_TEST(test00)
33