TuyaOS
tuya_tls.h
浏览该文件的文档.
1
11#ifndef TUYA_TLS_H
12#define TUYA_TLS_H
13
14//mbedtls only used to encryption the seesion,not used to create the seesion
15#include "tuya_cloud_types.h"
16#include "ssl.h"
17
18
19#ifdef __cplusplus
20 extern "C" {
21#endif
22
23typedef struct {
24 CONST UINT8_T *pub_perm;
25 CONST UINT8_T *pri_perm;
26 UINT16_T pub_perm_len;
27 UINT16_T pri_perm_len;
29
30typedef PVOID_T tuya_tls_hander;
31
32typedef enum {
33 TSS_INIT = 0,
34 TSS_START,
35 TSS_ACCEPT,
36 TSS_TLS_HAND,
37 TSS_TLS_APP,
38} TLS_TCP_STAT_E;
39
40typedef INT_T(*tuya_tls_send_cb)(VOID *p_custom_net_ctx, CONST BYTE_T *buf, SIZE_T len);
41typedef INT_T(*tuya_tls_recv_cb)(VOID *p_custom_net_ctx, BYTE_T *buf, SIZE_T len);
42
49
57int tuya_tls_random(unsigned char *output, size_t output_len);
58
65
74INT_T tuya_tls_read_ap(IN tuya_tls_hander tls_handler, OUT BYTE_T *buf, OUT UINT_T len);
75
84INT_T tuya_tls_write_ap(IN tuya_tls_hander tls_handler, IN BYTE_T *buf, IN UINT_T len);
85
94OPERATE_RET tuya_tls_connect_ap(OUT tuya_tls_hander *p_tls_handler, IN INT_T socket_fd, IN INT_T overtime_s);
95
102OPERATE_RET tuya_tls_disconnect_ap(IN tuya_tls_hander tls_handler);
103
104VOID tuya_tls_load_der_info(VOID);
105
114VOID tuya_tls_register_constant(IN CHAR_T *p_uuid, IN CHAR_T *p_authkey, IN CHAR_T *p_psk_key);
115
121VOID tuya_tls_set_ssl_verify(IN CONST INT_T verify_mode);
122
123
133INT_T tuya_tls_register_x509_crt_der(VOID *p_ctx, UCHAR_T *p_der, UINT_T der_len);
134
141VOID tuya_tls_set_load_cert(BOOL_T load);
142
150void tuya_tls_set_coustom_cert(CHAR_T *cert, INT_T len);
151
161void tuya_tls_set_client_cert_pkey(CHAR_T *cert, INT_T len, CHAR_T *client_pkey, INT_T pkey_len);
162
163typedef enum
164{
165 TY_TLS_CERT_EXPIRED,
166}TY_TLS_EVENT_E;
167typedef VOID (*tuya_tls_event_cb)(TY_TLS_EVENT_E event, VOID *p_args);
168
176OPERATE_RET tuya_tls_init(IN tuya_tls_event_cb event_cb);
177
193OPERATE_RET tuya_tls_connect(OUT tuya_tls_hander *p_tls_handler, IN CHAR_T *hostname,IN INT_T port_num, IN INT_T sethostname,
194 IN VOID *p_custom_net_ctx, IN tuya_tls_send_cb send_cb, IN tuya_tls_recv_cb recv_cb,
195 IN INT_T socket_fd, IN INT_T overtime_s);
196
206INT_T tuya_tls_write(IN tuya_tls_hander tls_handler, BYTE_T *buf, UINT_T len);
207
217INT_T tuya_tls_read(IN tuya_tls_hander tls_handler, BYTE_T *buf, UINT_T len);
218
226OPERATE_RET tuya_tls_disconnect(IN tuya_tls_hander tls_handler);
227
237int __tuya_tls_random(void *p_rng, unsigned char *output, size_t output_len);
238
244
245#ifdef __cplusplus
246}
247
248#endif
249#endif
250
251
Definition: tuya_tls.h:23
int tuya_tls_random(unsigned char *output, size_t output_len)
Get mbedtls random data in the specified length
VOID tuya_tls_register_constant(IN CHAR_T *p_uuid, IN CHAR_T *p_authkey, IN CHAR_T *p_psk_key)
tls register
OPERATE_RET tuya_tls_connect(OUT tuya_tls_hander *p_tls_handler, IN CHAR_T *hostname, IN INT_T port_num, IN INT_T sethostname, IN VOID *p_custom_net_ctx, IN tuya_tls_send_cb send_cb, IN tuya_tls_recv_cb recv_cb, IN INT_T socket_fd, IN INT_T overtime_s)
tls connect
int tuya_tls_random_init(void)
mbedtls random initialization
void tuya_tls_set_calloc_and_free(void)
set tls calloc and free function
OPERATE_RET tuya_tls_init(IN tuya_tls_event_cb event_cb)
tls init
void tuya_tls_set_client_cert_pkey(CHAR_T *cert, INT_T len, CHAR_T *client_pkey, INT_T pkey_len)
set pkey
INT_T tuya_tls_write(IN tuya_tls_hander tls_handler, BYTE_T *buf, UINT_T len)
tls write
VOID tuya_tls_set_ssl_verify(IN CONST INT_T verify_mode)
set tls verity
OPERATE_RET tuya_tls_connect_ap(OUT tuya_tls_hander *p_tls_handler, IN INT_T socket_fd, IN INT_T overtime_s)
ap netcfg tls connect
INT_T tuya_tls_read(IN tuya_tls_hander tls_handler, BYTE_T *buf, UINT_T len)
tls read
int __tuya_tls_random(void *p_rng, unsigned char *output, size_t output_len)
generated random
int tuya_tls_random_deinit(void)
mbedtls random de-init, and free mbedtls random ctx
VOID tuya_tls_set_load_cert(BOOL_T load)
load ca flag
INT_T tuya_tls_register_x509_crt_der(VOID *p_ctx, UCHAR_T *p_der, UINT_T der_len)
tls register x509 ca
void tuya_tls_set_coustom_cert(CHAR_T *cert, INT_T len)
set ca
INT_T tuya_tls_write_ap(IN tuya_tls_hander tls_handler, IN BYTE_T *buf, IN UINT_T len)
ap netcfg tls send
INT_T tuya_tls_read_ap(IN tuya_tls_hander tls_handler, OUT BYTE_T *buf, OUT UINT_T len)
ap netcfg tls recieve
OPERATE_RET tuya_tls_disconnect(IN tuya_tls_hander tls_handler)
generated random
OPERATE_RET tuya_tls_disconnect_ap(IN tuya_tls_hander tls_handler)
ap netcfg tls disconnect