1e5b75505Sopenharmony_ci/* 2e5b75505Sopenharmony_ci * EAP-TNC - TNCS (IF-IMV, IF-TNCCS, and IF-TNCCS-SOH) 3e5b75505Sopenharmony_ci * Copyright (c) 2007-2008, Jouni Malinen <j@w1.fi> 4e5b75505Sopenharmony_ci * 5e5b75505Sopenharmony_ci * This software may be distributed under the terms of the BSD license. 6e5b75505Sopenharmony_ci * See README for more details. 7e5b75505Sopenharmony_ci */ 8e5b75505Sopenharmony_ci 9e5b75505Sopenharmony_ci#ifndef TNCS_H 10e5b75505Sopenharmony_ci#define TNCS_H 11e5b75505Sopenharmony_ci 12e5b75505Sopenharmony_cistruct tncs_data; 13e5b75505Sopenharmony_ci 14e5b75505Sopenharmony_cistruct tncs_data * tncs_init(void); 15e5b75505Sopenharmony_civoid tncs_deinit(struct tncs_data *tncs); 16e5b75505Sopenharmony_civoid tncs_init_connection(struct tncs_data *tncs); 17e5b75505Sopenharmony_cisize_t tncs_total_send_len(struct tncs_data *tncs); 18e5b75505Sopenharmony_ciu8 * tncs_copy_send_buf(struct tncs_data *tncs, u8 *pos); 19e5b75505Sopenharmony_cichar * tncs_if_tnccs_start(struct tncs_data *tncs); 20e5b75505Sopenharmony_cichar * tncs_if_tnccs_end(void); 21e5b75505Sopenharmony_ci 22e5b75505Sopenharmony_cienum tncs_process_res { 23e5b75505Sopenharmony_ci TNCCS_PROCESS_ERROR = -1, 24e5b75505Sopenharmony_ci TNCCS_PROCESS_OK_NO_RECOMMENDATION = 0, 25e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_ERROR, 26e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_ALLOW, 27e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_NONE, 28e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_ISOLATE, 29e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_NO_ACCESS, 30e5b75505Sopenharmony_ci TNCCS_RECOMMENDATION_NO_RECOMMENDATION 31e5b75505Sopenharmony_ci}; 32e5b75505Sopenharmony_ci 33e5b75505Sopenharmony_cienum tncs_process_res tncs_process_if_tnccs(struct tncs_data *tncs, 34e5b75505Sopenharmony_ci const u8 *msg, size_t len); 35e5b75505Sopenharmony_ci 36e5b75505Sopenharmony_ciint tncs_global_init(void); 37e5b75505Sopenharmony_civoid tncs_global_deinit(void); 38e5b75505Sopenharmony_ci 39e5b75505Sopenharmony_cistruct wpabuf * tncs_build_soh_request(void); 40e5b75505Sopenharmony_cistruct wpabuf * tncs_process_soh(const u8 *soh_tlv, size_t soh_tlv_len, 41e5b75505Sopenharmony_ci int *failure); 42e5b75505Sopenharmony_ci 43e5b75505Sopenharmony_ci#endif /* TNCS_H */ 44