rt-thread/bsp/airm2m/air32f103/libraries/AIR32F10xLib/lib/cryptlib/air_sm3.h

44 lines
1.1 KiB
C

/* air_sm3.h - header file for sm3.c
*/
#ifndef __AIR_SM3_H
#define __AIR_SM3_H
#ifdef __cplusplus
extern "C" {
#endif
#include <string.h>
#include <stdint.h>
#define AIR_RET_SM3_INIT (0x594F29AA)
#define AIR_RET_SM3_PARAM_ERR (AIR_RET_SM3_INIT + 0x01)
#define AIR_RET_SM3_BUSY (AIR_RET_SM3_INIT + 0x02)
#define AIR_RET_SM3_SUCCESS (AIR_RET_SM3_INIT + 0x0100)
typedef struct
{
uint32_t au32Total[2];
uint8_t au8Buffer[64];
uint32_t au32State[8];
} AIRSM3_Context;
/**
* @method air_sm3
* @brief SM3 Hash Check
* @param output :output data buffer
* @param input :input data buffer
* @param ibytes :size of input data
* @retval :SM3_SUCCESS or SM3_BUSY
*/
uint32_t AIRSM3_Cal(uint8_t au8Output[32], uint8_t *pcu8Input, uint32_t u32Size);
uint32_t AIRSM3_Starts(AIRSM3_Context *pCtx);
uint32_t AIRSM3_Update(AIRSM3_Context *pCtx, uint8_t *pcu8Input, uint32_t u32Ilen);
uint32_t AIRSM3_Finish(AIRSM3_Context *pCtx, uint8_t au8Digest[32]);
#ifdef __cplusplus
}
#endif
#endif