コード例 #1
0
static void * eap_mschapv2_init(struct eap_sm *sm)
{
	struct eap_mschapv2_data *data;
	data = wpa_zalloc(sizeof(*data));
	if (data == NULL)
		return NULL;

	data->full_key = sm->mschapv2_full_key;

	if (sm->peer_challenge) {
		data->full_key = 1;
		data->peer_challenge = malloc(16);
		if (data->peer_challenge == NULL) {
			eap_mschapv2_deinit(sm, data);
			return NULL;
		}
		memcpy(data->peer_challenge, sm->peer_challenge, 16);
	}

	if (sm->auth_challenge) {
		data->auth_challenge = malloc(16);
		if (data->auth_challenge == NULL) {
			eap_mschapv2_deinit(sm, data);
			return NULL;
		}
		memcpy(data->auth_challenge, sm->auth_challenge, 16);
	}

	data->phase2 = sm->init_phase2;

	return data;
}
コード例 #2
0
ファイル: eap_mschapv2.c プロジェクト: GabberBaby/peapwn
static void * eap_mschapv2_init(struct eap_sm *sm)
{
	struct eap_mschapv2_data *data;
	data = os_zalloc(sizeof(*data));
	if (data == NULL)
		return NULL;

	if (sm->peer_challenge) {
		data->peer_challenge = os_malloc(MSCHAPV2_CHAL_LEN);
		if (data->peer_challenge == NULL) {
			eap_mschapv2_deinit(sm, data);
			return NULL;
		}
		os_memcpy(data->peer_challenge, sm->peer_challenge,
			  MSCHAPV2_CHAL_LEN);
	}

	if (sm->auth_challenge) {
		data->auth_challenge = os_malloc(MSCHAPV2_CHAL_LEN);
		if (data->auth_challenge == NULL) {
			eap_mschapv2_deinit(sm, data);
			return NULL;
		}
		os_memcpy(data->auth_challenge, sm->auth_challenge,
			  MSCHAPV2_CHAL_LEN);
	}

	data->phase2 = sm->init_phase2;

	return data;
}