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
|
#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;
|
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 */
|
#endif /* EAP_TNC */
|
||||||
|
|
||||||
|
@ -668,7 +674,8 @@ static int eap_peap_phase2_request(struct eap_sm *sm,
|
||||||
struct wpabuf *buf;
|
struct wpabuf *buf;
|
||||||
wpa_printf(MSG_DEBUG,
|
wpa_printf(MSG_DEBUG,
|
||||||
"EAP-PEAP: SoH EAP Extensions");
|
"EAP-PEAP: SoH EAP Extensions");
|
||||||
buf = tncc_process_soh_request(epos, eleft);
|
buf = tncc_process_soh_request(data->soh,
|
||||||
|
epos, eleft);
|
||||||
if (buf) {
|
if (buf) {
|
||||||
*resp = eap_msg_alloc(
|
*resp = eap_msg_alloc(
|
||||||
EAP_VENDOR_MICROSOFT, 0x21,
|
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;
|
struct wpabuf *buf;
|
||||||
u8 *tlv_len, *tlv_len2, *outer_len, *inner_len, *ssoh_len, *end;
|
u8 *tlv_len, *tlv_len2, *outer_len, *inner_len, *ssoh_len, *end;
|
||||||
u8 correlation_id[24];
|
u8 correlation_id[24];
|
||||||
int ver = 2;
|
|
||||||
/* TODO: get correct name */
|
/* TODO: get correct name */
|
||||||
char *machinename = "wpa_supplicant@w1.fi";
|
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;
|
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");
|
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,
|
enum tncc_process_res tncc_process_if_tnccs(struct tncc_data *tncc,
|
||||||
const u8 *msg, size_t len);
|
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 */
|
#endif /* TNCC_H */
|
||||||
|
|
Loading…
Reference in a new issue