1189251Ssam/* 2189251Ssam * EAP-TNC - TNCS (IF-IMV, IF-TNCCS, and IF-TNCCS-SOH) 3189251Ssam * Copyright (c) 2007-2008, Jouni Malinen <j@w1.fi> 4189251Ssam * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7189251Ssam */ 8189251Ssam 9189251Ssam#ifndef TNCS_H 10189251Ssam#define TNCS_H 11189251Ssam 12189251Ssamstruct tncs_data; 13189251Ssam 14189251Ssamstruct tncs_data * tncs_init(void); 15189251Ssamvoid tncs_deinit(struct tncs_data *tncs); 16189251Ssamvoid tncs_init_connection(struct tncs_data *tncs); 17189251Ssamsize_t tncs_total_send_len(struct tncs_data *tncs); 18189251Ssamu8 * tncs_copy_send_buf(struct tncs_data *tncs, u8 *pos); 19189251Ssamchar * tncs_if_tnccs_start(struct tncs_data *tncs); 20189251Ssamchar * tncs_if_tnccs_end(void); 21189251Ssam 22189251Ssamenum tncs_process_res { 23189251Ssam TNCCS_PROCESS_ERROR = -1, 24189251Ssam TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0, 25189251Ssam TNCCS_RECOMMENDATION_ERROR, 26189251Ssam TNCCS_RECOMMENDATION_ALLOW, 27189251Ssam TNCCS_RECOMMENDATION_NONE, 28189251Ssam TNCCS_RECOMMENDATION_ISOLATE, 29189251Ssam TNCCS_RECOMMENDATION_NO_ACCESS, 30189251Ssam TNCCS_RECOMMENDATION_NO_RECOMMENDATION 31189251Ssam}; 32189251Ssam 33189251Ssamenum tncs_process_res tncs_process_if_tnccs(struct tncs_data *tncs, 34189251Ssam const u8 *msg, size_t len); 35189251Ssam 36189251Ssamint tncs_global_init(void); 37189251Ssamvoid tncs_global_deinit(void); 38189251Ssam 39189251Ssamstruct wpabuf * tncs_build_soh_request(void); 40189251Ssamstruct wpabuf * tncs_process_soh(const u8 *soh_tlv, size_t soh_tlv_len, 41189251Ssam int *failure); 42189251Ssam 43189251Ssam#endif /* TNCS_H */ 44