/*
 * @file: 
 * @Author: Lida
 * @Date: 2022-12-28 14:49:55
 * @LastEditors: Lida
 * @LastEditTime: 2023-01-09 18:29:23
 */
#ifndef H_SVC_CLOUD_SECURITY_H
#define H_SVC_CLOUD_SECURITY_H

#include "../../com/svc/svc_com.h"

#define SIGN_DATA_INDEX 8
#define REQ_SIGN_INDEX  12
#define RSP_SIGN_INDEX  0

typedef struct{
    gw_u8 sign[16];
    gw_u8 sign_temp[16];
}Sercurity_Manager_Struct;

typedef struct{
    gw_u8 dir;
    gw_u8 product_id[16];
    gw_u8 req_sign[4];
    gw_u8 rsp_sign[4];
    gw_u8 sign_data[4];
}Sercurity_Check_Struct;

void Svc_Cloud_Sercurity_Init(gw_u8 product_id[16],gw_u8 data[4]);
void Svc_Cloud_Sercurity_Get_Req_Sign(gw_u8 out_req_sign[4]);
void Svc_Cloud_Sercurity_Get_Rsp_Sign(gw_u8 out_rsq_sign[4]);
void Svc_Cloud_Sercurity_Get_Sign_Data(gw_u8 out_sign_data[4]);
void Svc_Cloud_Sercurity_Get_Req_Sign_Temp(gw_u8 out_req_sign[4]);
void Svc_Cloud_Sercurity_Produce_Sign(gw_u8 product_id[16]);
E_Result_Check Svc_Cloud_Sercurity_Check_Sign(Sercurity_Check_Struct sercurity_check_struct);

#endif