diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2009-01-15 04:25:21 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2009-01-15 04:25:21 +0000 |
| commit | 22188e6ab4f02f981de3b9f228a40b1e8f98e6a1 (patch) | |
| tree | e396cb7a4849178b23486ba07b66a6dfede1d1e9 /eap.c | |
| parent | 17914a6ec9e4814998abdaec5a947b6a78709a19 (diff) | |
Diffstat (limited to 'eap.c')
| -rw-r--r-- | eap.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -892,7 +892,7 @@ static int eap_sm_imsi_identity(struct eap_sm *sm, struct wpa_ssid *ssid) #endif /* PCSC_FUNCS */ -static int eap_sm_get_scard_identity(struct eap_sm *sm, struct wpa_ssid *ssid) +static int eap_sm_set_scard_pin(struct eap_sm *sm, struct wpa_ssid *ssid) { #ifdef PCSC_FUNCS if (scard_set_pin(sm->scard_ctx, ssid->pin)) { @@ -907,6 +907,17 @@ static int eap_sm_get_scard_identity(struct eap_sm *sm, struct wpa_ssid *ssid) eap_sm_request_pin(sm); return -1; } + return 0; +#else /* PCSC_FUNCS */ + return -1; +#endif /* PCSC_FUNCS */ +} + +static int eap_sm_get_scard_identity(struct eap_sm *sm, struct wpa_ssid *ssid) +{ +#ifdef PCSC_FUNCS + if (eap_sm_set_scard_pin(sm, ssid)) + return -1; return eap_sm_imsi_identity(sm, ssid); #else /* PCSC_FUNCS */ @@ -973,6 +984,9 @@ u8 * eap_sm_buildIdentity(struct eap_sm *sm, int id, size_t *len, eap_sm_request_identity(sm); return NULL; } + } else if (config->pcsc) { + if (eap_sm_set_scard_pin(sm, config) < 0) + return NULL; } *len = sizeof(struct eap_hdr) + 1 + identity_len; |
