Added option to force SoH version 1 (tnc=soh1)
The default version with tnc=soh remains to be 2 which is the currently recommended version in SoH specification.
This commit is contained in:
parent
9c9f869a05
commit
9478eaef53
3 changed files with 14 additions and 8 deletions
|
@ -119,9 +119,15 @@ static int eap_peap_parse_phase1(struct eap_peap_data *data,
|
|||
}
|
||||
|
||||
#ifdef EAP_TNC
|
||||
if (os_strstr(phase1, "tnc=soh")) {
|
||||
if (os_strstr(phase1, "tnc=soh2")) {
|
||||
data->soh = 2;
|
||||
wpa_printf(MSG_DEBUG, "EAP-PEAP: SoH version 2 enabled");
|
||||
} else if (os_strstr(phase1, "tnc=soh1")) {
|
||||
data->soh = 1;
|
||||
wpa_printf(MSG_DEBUG, "EAP-PEAP: SoH enabled");
|
||||
wpa_printf(MSG_DEBUG, "EAP-PEAP: SoH version 1 enabled");
|
||||
} else if (os_strstr(phase1, "tnc=soh")) {
|
||||
data->soh = 2;
|
||||
wpa_printf(MSG_DEBUG, "EAP-PEAP: SoH version 2 enabled");
|
||||
}
|
||||
#endif /* EAP_TNC */
|
||||
|
||||
|
@ -668,7 +674,8 @@ static int eap_peap_phase2_request(struct eap_sm *sm,
|
|||
struct wpabuf *buf;
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"EAP-PEAP: SoH EAP Extensions");
|
||||
buf = tncc_process_soh_request(epos, eleft);
|
||||
buf = tncc_process_soh_request(data->soh,
|
||||
epos, eleft);
|
||||
if (buf) {
|
||||
*resp = eap_msg_alloc(
|
||||
EAP_VENDOR_MICROSOFT, 0x21,
|
||||
|
|
|
@ -1218,12 +1218,11 @@ void tncc_deinit(struct tncc_data *tncc)
|
|||
}
|
||||
|
||||
|
||||
static struct wpabuf * tncc_build_soh(void)
|
||||
static struct wpabuf * tncc_build_soh(int ver)
|
||||
{
|
||||
struct wpabuf *buf;
|
||||
u8 *tlv_len, *tlv_len2, *outer_len, *inner_len, *ssoh_len, *end;
|
||||
u8 correlation_id[24];
|
||||
int ver = 2;
|
||||
/* TODO: get correct name */
|
||||
char *machinename = "wpa_supplicant@w1.fi";
|
||||
|
||||
|
@ -1332,7 +1331,7 @@ static struct wpabuf * tncc_build_soh(void)
|
|||
}
|
||||
|
||||
|
||||
struct wpabuf * tncc_process_soh_request(const u8 *data, size_t len)
|
||||
struct wpabuf * tncc_process_soh_request(int ver, const u8 *data, size_t len)
|
||||
{
|
||||
const u8 *pos;
|
||||
|
||||
|
@ -1365,5 +1364,5 @@ struct wpabuf * tncc_process_soh_request(const u8 *data, size_t len)
|
|||
|
||||
wpa_printf(MSG_DEBUG, "TNC: SoH Request TLV received");
|
||||
|
||||
return tncc_build_soh();
|
||||
return tncc_build_soh(2);
|
||||
}
|
||||
|
|
|
@ -37,6 +37,6 @@ enum tncc_process_res {
|
|||
enum tncc_process_res tncc_process_if_tnccs(struct tncc_data *tncc,
|
||||
const u8 *msg, size_t len);
|
||||
|
||||
struct wpabuf * tncc_process_soh_request(const u8 *data, size_t len);
|
||||
struct wpabuf * tncc_process_soh_request(int ver, const u8 *data, size_t len);
|
||||
|
||||
#endif /* TNCC_H */
|
||||
|
|
Loading…
Reference in a new issue