diff --git a/src/libimcv/tcg/seg/tcg_seg_attr_max_size.c b/src/libimcv/tcg/seg/tcg_seg_attr_max_size.c index 017bf2c82..010eaf83d 100644 --- a/src/libimcv/tcg/seg/tcg_seg_attr_max_size.c +++ b/src/libimcv/tcg/seg/tcg_seg_attr_max_size.c @@ -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, }, diff --git a/src/libimcv/tcg/seg/tcg_seg_attr_next_seg.c b/src/libimcv/tcg/seg/tcg_seg_attr_next_seg.c index c2dcad319..995f64cad 100644 --- a/src/libimcv/tcg/seg/tcg_seg_attr_next_seg.c +++ b/src/libimcv/tcg/seg/tcg_seg_attr_next_seg.c @@ -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, }, diff --git a/src/libimcv/tcg/seg/tcg_seg_attr_seg_env.c b/src/libimcv/tcg/seg/tcg_seg_attr_seg_env.c index fb53212e9..4f767539c 100644 --- a/src/libimcv/tcg/seg/tcg_seg_attr_seg_env.c +++ b/src/libimcv/tcg/seg/tcg_seg_attr_seg_env.c @@ -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, },