use constants
This commit is contained in:
		@@ -260,6 +260,13 @@ ascii2ucs2le(const char *string, int up, struct ntlm_buf *buf)
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Sizes in bytes
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIZE_SEC_BUFFER		(2+2+4)
 | 
				
			||||||
 | 
					#define SIZE_OS_VERSION		(8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -722,24 +729,28 @@ heim_ntlm_encode_type1(const struct ntlm_type1 *type1, struct ntlm_buf *data)
 | 
				
			|||||||
    struct sec_buffer domain, hostname;
 | 
					    struct sec_buffer domain, hostname;
 | 
				
			||||||
    krb5_storage *out;
 | 
					    krb5_storage *out;
 | 
				
			||||||
    uint32_t base, flags;
 | 
					    uint32_t base, flags;
 | 
				
			||||||
 | 
					    int ucs2 = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    flags = type1->flags;
 | 
					    flags = type1->flags;
 | 
				
			||||||
    base = 16;
 | 
					    base = 16;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (flags & NTLM_NEG_UNICODE)
 | 
				
			||||||
 | 
						ucs2 = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (type1->domain) {
 | 
					    if (type1->domain) {
 | 
				
			||||||
	base += 8;
 | 
						base += SIZE_SEC_BUFFER;
 | 
				
			||||||
	flags |= NTLM_OEM_SUPPLIED_DOMAIN;
 | 
						flags |= NTLM_OEM_SUPPLIED_DOMAIN;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (type1->hostname) {
 | 
					    if (type1->hostname) {
 | 
				
			||||||
	base += 8;
 | 
						base += SIZE_SEC_BUFFER;
 | 
				
			||||||
	flags |= NTLM_OEM_SUPPLIED_WORKSTATION;
 | 
						flags |= NTLM_OEM_SUPPLIED_WORKSTATION;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (flags & NTLM_NEG_VERSION)
 | 
					    if (flags & NTLM_NEG_VERSION)
 | 
				
			||||||
	base += 8; /* os */
 | 
						base += SIZE_OS_VERSION; /* os */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    domain.offset = base;
 | 
					    domain.offset = base;
 | 
				
			||||||
    if (type1->domain) {
 | 
					    if (type1->domain) {
 | 
				
			||||||
	domain.length = len_string(0, type1->domain);
 | 
						domain.length = len_string(ucs2, type1->domain);
 | 
				
			||||||
	domain.allocated = domain.length;
 | 
						domain.allocated = domain.length;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
	domain.length = 0;
 | 
						domain.length = 0;
 | 
				
			||||||
@@ -748,7 +759,7 @@ heim_ntlm_encode_type1(const struct ntlm_type1 *type1, struct ntlm_buf *data)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    hostname.offset = domain.allocated + domain.offset;
 | 
					    hostname.offset = domain.allocated + domain.offset;
 | 
				
			||||||
    if (type1->hostname) {
 | 
					    if (type1->hostname) {
 | 
				
			||||||
	hostname.length = len_string(0, type1->hostname);
 | 
						hostname.length = len_string(ucs2, type1->hostname);
 | 
				
			||||||
	hostname.allocated = hostname.length;
 | 
						hostname.allocated = hostname.length;
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
	hostname.length = 0;
 | 
						hostname.length = 0;
 | 
				
			||||||
@@ -771,9 +782,9 @@ heim_ntlm_encode_type1(const struct ntlm_type1 *type1, struct ntlm_buf *data)
 | 
				
			|||||||
	CHECK(encode_os_version(out), 0);
 | 
						CHECK(encode_os_version(out), 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (type1->domain)
 | 
					    if (type1->domain)
 | 
				
			||||||
	CHECK(put_string(out, 0, type1->domain), 0);
 | 
						CHECK(put_string(out, ucs2, type1->domain), 0);
 | 
				
			||||||
    if (type1->hostname)
 | 
					    if (type1->hostname)
 | 
				
			||||||
	CHECK(put_string(out, 0, type1->hostname), 0);
 | 
						CHECK(put_string(out, ucs2, type1->hostname), 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	krb5_data d;
 | 
						krb5_data d;
 | 
				
			||||||
@@ -881,7 +892,7 @@ heim_ntlm_encode_type2(const struct ntlm_type2 *type2, struct ntlm_buf *data)
 | 
				
			|||||||
    base = 48;
 | 
					    base = 48;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (type2->flags & NTLM_NEG_VERSION)
 | 
					    if (type2->flags & NTLM_NEG_VERSION)
 | 
				
			||||||
	base += 8;
 | 
						base += SIZE_OS_VERSION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (type2->flags & NTLM_NEG_UNICODE)
 | 
					    if (type2->flags & NTLM_NEG_UNICODE)
 | 
				
			||||||
	ucs2 = 1;
 | 
						ucs2 = 1;
 | 
				
			||||||
@@ -1003,12 +1014,12 @@ heim_ntlm_decode_type3(const struct ntlm_buf *buf,
 | 
				
			|||||||
	min_offset = MIN(min_offset, sessionkey.offset);
 | 
						min_offset = MIN(min_offset, sessionkey.offset);
 | 
				
			||||||
	CHECK(krb5_ret_uint32(in, &type3->flags), 0);
 | 
						CHECK(krb5_ret_uint32(in, &type3->flags), 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (min_offset >= 52 + 8 + 4 + 8) {
 | 
					    if (min_offset >= 52 + SIZE_SEC_BUFFER + 4 + SIZE_OS_VERSION) {
 | 
				
			||||||
	CHECK(krb5_ret_uint32(in, &type3->os[0]), 0);
 | 
						CHECK(krb5_ret_uint32(in, &type3->os[0]), 0);
 | 
				
			||||||
	CHECK(krb5_ret_uint32(in, &type3->os[1]), 0);
 | 
						CHECK(krb5_ret_uint32(in, &type3->os[1]), 0);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (min_offset >= 52 + 8 + 4 + 8 + 16) {
 | 
					    if (min_offset >= 52 + SIZE_SEC_BUFFER + 4 + SIZE_OS_VERSION + 16) {
 | 
				
			||||||
	type3->mic_offset = 52 + 8 + 4 + 8;
 | 
						type3->mic_offset = 52 + SIZE_SEC_BUFFER + 4 + SIZE_OS_VERSION;
 | 
				
			||||||
	CHECK_SIZE(krb5_storage_read(in, type3->mic, sizeof(type3->mic)), sizeof(type3->mic));
 | 
						CHECK_SIZE(krb5_storage_read(in, type3->mic, sizeof(type3->mic)), sizeof(type3->mic));
 | 
				
			||||||
    } else
 | 
					    } else
 | 
				
			||||||
	type3->mic_offset = 0;
 | 
						type3->mic_offset = 0;
 | 
				
			||||||
@@ -1063,7 +1074,7 @@ heim_ntlm_encode_type3(const struct ntlm_type3 *type3, struct ntlm_buf *data, si
 | 
				
			|||||||
    base += 8; /* sessionkey sec buf */
 | 
					    base += 8; /* sessionkey sec buf */
 | 
				
			||||||
    base += 4; /* flags */
 | 
					    base += 4; /* flags */
 | 
				
			||||||
    if (type3->flags & NTLM_NEG_VERSION)
 | 
					    if (type3->flags & NTLM_NEG_VERSION)
 | 
				
			||||||
	base += 8; /* os flags */
 | 
						base += SIZE_OS_VERSION; /* os flags */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mic_offset) {
 | 
					    if (mic_offset) {
 | 
				
			||||||
	*mic_offset = base;
 | 
						*mic_offset = base;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user