18dbcf02cSchristos /* 28dbcf02cSchristos * EAP-TNC - TNCS (IF-IMV, IF-TNCCS, and IF-TNCCS-SOH) 38dbcf02cSchristos * Copyright (c) 2007-2008, Jouni Malinen <j@w1.fi> 48dbcf02cSchristos * 5*e604d861Schristos * This software may be distributed under the terms of the BSD license. 6*e604d861Schristos * See README for more details. 78dbcf02cSchristos */ 88dbcf02cSchristos 98dbcf02cSchristos #ifndef TNCS_H 108dbcf02cSchristos #define TNCS_H 118dbcf02cSchristos 128dbcf02cSchristos struct tncs_data; 138dbcf02cSchristos 148dbcf02cSchristos struct tncs_data * tncs_init(void); 158dbcf02cSchristos void tncs_deinit(struct tncs_data *tncs); 168dbcf02cSchristos void tncs_init_connection(struct tncs_data *tncs); 178dbcf02cSchristos size_t tncs_total_send_len(struct tncs_data *tncs); 188dbcf02cSchristos u8 * tncs_copy_send_buf(struct tncs_data *tncs, u8 *pos); 198dbcf02cSchristos char * tncs_if_tnccs_start(struct tncs_data *tncs); 208dbcf02cSchristos char * tncs_if_tnccs_end(void); 218dbcf02cSchristos 228dbcf02cSchristos enum tncs_process_res { 238dbcf02cSchristos TNCCS_PROCESS_ERROR = -1, 248dbcf02cSchristos TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0, 258dbcf02cSchristos TNCCS_RECOMMENDATION_ERROR, 268dbcf02cSchristos TNCCS_RECOMMENDATION_ALLOW, 278dbcf02cSchristos TNCCS_RECOMMENDATION_NONE, 288dbcf02cSchristos TNCCS_RECOMMENDATION_ISOLATE, 298dbcf02cSchristos TNCCS_RECOMMENDATION_NO_ACCESS, 308dbcf02cSchristos TNCCS_RECOMMENDATION_NO_RECOMMENDATION 318dbcf02cSchristos }; 328dbcf02cSchristos 338dbcf02cSchristos enum tncs_process_res tncs_process_if_tnccs(struct tncs_data *tncs, 348dbcf02cSchristos const u8 *msg, size_t len); 358dbcf02cSchristos 368dbcf02cSchristos int tncs_global_init(void); 378dbcf02cSchristos void tncs_global_deinit(void); 388dbcf02cSchristos 398dbcf02cSchristos struct wpabuf * tncs_build_soh_request(void); 408dbcf02cSchristos struct wpabuf * tncs_process_soh(const u8 *soh_tlv, size_t soh_tlv_len, 418dbcf02cSchristos int *failure); 428dbcf02cSchristos 438dbcf02cSchristos #endif /* TNCS_H */ 44