• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 HS_DTLS_TIMER_H
17 #define HS_DTLS_TIMER_H
18 
19 #include <stdint.h>
20 #include <stdbool.h>
21 #include "hs_ctx.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #ifdef HITLS_TLS_PROTO_DTLS12
28 
29 /**
30  * @brief Start the 2MSL timer.
31  *
32  * @param ctx [IN] tls Context
33  *
34  * @retval HITLS_SUCCESS succeeded.
35  * @retval HITLS_MSG_HANDLE_SYS_TIME_FAIL The system time function fails to return.
36  */
37 int32_t HS_Start2MslTimer(TLS_Ctx *ctx);
38 
39 /**
40  * @brief Start the timer.
41  *
42  * @param ctx [IN] tls Context
43  *
44  * @retval HITLS_SUCCESS succeeded.
45  * @retval HITLS_MSG_HANDLE_SYS_TIME_FAIL The system time function fails to return.
46  */
47 int32_t HS_StartTimer(TLS_Ctx *ctx);
48 
49 /**
50  * @brief   Judge timer timeout
51  *
52  * @param   ctx [IN] tls Context
53  * @param   isTimeout [OUT] Timeout or not
54  *
55  * @retval HITLS_SUCCESS succeeded.
56  * @retval HITLS_MSG_HANDLE_SYS_TIME_FAIL The system time function fails to return.
57  */
58 int32_t HS_IsTimeout(TLS_Ctx *ctx, bool *isTimeout);
59 
60 /**
61  * @brief DTLS receiving timeout timer processing
62  *
63  * @param ctx [IN] tls Context
64  *
65  * @retval HITLS_SUCCESS succeeded.
66  * @retval HITLS_MSG_HANDLE_SYS_TIME_FAIL The system time function fails to return.
67  * @retval HITLS_MSG_HANDLE_DTLS_CONNECT_TIMEOUT DTLS connection timeout
68  */
69 int32_t HS_TimeoutProcess(TLS_Ctx *ctx);
70 
71 #endif
72 
73 #ifdef __cplusplus
74 }
75 #endif /* end __cplusplus */
76 #endif /* end HS_DTLS_TIMER_H */
77