| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 | /* * ssl_server.h * *  Created on: 08.11.2017 *      Author: balbekova */#ifndef MY_SSL_SERVER_H_#define MY_SSL_SERVER_H_#include "common_config.h"#include "lwip/opt.h"#include "lwip/arch.h"#include "lwip/api.h"#include "mbedtls/ssl.h"#ifdef SSL_SERVER_ENABLE#define HTTP_AUTH_ENABLE#define SSL_TASK_PRIO   ( configMAX_PRIORITIES - 3 )#define FRAME_SIZE      (1000)#define SEND_BUF_MAX_LEN      4000#define RECIVE_BUF_MAX_LEN    2000typedef enum{  SSL_ACCEPT = 0,  SSL_ERROR,  SSL_CRITICAL_ERROR,  SSL_HANDSHAKE,  SSL_READ,  SSL_PROCESSING,  SSL_CLOSE,  SSL_WRITE,  SSL_WRITE_OK,  SSL_WRITE_ERROR,} SSL_SERVER_STATE;typedef enum{	ALL_ACCESS = 0,  TIME_ACCESS} ACCESS_TYPE_t;typedef enum{	COMMON_ANSWER = 0,  PARAMETER_ANSWER,	HISTORY_ANSWER,	UPS_HISTORY_ANSWER} REQ_TYPE_SEND_t;typedef enum{  SEND_REQUIRED_YES = 0,  SEND_REQUIRED_NO,  SEND_REQUIRED_FILE} REQ_TYPE_t;struct http_state{  char *file;  u32_t left;  u32_t reqnum;  void *locked;};struct fs_file {  char *data;  int len;};void HTTP_Init();/**  * @brief  Выводим запросы в консоль  */void vTaskPrintHttp(void *pvParameters);/**  * @brief  Установка даты производства  */void HTTP_Prodate(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Парсинг строки настроек  */void HTTP_SetSettings(char *buf, uint16_t lenBuf);/**  * @brief  * @retval None  */char *HTTP_GetSert(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  * @retval None  */char *HTTP_Upload_Sert(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  */void HTTP_SetInfo(char *buf, uint16_t lenBuf);/**  * @brief  */char* HTTP_SetSettingsPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_SetInfoPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);#ifdef HTTP_AUTH_ENABLE/**  * @brief    */char* HTTP_LoginPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_LogoutPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Смена пароля пользователя  * @retval None  */char *HTTP_ChangeUserPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);#endif/**  * @brief    */char* HTTP_UpsHistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_HistoryPage(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_Reset(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_Reboot(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_Confirm(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Запуск/останов теста UPS  */char* HTTP_UPSTest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Выклюение UPS  */char* HTTP_UPSshutdown(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Проверка пароля для перехода в режим bootloader  */char* HTTP_ConfirmBootPwd(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  Проверка пароля для входа в Web  */int HTTP_ConfirmWebPwd(char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);void HTTP_LOGIN(char *bufOut, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_GetRequest(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief    */char* HTTP_NoFound(uint32_t reqNum, char *bufIn, char *bufOut, uint16_t lenBufIn, uint16_t *lenBufOut);/**  * @brief  */uint8_t GetParamValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);uint8_t GetCookieValue(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);/**  * @brief  * @retval None  */uint8_t GetParamValueInEnd(char *inStr, char *paramName, char *paramValue, uint8_t *paramLen);void ClearParamString(char *inBuf);/**  * @brief  Замена символа в строке  * @param  *str - входная строка  * @param  sim1 - символ который надо заменить  * @param  sim2 - символ на который надо заменить  */void HTTP_ReplaceSimbol(char *str, char sim1, char sim2);// -----------------------------------------------------------------------------//////  SSL тесты////// -----------------------------------------------------------------------------#ifdef __cplusplus extern "C" {#endif/* Exported types ------------------------------------------------------------*/typedef struct{  uint32_t State;}rng_state;void ssl_server(void *pvParameters);int RandVal(void* arg);void HTTP_SendHistory(void);void HTTP_SendLog(void);void HTTP_Init();void HTTPS_Init();int SSL_ReadRoutine(mbedtls_ssl_context *ssl, unsigned char* recvBuf);char* SSL_ProcessingRoutine(uint16_t* sendLen);SSL_SERVER_STATE SSL_WriteRoutine(mbedtls_ssl_context *ssl, char *data, int datalen);SSL_SERVER_STATE SSL_SendFrames(mbedtls_ssl_context *ssl, char *data, int datalen);SSL_SERVER_STATE SSL_Write(mbedtls_ssl_context *ssl, char *data, int datalen);#ifdef __cplusplus}#endif#endif#endif /* SSL_SERVER_H_ */
 |