Added add_segment() method to TCG/SEG attributes
This commit is contained in:
@@ -148,6 +148,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, add_segment, void,
|
||||
private_tcg_seg_attr_max_size_t *this, chunk_t segment)
|
||||
{
|
||||
this->value = chunk_cat("mc", this->value, segment);
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_max_size_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, destroy, void,
|
||||
private_tcg_seg_attr_max_size_t *this)
|
||||
{
|
||||
@@ -158,13 +171,6 @@ METHOD(pa_tnc_attr_t, destroy, void,
|
||||
}
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_max_size_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(tcg_seg_attr_max_size_t, get_attr_size, void,
|
||||
private_tcg_seg_attr_max_size_t *this, uint32_t *max_attr_size,
|
||||
uint32_t *max_seg_size)
|
||||
@@ -197,6 +203,7 @@ pa_tnc_attr_t* tcg_seg_attr_max_size_create(uint32_t max_attr_size,
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
@@ -230,6 +237,7 @@ pa_tnc_attr_t *tcg_seg_attr_max_size_create_from_data(size_t length,
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
|
||||
@@ -157,6 +157,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, add_segment, void,
|
||||
private_tcg_seg_attr_next_seg_t *this, chunk_t segment)
|
||||
{
|
||||
this->value = chunk_cat("mc", this->value, segment);
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_next_seg_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, destroy, void,
|
||||
private_tcg_seg_attr_next_seg_t *this)
|
||||
{
|
||||
@@ -167,13 +180,6 @@ METHOD(pa_tnc_attr_t, destroy, void,
|
||||
}
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_next_seg_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(tcg_seg_attr_next_seg_t, get_base_attr_id, uint32_t,
|
||||
private_tcg_seg_attr_next_seg_t *this)
|
||||
{
|
||||
@@ -202,6 +208,7 @@ pa_tnc_attr_t* tcg_seg_attr_next_seg_create(uint32_t base_attr_id, bool cancel)
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
@@ -234,6 +241,7 @@ pa_tnc_attr_t *tcg_seg_attr_next_seg_create_from_data(size_t length,
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
|
||||
@@ -127,14 +127,14 @@ METHOD(pa_tnc_attr_t, process, status_t,
|
||||
|
||||
if (this->value.len < this->length)
|
||||
{
|
||||
DBG1(DBG_TNC, "segmentation not allowed for %N", tcg_attr_names,
|
||||
this->type.type);
|
||||
DBG1(DBG_TNC, "segmentation not allowed for %N/%N", pen_names, PEN_TCG,
|
||||
tcg_attr_names, this->type.type);
|
||||
return FAILED;
|
||||
}
|
||||
if (this->value.len < TCG_SEG_ATTR_SEG_ENV_HEADER)
|
||||
{
|
||||
DBG1(DBG_TNC, "insufficient data for %N", tcg_attr_names,
|
||||
this->type.type);
|
||||
DBG1(DBG_TNC, "insufficient data for %N/%N", pen_names, PEN_TCG,
|
||||
tcg_attr_names, this->type.type);
|
||||
return FAILED;
|
||||
}
|
||||
reader = bio_reader_create(this->value);
|
||||
@@ -145,6 +145,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, add_segment, void,
|
||||
private_tcg_seg_attr_seg_env_t *this, chunk_t segment)
|
||||
{
|
||||
/* no segments are expected */
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_seg_env_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, destroy, void,
|
||||
private_tcg_seg_attr_seg_env_t *this)
|
||||
{
|
||||
@@ -155,13 +168,6 @@ METHOD(pa_tnc_attr_t, destroy, void,
|
||||
}
|
||||
}
|
||||
|
||||
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
|
||||
private_tcg_seg_attr_seg_env_t *this)
|
||||
{
|
||||
ref_get(&this->ref);
|
||||
return &this->public.pa_tnc_attribute;
|
||||
}
|
||||
|
||||
METHOD(tcg_seg_attr_seg_env_t, get_segment, chunk_t,
|
||||
private_tcg_seg_attr_seg_env_t *this, uint8_t *flags)
|
||||
{
|
||||
@@ -195,6 +201,7 @@ pa_tnc_attr_t* tcg_seg_attr_seg_env_create(chunk_t segment, uint8_t flags,
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
@@ -233,6 +240,7 @@ pa_tnc_attr_t *tcg_seg_attr_seg_env_create_from_data(size_t length,
|
||||
.set_noskip_flag = _set_noskip_flag,
|
||||
.build = _build,
|
||||
.process = _process,
|
||||
.add_segment = _add_segment,
|
||||
.get_ref = _get_ref,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user