Added add_segment() method to TCG/PTS attributes

This commit is contained in:
Andreas Steffen
2014-10-05 19:43:27 +02:00
parent 01be87d086
commit 1bea00651d
18 changed files with 157 additions and 26 deletions
-5
View File
@@ -171,11 +171,6 @@ METHOD(seg_env_t, add_segment, bool,
chunk_t msg_info;
status_t status;
/* not all attributes might have implemented the add_segment method */
if (!this->base_attr->add_segment)
{
return FALSE;
}
this->base_attr->add_segment(this->base_attr, segment);
status = this->base_attr->process(this->base_attr, &attr_offset);
+8
View File
@@ -173,6 +173,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_aik_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_pts_attr_aik_t *this)
{
@@ -213,6 +219,7 @@ pa_tnc_attr_t *tcg_pts_attr_aik_create(certificate_t *aik)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -243,6 +250,7 @@ pa_tnc_attr_t *tcg_pts_attr_aik_create_from_data(size_t length, chunk_t data)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -172,6 +172,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_dh_nonce_finish_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_pts_attr_dh_nonce_finish_t *this)
{
@@ -228,6 +234,7 @@ pa_tnc_attr_t *tcg_pts_attr_dh_nonce_finish_create(
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -262,6 +269,7 @@ pa_tnc_attr_t *tcg_pts_attr_dh_nonce_finish_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,
},
@@ -156,6 +156,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_dh_nonce_params_req_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_pts_attr_dh_nonce_params_req_t *this)
{
@@ -202,6 +208,7 @@ pa_tnc_attr_t *tcg_pts_attr_dh_nonce_params_req_create(u_int8_t min_nonce_len,
.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_pts_attr_dh_nonce_params_req_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,
},
@@ -182,6 +182,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_dh_nonce_params_resp_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_pts_attr_dh_nonce_params_resp_t *this)
{
@@ -244,6 +250,7 @@ pa_tnc_attr_t *tcg_pts_attr_dh_nonce_params_resp_create(pts_dh_group_t dh_group,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -280,6 +287,7 @@ pa_tnc_attr_t *tcg_pts_attr_dh_nonce_params_resp_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,
},
@@ -224,6 +224,12 @@ end:
return status;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_file_meas_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_pts_attr_file_meas_t *this)
{
@@ -263,6 +269,7 @@ pa_tnc_attr_t *tcg_pts_attr_file_meas_create(pts_file_meas_t *measurements)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -294,6 +301,7 @@ pa_tnc_attr_t *tcg_pts_attr_file_meas_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,
},
@@ -141,6 +141,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_gen_attest_evid_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_pts_attr_gen_attest_evid_t *this)
{
@@ -174,6 +180,7 @@ pa_tnc_attr_t *tcg_pts_attr_gen_attest_evid_create()
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -203,6 +210,7 @@ pa_tnc_attr_t *tcg_pts_attr_gen_attest_evid_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,
},
@@ -114,6 +114,12 @@ METHOD(pa_tnc_attr_t, build, void,
writer->destroy(writer);
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_get_aik_t *this, chunk_t segment)
{
this->value = chunk_cat("mc", this->value, segment);
}
METHOD(pa_tnc_attr_t, process, status_t,
private_tcg_pts_attr_get_aik_t *this, u_int32_t *offset)
{
@@ -171,6 +177,7 @@ pa_tnc_attr_t *tcg_pts_attr_get_aik_create()
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -200,6 +207,7 @@ pa_tnc_attr_t *tcg_pts_attr_get_aik_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,
},
@@ -141,6 +141,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_get_tpm_version_info_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_pts_attr_get_tpm_version_info_t *this)
{
@@ -174,6 +180,7 @@ pa_tnc_attr_t *tcg_pts_attr_get_tpm_version_info_create()
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -203,6 +210,7 @@ pa_tnc_attr_t *tcg_pts_attr_get_tpm_version_info_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,
},
+15 -7
View File
@@ -146,6 +146,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_meas_algo_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_pts_attr_meas_algo_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(pa_tnc_attr_t, destroy, void,
private_tcg_pts_attr_meas_algo_t *this)
{
@@ -156,13 +169,6 @@ METHOD(pa_tnc_attr_t, destroy, void,
}
}
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
private_tcg_pts_attr_meas_algo_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(tcg_pts_attr_meas_algo_t, get_algorithms, pts_meas_algorithms_t,
private_tcg_pts_attr_meas_algo_t *this)
{
@@ -186,6 +192,7 @@ pa_tnc_attr_t *tcg_pts_attr_meas_algo_create(pts_meas_algorithms_t algorithms,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -219,6 +226,7 @@ pa_tnc_attr_t *tcg_pts_attr_meas_algo_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,
},
+15 -7
View File
@@ -148,6 +148,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_proto_caps_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_pts_attr_proto_caps_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(pa_tnc_attr_t, destroy, void,
private_tcg_pts_attr_proto_caps_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_pts_attr_proto_caps_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(tcg_pts_attr_proto_caps_t, get_flags, pts_proto_caps_flag_t,
private_tcg_pts_attr_proto_caps_t *this)
{
@@ -188,6 +194,7 @@ pa_tnc_attr_t *tcg_pts_attr_proto_caps_create(pts_proto_caps_flag_t flags,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -220,6 +227,7 @@ pa_tnc_attr_t *tcg_pts_attr_proto_caps_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,
},
@@ -190,6 +190,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_req_file_meas_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_pts_attr_req_file_meas_t *this)
{
@@ -251,6 +257,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_file_meas_create(bool directory_flag,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -288,6 +295,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_file_meas_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,
},
@@ -182,6 +182,19 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_req_file_meta_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_pts_attr_req_file_meta_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(pa_tnc_attr_t, destroy, void,
private_tcg_pts_attr_req_file_meta_t *this)
{
@@ -193,13 +206,6 @@ METHOD(pa_tnc_attr_t, destroy, void,
}
}
METHOD(pa_tnc_attr_t, get_ref, pa_tnc_attr_t*,
private_tcg_pts_attr_req_file_meta_t *this)
{
ref_get(&this->ref);
return &this->public.pa_tnc_attribute;
}
METHOD(tcg_pts_attr_req_file_meta_t, get_directory_flag, bool,
private_tcg_pts_attr_req_file_meta_t *this)
{
@@ -236,6 +242,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_file_meta_create(bool directory_flag,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -271,6 +278,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_file_meta_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,
},
@@ -271,6 +271,12 @@ end:
return status;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_req_func_comp_evid_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_pts_attr_req_func_comp_evid_t *this)
{
@@ -331,6 +337,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_func_comp_evid_create(void)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -363,6 +370,7 @@ pa_tnc_attr_t *tcg_pts_attr_req_func_comp_evid_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,
},
@@ -438,6 +438,12 @@ end:
return status;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_simple_comp_evid_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_pts_attr_simple_comp_evid_t *this)
{
@@ -478,6 +484,7 @@ pa_tnc_attr_t *tcg_pts_attr_simple_comp_evid_create(pts_comp_evidence_t *evid)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -509,6 +516,7 @@ pa_tnc_attr_t *tcg_pts_attr_simple_comp_evid_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,
},
@@ -132,6 +132,12 @@ METHOD(pa_tnc_attr_t, get_noskip_flag, bool,
return this->noskip_flag;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_simple_evid_final_t *this, chunk_t segment)
{
this->value = chunk_cat("mc", this->value, segment);
}
METHOD(pa_tnc_attr_t, set_noskip_flag,void,
private_tcg_pts_attr_simple_evid_final_t *this, bool noskip)
{
@@ -344,6 +350,7 @@ pa_tnc_attr_t *tcg_pts_attr_simple_evid_final_create(u_int8_t flags,
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -380,6 +387,7 @@ pa_tnc_attr_t *tcg_pts_attr_simple_evid_final_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,
},
@@ -145,6 +145,12 @@ METHOD(pa_tnc_attr_t, process, status_t,
return SUCCESS;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_tpm_version_info_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_pts_attr_tpm_version_info_t *this)
{
@@ -192,6 +198,7 @@ pa_tnc_attr_t *tcg_pts_attr_tpm_version_info_create(chunk_t tpm_version_info)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -224,6 +231,7 @@ pa_tnc_attr_t *tcg_pts_attr_tpm_version_info_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,
},
@@ -278,6 +278,12 @@ end:
return status;
}
METHOD(pa_tnc_attr_t, add_segment, void,
private_tcg_pts_attr_file_meta_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_pts_attr_file_meta_t *this)
{
@@ -318,6 +324,7 @@ pa_tnc_attr_t *tcg_pts_attr_unix_file_meta_create(pts_file_meta_t *metadata)
.set_noskip_flag = _set_noskip_flag,
.build = _build,
.process = _process,
.add_segment = _add_segment,
.get_ref = _get_ref,
.destroy = _destroy,
},
@@ -349,6 +356,7 @@ pa_tnc_attr_t *tcg_pts_attr_unix_file_meta_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,
},