*/
static linked_list_t *evidences = NULL;
+/**
+ * Supported PTS Diffie Hellman Groups
+ */
+static pts_dh_group_t supported_dh_groups = 0;
+
/**
* see section 3.7.1 of TCG TNC IF-IMC Specification 1.2
*/
{
return TNC_RESULT_FATAL;
}
+ if (!pts_probe_dh_groups(&supported_dh_groups))
+ {
+ return TNC_RESULT_FATAL;
+ }
imc_attestation = imc_agent_create(imc_name, IMC_VENDOR_ID, IMC_SUBTYPE,
imc_id, actual_version);
if (!imc_attestation)
*/
static pts_dh_group_t supported_dh_groups = PTS_DH_GROUP_NONE;
+/**
+ * Supported PTS Diffie Hellman Groups
+ */
+static pts_dh_group_t supported_dh_groups = 0;
+
/**
* PTS file measurement database
*/
{
return TNC_RESULT_FATAL;
}
+ if (!pts_probe_dh_groups(&supported_dh_groups))
+ {
+ return TNC_RESULT_FATAL;
+ }
imv_attestation = imv_agent_create(imv_name, IMV_VENDOR_ID, IMV_SUBTYPE,
imv_id, actual_version);
if (!imv_attestation)
return TNC_RESULT_FATAL;
}
+ /**
+ * Specify supported PTS Diffie Hellman Groups
+ *
+ * ike2: PTS_DH_GROUP_IKE2
+ * ike5: PTS_DH_GROUP_IKE2 | PTS_DH_GROUP_IKE5
+ * ike14: PTS_DH_GROUP_IKE2 | PTS_DH_GROUP_IKE5 | PTS_DH_GROUP_IKE14
+ * ike19: PTS_DH_GROUP_IKE2 | PTS_DH_GROUP_IKE5 | PTS_DH_GROUP_IKE14 | PTS_DH_GROUP_IKE19
+ * ike20: PTS_DH_GROUP_IKE2 | PTS_DH_GROUP_IKE5 | PTS_DH_GROUP_IKE14 | PTS_DH_GROUP_IKE19 | PTS_DH_GROUP_IKE20
+ *
+ * we expect the PTS-IMC to select the strongest supported group
+ */
+ dh_group = lib->settings->get_str(lib->settings,
+ "libimcv.plugins.imv-attestation.dh_group", "ike19");
+ if (!pts_update_supported_dh_groups(dh_group, &supported_dh_groups))
+ {
+ return TNC_RESULT_FATAL;
+ }
+
/* create a PTS credential manager */
pts_credmgr = credential_manager_create();
pts/pts_file_meta.h pts/pts_file_meta.c \
pts/pts_file_type.h pts/pts_file_type.c \
pts/pts_meas_algo.h pts/pts_meas_algo.c \
+ pts/pts_dh_group.h pts/pts_dh_group.c \
tcg/tcg_attr.h tcg/tcg_attr.c \
tcg/tcg_pts_attr_proto_caps.h tcg/tcg_pts_attr_proto_caps.c \
tcg/tcg_pts_attr_dh_nonce_params_req.h tcg/tcg_pts_attr_dh_nonce_params_req.c \
#ifndef TCG_PTS_ATTR_DH_NONCE_PARAMS_REQ_H_
#define TCG_PTS_ATTR_DH_NONCE_PARAMS_REQ_H_
-typedef struct tcg_pts_attr_dh_nonce_params_req_t
- tcg_pts_attr_dh_nonce_params_req_t;
+typedef struct tcg_pts_attr_dh_nonce_params_req_t tcg_pts_attr_dh_nonce_params_req_t;
#include "tcg_attr.h"
#include "pa_tnc/pa_tnc_attr.h"