| 
									
										
										
										
											2017-02-10 20:20:24 -02:00
										 |  |  | /* Provide SSL/TLS functions to ESP32 with Arduino IDE
 | 
					
						
							|  |  |  |  * by Evandro Copercini - 2017 - Apache 2.0 License | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ARD_SSL_H
 | 
					
						
							|  |  |  | #define ARD_SSL_H
 | 
					
						
							|  |  |  | #include "mbedtls/platform.h"
 | 
					
						
							|  |  |  | #include "mbedtls/net.h"
 | 
					
						
							|  |  |  | #include "mbedtls/debug.h"
 | 
					
						
							|  |  |  | #include "mbedtls/ssl.h"
 | 
					
						
							|  |  |  | #include "mbedtls/entropy.h"
 | 
					
						
							|  |  |  | #include "mbedtls/ctr_drbg.h"
 | 
					
						
							|  |  |  | #include "mbedtls/error.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct sslclient_context { | 
					
						
							|  |  |  |     int socket; | 
					
						
							|  |  |  |     mbedtls_ssl_context ssl_ctx; | 
					
						
							|  |  |  |     mbedtls_ssl_config ssl_conf; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     mbedtls_ctr_drbg_context drbg_ctx; | 
					
						
							|  |  |  |     mbedtls_entropy_context entropy_ctx; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     mbedtls_x509_crt ca_cert; | 
					
						
							|  |  |  |     mbedtls_x509_crt client_cert; | 
					
						
							|  |  |  |     mbedtls_pk_context client_key; | 
					
						
							|  |  |  | } sslclient_context; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void ssl_init(sslclient_context *ssl_client); | 
					
						
							| 
									
										
										
										
											2017-08-23 21:33:26 -03:00
										 |  |  | int start_ssl_client(sslclient_context *ssl_client, const char *host, uint32_t port, const char *rootCABuff, const char *cli_cert, const char *cli_key); | 
					
						
							| 
									
										
										
										
											2017-03-10 11:52:50 -03:00
										 |  |  | void stop_ssl_socket(sslclient_context *ssl_client, const char *rootCABuff, const char *cli_cert, const char *cli_key); | 
					
						
							| 
									
										
										
										
											2017-02-10 20:20:24 -02:00
										 |  |  | int data_to_read(sslclient_context *ssl_client); | 
					
						
							|  |  |  | int send_ssl_data(sslclient_context *ssl_client, const uint8_t *data, uint16_t len); | 
					
						
							|  |  |  | int get_ssl_receive(sslclient_context *ssl_client, uint8_t *data, int length); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |