static void * eap_gpsk_init(struct eap_sm *sm) { struct eap_gpsk_data *data; const u8 *identity, *password; size_t identity_len, password_len; const char *phase1; password = eap_get_config_password(sm, &password_len); if (password == NULL) { wpa_printf(MSG_INFO, "EAP-GPSK: No key (password) configured"); return NULL; } data = os_zalloc(sizeof(*data)); if (data == NULL) return NULL; data->state = GPSK_1; identity = eap_get_config_identity(sm, &identity_len); if (identity) { data->id_peer = os_malloc(identity_len); if (data->id_peer == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->id_peer, identity, identity_len); data->id_peer_len = identity_len; } phase1 = eap_get_config_phase1(sm); if (phase1) { const char *pos; pos = os_strstr(phase1, "cipher="); if (pos) { data->forced_cipher = atoi(pos + 7); wpa_printf(MSG_DEBUG, "EAP-GPSK: Forced cipher %u", data->forced_cipher); } } data->psk = os_malloc(password_len); if (data->psk == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->psk, password, password_len); data->psk_len = password_len; return data; }
static void * eap_gpsk_init(struct eap_sm *sm) { struct wpa_ssid *config = eap_get_config(sm); struct eap_gpsk_data *data; if (config == NULL) { wpa_printf(MSG_INFO, "EAP-GPSK: No configuration found"); return NULL; } if (config->eappsk == NULL) { wpa_printf(MSG_INFO, "EAP-GPSK: No key (eappsk) configured"); return NULL; } data = os_zalloc(sizeof(*data)); if (data == NULL) return NULL; data->state = GPSK_1; if (config->nai) { data->id_client = os_malloc(config->nai_len); if (data->id_client == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->id_client, config->nai, config->nai_len); data->id_client_len = config->nai_len; } data->psk = os_malloc(config->eappsk_len); if (data->psk == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->psk, config->eappsk, config->eappsk_len); data->psk_len = config->eappsk_len; return data; }
static void * eap_gpsk_init(struct eap_sm *sm) { struct eap_gpsk_data *data; const u8 *identity, *password; size_t identity_len, password_len; password = eap_get_config_password(sm, &password_len); if (password == NULL) { wpa_printf(MSG_INFO, "EAP-GPSK: No key (password) configured"); return NULL; } data = os_zalloc(sizeof(*data)); if (data == NULL) return NULL; data->state = GPSK_1; identity = eap_get_config_identity(sm, &identity_len); if (identity) { data->id_peer = os_malloc(identity_len); if (data->id_peer == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->id_peer, identity, identity_len); data->id_peer_len = identity_len; } data->psk = os_malloc(password_len); if (data->psk == NULL) { eap_gpsk_deinit(sm, data); return NULL; } os_memcpy(data->psk, password, password_len); data->psk_len = password_len; return data; }