aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/generator.c
diff options
context:
space:
mode:
Diffstat (limited to 'Source/charon/generator.c')
-rw-r--r--Source/charon/generator.c82
1 files changed, 41 insertions, 41 deletions
diff --git a/Source/charon/generator.c b/Source/charon/generator.c
index 14419ff43..7bfaa00e0 100644
--- a/Source/charon/generator.c
+++ b/Source/charon/generator.c
@@ -37,51 +37,51 @@ typedef struct generator_infos_s generator_infos_t;
struct generator_infos_s {
/**
- * Buffer used to generate to
+ * Buffer used to generate to
*/
u_int8_t *buffer;
-
+
/**
* current write position in buffer (one byte alligned)
*/
u_int8_t *out_position;
-
+
/**
* position of last byte in buffer
*/
u_int8_t *roof_position;
-
+
/**
* Current bit writing to
*/
size_t current_bit;
-
+
/**
* Associated data struct to read informations from
*/
void * data_struct;
/**
* @brief Destroys a generator_infos_t object
- *
+ *
* @param generator_infos_t generator_infos_t object
* @return SUCCESSFUL if succeeded, FAILED otherwise
*/
status_t (*destroy) (generator_infos_t *this);
-
+
/**
* Checks if enough space is available in buffer and if not,
- * the buffer size is increased until at least the asked amount of space
+ * the buffer size is increased until at least the asked amount of space
* is available
- *
+ *
* @param bits number of bits to make at leas available in buffer
* @param generator_infos_t generator_infos_t object
* @return SUCCESSFUL if succeeded, OUT_OF_RES otherwise
*/
status_t (*make_space_available) (generator_infos_t *this,size_t bits);
-
+
status_t (*write_bytes_to_buffer) (generator_infos_t *this,void * bytes,size_t number_of_bytes);
-
- status_t (*write_chunk) (generator_infos_t *this,chunk_t *data);
+
+ status_t (*write_chunk) (generator_infos_t *this,chunk_t *data);
};
/**
@@ -101,9 +101,9 @@ static status_t generator_info_make_space_available (generator_infos_t *this, si
{
return OUT_OF_RES;
}
-
+
this->buffer = new_buffer;
-
+
this->out_position = (this->buffer + out_position_offset);
this->roof_position = (this->buffer + new_buffer_size);
@@ -117,14 +117,14 @@ static status_t generator_info_write_bytes_to_buffer (generator_infos_t *this,vo
u_int8_t *read_position = (u_int8_t *) bytes;
int i;
status_t status;
-
+
status = this->make_space_available(this,number_of_bytes * 8);
-
+
if (status != SUCCESS)
{
return status;
}
-
+
for (i = 0; i < number_of_bytes; i++)
{
*(this->out_position) = *(read_position);
@@ -163,9 +163,9 @@ static status_t generator_infos_destroy (generator_infos_t *this)
}
/**
- * Creates a generator_infos_t-object holding necessary informations
+ * Creates a generator_infos_t object holding necessary informations
* for generating (buffer, data_struct, etc)
- *
+ *
* @param data_struct where to read the data out
*/
generator_infos_t * generator_infos_create(void *data_struct)
@@ -190,7 +190,7 @@ generator_infos_t * generator_infos_create(void *data_struct)
allocator_free(this);
return NULL;
}
-
+
/* set private data */
this->out_position = this->buffer;
this->roof_position = this->buffer + GENERATOR_DATA_BUFFER_SIZE;
@@ -219,7 +219,7 @@ struct private_generator_s {
*
* items are bytewhise written
*
- * @param this private_generator_t-object
+ * @param this private_generator_t object
* @param data_struct data_struct to read data from
* @param encoding_rules pointer to first encoding_rule of encoding rules array
* @param encoding_rules_count number of encoding rules in encoding rules array
@@ -249,7 +249,7 @@ static status_t generate_u_int_type (private_generator_t *this,encoding_type_t i
{
size_t number_of_bits = 0;
status_t status;
-
+
switch (int_type)
{
@@ -276,9 +276,9 @@ static status_t generate_u_int_type (private_generator_t *this,encoding_type_t i
/* current bit has to be zero for values greater then 4 bits */
return FAILED;
}
-
+
status = generator_infos->make_space_available(generator_infos,number_of_bits);
-
+
if (status != SUCCESS)
{
return status;
@@ -289,10 +289,10 @@ static status_t generate_u_int_type (private_generator_t *this,encoding_type_t i
case U_INT_4:
{
if (generator_infos->current_bit == 0)
- {
+ {
u_int8_t high_val = *((u_int8_t *)(generator_infos->data_struct + offset)) << 4;
u_int8_t low_val = *(generator_infos->out_position) & 0x0F;
-
+
*(generator_infos->out_position) = high_val | low_val;
/* write position is not changed, just bit position is moved */
generator_infos->current_bit = 4;
@@ -304,7 +304,7 @@ static status_t generate_u_int_type (private_generator_t *this,encoding_type_t i
*(generator_infos->out_position) = high_val | low_val;
generator_infos->out_position++;
generator_infos->current_bit = 0;
-
+
}
else
{
@@ -313,39 +313,39 @@ static status_t generate_u_int_type (private_generator_t *this,encoding_type_t i
};
break;
}
-
+
case U_INT_8:
{
*generator_infos->out_position = *((u_int8_t *)(generator_infos->data_struct + offset));
generator_infos->out_position++;
break;
-
+
}
case U_INT_16:
{
u_int16_t int16_val = htons(*((u_int16_t*)(generator_infos->data_struct + offset)));
generator_infos->write_bytes_to_buffer(generator_infos,&int16_val,sizeof(u_int16_t));
-
+
break;
}
case U_INT_32:
{
- u_int32_t int32_val = htonl(*((u_int32_t*)(generator_infos->data_struct + offset)));
+ u_int32_t int32_val = htonl(*((u_int32_t*)(generator_infos->data_struct + offset)));
generator_infos->write_bytes_to_buffer(generator_infos,&int32_val,sizeof(u_int32_t));
break;
}
case U_INT_64:
{
u_int32_t int32_val_low = htonl(*((u_int32_t*)(generator_infos->data_struct + offset)));
- u_int32_t int32_val_high = htonl(*((u_int32_t*)(generator_infos->data_struct + offset) + 1));
- generator_infos->write_bytes_to_buffer(generator_infos,&int32_val_high,sizeof(u_int32_t));
- generator_infos->write_bytes_to_buffer(generator_infos,&int32_val_low,sizeof(u_int32_t));
+ u_int32_t int32_val_high = htonl(*((u_int32_t*)(generator_infos->data_struct + offset) + 1));
+ generator_infos->write_bytes_to_buffer(generator_infos,&int32_val_high,sizeof(u_int32_t));
+ generator_infos->write_bytes_to_buffer(generator_infos,&int32_val_low,sizeof(u_int32_t));
break;
}
-
+
default:
return FAILED;
-
+
}
return SUCCESS;
@@ -358,8 +358,8 @@ static status_t generate (private_generator_t *this,void * data_struct,encoding_
{
int i;
status_t status;
-
-
+
+
generator_infos_t *infos = generator_infos_create(data_struct);
if (infos == NULL)
@@ -387,7 +387,7 @@ static status_t generate (private_generator_t *this,void * data_struct,encoding_
u_int8_t reserved_bit = ~(1 << (7 - infos->current_bit));
*(infos->out_position) = *(infos->out_position) & reserved_bit;
-
+
infos->current_bit++;
if (infos->current_bit >= 8)
{
@@ -411,9 +411,9 @@ static status_t generate (private_generator_t *this,void * data_struct,encoding_
{
u_int8_t flag_value = (*((bool *) (infos->data_struct + encoding_rules[i].offset))) ? 1 : 0;
u_int8_t flag = (flag_value << (7 - infos->current_bit));
-
+
*(infos->out_position) = *(infos->out_position) | flag;
-
+
infos->current_bit++;
if (infos->current_bit >= 8)
{