A
download eap_tls_common.h
Language: C
License: GPL
Copyright: (c) 2004-2005, Jouni Malinen
LOC: 43
Project Info
NetBSD(src)
Server: NetBSD
Type: cvs
...rc\src\dist\wpa_supplicant\
   aes.c
   aes_wrap.c
   aes_wrap.h
   base64.c
   base64.h
   common.c
   common.h
   config.c
   config.h
   config_file.c
   config_ssid.h
   config_types.h
   crypto.c
   crypto.h
   crypto_gnutls.c
   ctrl_iface.c
   ctrl_iface.h
   defs.h
   driver.h
   driver_hostap.h
   driver_wired.c
   drivers.c
   eap.c
   eap.h
   eap_aka.c
   eap_defs.h
   eap_fast.c
   eap_gtc.c
   eap_i.h
   eap_leap.c
   eap_md5.c
   eap_mschapv2.c
   eap_otp.c
   eap_pax.c
   eap_pax_common.c
   eap_pax_common.h
   eap_peap.c
   eap_psk.c
   eap_psk_common.c
   eap_psk_common.h
   eap_sim.c
   eap_sim_common.c
   eap_sim_common.h
   eap_tls.c
   eap_tls_common.c
   eap_tls_common.h
   eap_tlv.c
   eap_tlv.h
   eap_ttls.c
   eap_ttls.h
   eapol_sm.c
   eapol_sm.h
   eapol_test.c
   eloop.c
   eloop.h
   events.c
   hostap_common.h
   hostapd.h
   l2_packet.h
   main.c
   md5.c
   md5.h
   ms_funcs.c
   ms_funcs.h
   ...sl-tls-extensions.patch
   pcsc_funcs.c
   pcsc_funcs.h
   preauth.c
   preauth.h
   preauth_test.c
   radius.c
   radius.h
   radius_client.c
   radius_client.h
   rc4.c
   rc4.h
   sha1.c
   sha1.h
   tls.h
   tls_gnutls.c
   tls_none.c
   tls_openssl.c
   tls_schannel.c
   version.h
   wpa.c
   wpa.h
   wpa_cli.c
   wpa_ctrl.c
   wpa_ctrl.h
   wpa_i.h
   wpa_passphrase.c
   wpa_supplicant.c
   wpa_supplicant.conf
   wpa_supplicant.h
   wpa_supplicant_i.h

/*
 * WPA Supplicant / EAP-TLS/PEAP/TTLS/FAST common functions
 * Copyright (c) 2004-2005, Jouni Malinen <jkmaline@cc.hut.fi>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * Alternatively, this software may be distributed under the terms of BSD
 * license.
 *
 * See README and COPYING for more details.
 */

#ifndef EAP_TLS_COMMON_H
#define EAP_TLS_COMMON_H

struct eap_ssl_data {
	struct tls_connection *conn;

	u8 *tls_out;
	size_t tls_out_len;
	size_t tls_out_pos;
	size_t tls_out_limit;
	u8 *tls_in;
	size_t tls_in_len;
	size_t tls_in_left;
	size_t tls_in_total;

	int phase2;
	int include_tls_length; /* include TLS length field even if the TLS
				 * data is not fragmented */

	struct eap_sm *eap;
};


/* EAP TLS Flags */
#define EAP_TLS_FLAGS_LENGTH_INCLUDED 0x80
#define EAP_TLS_FLAGS_MORE_FRAGMENTS 0x40
#define EAP_TLS_FLAGS_START 0x20
#define EAP_PEAP_VERSION_MASK 0x07

 /* could be up to 128 bytes, but only the first 64 bytes are used */
#define EAP_TLS_KEY_LEN 64


int eap_tls_ssl_init(struct eap_sm *sm, struct eap_ssl_data *data,
		     struct wpa_ssid *config);
void eap_tls_ssl_deinit(struct eap_sm *sm, struct eap_ssl_data *data);
u8 * eap_tls_derive_key(struct eap_sm *sm, struct eap_ssl_data *data,
			char *label, size_t len);
const u8 * eap_tls_data_reassemble(
	struct eap_sm *sm, struct eap_ssl_data *data, const u8 *in_data,
	size_t in_len, size_t *out_len, int *need_more_input);
int eap_tls_process_helper(struct eap_sm *sm, struct eap_ssl_data *data,
			   int eap_type, int peap_version,
			   u8 id, const u8 *in_data, size_t in_len,
			   u8 **out_data, size_t *out_len);
u8 * eap_tls_build_ack(struct eap_ssl_data *data, size_t *respDataLen, u8 id,
		       int eap_type, int peap_version);
int eap_tls_reauth_init(struct eap_sm *sm, struct eap_ssl_data *data);
int eap_tls_status(struct eap_sm *sm, struct eap_ssl_data *data, char *buf,
		   size_t buflen, int verbose);
const u8 * eap_tls_process_init(struct eap_sm *sm, struct eap_ssl_data *data,
				EapType eap_type, struct eap_method_ret *ret,
				const u8 *reqData, size_t reqDataLen,
				size_t *len, u8 *flags);

#endif /* EAP_TLS_COMMON_H */

About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us