1 /* 2 * This file is part of the openHiTLS project. 3 * 4 * openHiTLS is licensed under the Mulan PSL v2. 5 * You can use this software according to the terms and conditions of the Mulan PSL v2. 6 * You may obtain a copy of Mulan PSL v2 at: 7 * 8 * http://license.coscl.org.cn/MulanPSL2 9 * 10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, 11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, 12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. 13 * See the Mulan PSL v2 for more details. 14 */ 15 16 #ifndef REC_WRAPPER_H 17 #define REC_WRAPPER_H 18 #include "rec.h" 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 /** 24 * @brief REC_read, REC_write read/write callback 25 * 26 * @param ctx [IN] TLS context 27 * @param buf [IN/OUT] Read/write buffer 28 * @param bufLen [IN/OUT] Reads and writes len bytes 29 * @param bufSize [IN] Maximum buffer size 30 * @param userData [IN/OUT] User-defined data 31 */ 32 typedef void (*WrapperFunc)(TLS_Ctx *ctx, uint8_t *buf, uint32_t *bufLen, uint32_t bufSize, void* userData); 33 34 typedef struct { 35 HITLS_HandshakeState ctrlState; 36 REC_Type recordType; 37 bool isRecRead; 38 void *userData; 39 WrapperFunc func; 40 } RecWrapper; 41 42 void RegisterWrapper(RecWrapper wrapper); 43 void ClearWrapper(void); 44 45 #ifdef __cplusplus 46 } 47 #endif 48 49 #endif // REC_WRAPPER_H