diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-11-19 01:56:05 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-11-28 21:20:24 +0100 |
commit | a1ac4d5e0182585b37e85261299327651bb96728 (patch) | |
tree | 0c5c9cc743fb59b360fbca20ed668cfba35e8dd5 /src/libimcv/plugins/imc_attestation/imc_attestation_process.c | |
parent | 2efc03758d037abc01791f7823e4143ee26021dd (diff) | |
download | strongswan-a1ac4d5e0182585b37e85261299327651bb96728.tar.bz2 strongswan-a1ac4d5e0182585b37e85261299327651bb96728.tar.xz |
finished refactoring functional components
Diffstat (limited to 'src/libimcv/plugins/imc_attestation/imc_attestation_process.c')
-rw-r--r-- | src/libimcv/plugins/imc_attestation/imc_attestation_process.c | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/src/libimcv/plugins/imc_attestation/imc_attestation_process.c b/src/libimcv/plugins/imc_attestation/imc_attestation_process.c index 0924e344b..6441d5418 100644 --- a/src/libimcv/plugins/imc_attestation/imc_attestation_process.c +++ b/src/libimcv/plugins/imc_attestation/imc_attestation_process.c @@ -33,7 +33,7 @@ #include <tcg/tcg_pts_attr_tpm_version_info.h> #include <tcg/tcg_pts_attr_get_aik.h> #include <tcg/tcg_pts_attr_aik.h> -#include <tcg/tcg_pts_attr_req_funct_comp_evid.h> +#include <tcg/tcg_pts_attr_req_func_comp_evid.h> #include <tcg/tcg_pts_attr_gen_attest_evid.h> #include <tcg/tcg_pts_attr_simple_comp_evid.h> #include <tcg/tcg_pts_attr_simple_evid_final.h> @@ -436,37 +436,29 @@ bool imc_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list, break; } - case TCG_PTS_REQ_FUNCT_COMP_EVID: + case TCG_PTS_REQ_FUNC_COMP_EVID: { - tcg_pts_attr_req_funct_comp_evid_t *attr_cast; + tcg_pts_attr_req_func_comp_evid_t *attr_cast; pts_proto_caps_flag_t negotiated_caps; - enumerator_t *e; - pts_funct_comp_evid_req_t *requests; - funct_comp_evid_req_entry_t *entry; - u_int32_t requests_count; - pts_attr_req_funct_comp_evid_flag_t flags; - u_int32_t sub_comp_depth; pts_comp_func_name_t *name; + u_int32_t depth; + u_int8_t flags; + enumerator_t *e; attr_info = attr->get_value(attr); - attr_cast = (tcg_pts_attr_req_funct_comp_evid_t*)attr; - requests = attr_cast->get_requests(attr_cast); - requests_count = requests->get_req_count(requests); + attr_cast = (tcg_pts_attr_req_func_comp_evid_t*)attr; - DBG1(DBG_IMC, "IMV requests evidence%s for: %d functional components", - (requests_count == 1) ? "":"s", requests_count); + DBG1(DBG_IMC, "IMV requests evidence for %d functional components", + attr_cast->get_count(attr_cast)); - e = requests->create_enumerator(requests); - while (e->enumerate(e, &entry)) + e = attr_cast->create_enumerator(attr_cast); + while (e->enumerate(e, &flags, &depth, &name)) { - flags = entry->flags; - sub_comp_depth = entry->sub_comp_depth; - name = entry->name->clone(entry->name); negotiated_caps = pts->get_proto_caps(pts); DBG1(DBG_IMC, "Requested Evidence flags: %d, depth: %d," " vendor_id: %d, qualifier %d, name: %d", - flags, sub_comp_depth, name->get_vendor_id(name), + flags, depth, name->get_vendor_id(name), name->get_qualifier(name), name->get_name(name)); if (flags & PTS_REQ_FUNC_COMP_FLAG_TTC) @@ -500,7 +492,7 @@ bool imc_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list, attr_list->insert_last(attr_list, attr); break; } - if (sub_comp_depth != 0) + if (depth != 0) { DBG1(DBG_IMC, "current version of Attestation IMC does not " "support sub component measurement deeper than " @@ -513,14 +505,6 @@ bool imc_attestation_process(pa_tnc_attr_t *attr, linked_list_t *attr_list, "only functional component namings by ITA"); return FALSE; } - /* Check Family */ - if (name->get_qualifier(name) & PTS_REQ_FUNCT_COMP_FAMILY_MASK) - { - attr = ietf_attr_pa_tnc_error_create(PEN_TCG, - TCG_PTS_INVALID_NAME_FAM, attr_info); - attr_list->insert_last(attr_list, attr); - break; - } /* Check if Unknown or Wildcard was set for qualifier */ if (name->get_qualifier(name) & PTS_QUALIFIER_WILDCARD) |