# Re: FW: [Q] cksum of UDP packet

From: crawford charles (biv0uac17_at_hotmail.com)
Date: 07/30/03

• Next message: Calderon, Juan C (EM, DDEMESIS): "RE: Password Hiding"

```To: anqin@anqin.com
Date: Wed, 30 Jul 2003 15:22:32 +0000

```

One infers from the sample below that you did not include the "UDP
See Comer/Stevens, RFC 768, or a host of other references for the UDP
checksum computation.

I hope that this helps.

From: Qin An [mailto:anqin@anqin.com]
Sent: Tuesday, July 29, 2003 11:41 PM
To: secprog@securityfocus.com
Subject: [Q] cksum of UDP packet

Hi, Glad to meet you all!

I got a problem in cksum computation for UDP packet. At the end of this
mail, there is
a function copied from a textbook. I believe it is a universal cksum
calculation function.
I captured a UDP packet on the net:

0x07, 0x2c, 0x00, 0x35, 0x00, 0x0c, 0x98, 0x8e, 0x64, 0x69, 0x72, 0x0a

The 6th and 7th element is the cksum computed by the sender's kernel. My
question is that
when I use in_cksum to compute the cksum, it returns 0x1f22, different from
0x98, 0x8e.
What's wrong here? Is there any other algorithm to compute cksum?

Qin An

==========================================

unsigned short in_cksum (unsigned short *ptr, int nbytes)
{
unsigned long sum; /* assumes long == 32 bits */
unsigned short oddbyte, answer; /* assumes short == 16 bits */

sum = 0;
while (nbytes > 1){
sum += *ptr++;
nbytes -= 2;
}

/* mop up an odd byte, if necessary */
if (nbytes == 1){
/* make sure top half is zero */
oddbyte = 0;
/* one byte only */
* ((unsigned char *) &oddbyte) = *(unsigned char *) ptr;
sum += oddbyte;
}

/* add back carry outs from top 16 bits to low 16 bits */
/* add high-16 to low-16 */
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
/* ones-compliment, then truncate to 16 bits */
}

unsigned char s[] = {
0x07, 0x2c, 0x00, 0x35, 0x00, 0x0c, 0x98,
0x8e, 0x64, 0x69, 0x72, 0x0a};

int main (int argc, char *argv[])
{
int i;

s[6] = s[7] = 0;

i = in_cksum ((unsigned short *) &s[0], 12);
}

_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail

• Next message: Calderon, Juan C (EM, DDEMESIS): "RE: Password Hiding"