fixed some byte-order issues
This commit is contained in:
@@ -381,11 +381,14 @@ static void generate_u_int_type (private_generator_t *this,encoding_type_t int_t
|
|||||||
/* get value of attribute format flag */
|
/* get value of attribute format flag */
|
||||||
u_int8_t attribute_format_flag = *(this->out_position) & 0x80;
|
u_int8_t attribute_format_flag = *(this->out_position) & 0x80;
|
||||||
/* get attribute type value as 16 bit integer*/
|
/* get attribute type value as 16 bit integer*/
|
||||||
u_int16_t int16_val = htons(*((u_int16_t*)(this->data_struct + offset)));
|
u_int16_t int16_val = *((u_int16_t*)(this->data_struct + offset));
|
||||||
/* last bit must be unset */
|
/* unset most significant bit */
|
||||||
int16_val = int16_val & 0xFF7F;
|
int16_val &= 0x7FFF;
|
||||||
|
if (attribute_format_flag)
|
||||||
int16_val = int16_val | attribute_format_flag;
|
{
|
||||||
|
int16_val |= 0x8000;
|
||||||
|
}
|
||||||
|
int16_val = htons(int16_val);
|
||||||
DBG3(DBG_ENC, " => %d", int16_val);
|
DBG3(DBG_ENC, " => %d", int16_val);
|
||||||
/* write bytes to buffer (set bit is overwritten)*/
|
/* write bytes to buffer (set bit is overwritten)*/
|
||||||
this->write_bytes_to_buffer(this,&int16_val,sizeof(u_int16_t));
|
this->write_bytes_to_buffer(this,&int16_val,sizeof(u_int16_t));
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ struct private_ke_payload_t {
|
|||||||
/**
|
/**
|
||||||
* DH Group Number.
|
* DH Group Number.
|
||||||
*/
|
*/
|
||||||
diffie_hellman_group_t dh_group_number;
|
u_int16_t dh_group_number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Key Exchange Data of this KE payload.
|
* Key Exchange Data of this KE payload.
|
||||||
|
|||||||
Reference in New Issue
Block a user