384 |
sec_out_mcs_data(STREAM s) |
sec_out_mcs_data(STREAM s) |
385 |
{ |
{ |
386 |
int hostlen = 2 * strlen(hostname); |
int hostlen = 2 * strlen(hostname); |
387 |
|
|
388 |
if (hostlen > 30) |
if (hostlen > 30) |
389 |
hostlen = 30; |
hostlen = 30; |
390 |
|
|
425 |
out_uint32_le(s, 12); |
out_uint32_le(s, 12); |
426 |
out_uint8s(s, 64); /* reserved? 4 + 12 doublewords */ |
out_uint8s(s, 64); /* reserved? 4 + 12 doublewords */ |
427 |
|
|
428 |
out_uint16(s, 0xca01); |
out_uint16_le(s, 0xca01); |
429 |
out_uint16(s, 0); |
out_uint16(s, 0); |
430 |
|
|
431 |
/* Client encryption settings */ |
/* Client encryption settings */ |
432 |
out_uint16_le(s, SEC_TAG_CLI_CRYPT); |
out_uint16_le(s, SEC_TAG_CLI_CRYPT); |
433 |
out_uint16(s, 8); /* length */ |
out_uint16_le(s, 8); /* length */ |
434 |
out_uint32_le(s, encryption ? 0x3 : 0); /* encryption supported, 128-bit supported */ |
out_uint32_le(s, encryption ? 0x3 : 0); /* encryption supported, 128-bit supported */ |
435 |
s_mark_end(s); |
s_mark_end(s); |
436 |
} |
} |
547 |
{ |
{ |
548 |
uint16 tag, length; |
uint16 tag, length; |
549 |
uint8 *next_tag; |
uint8 *next_tag; |
550 |
|
uint8 len; |
551 |
|
|
552 |
in_uint8s(s, 23); /* header */ |
in_uint8s(s, 21); /* header */ |
553 |
|
in_uint8(s, len); |
554 |
|
if (len & 0x80) |
555 |
|
in_uint8(s, len); |
556 |
|
|
557 |
while (s->p < s->end) |
while (s->p < s->end) |
558 |
{ |
{ |