16#ifndef CRYPT_MODES_HCTR_H
17#define CRYPT_MODES_HCTR_H
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_HCTR
22#include "crypt_modes.h"
23#include "crypt_types.h"
29typedef struct MODES_HCTR_Buffer {
36void *MODES_HCTR_NewCtx(
void *provCtx, int32_t algId);
37int32_t MODES_HCTR_Init(MODES_CipherCtx *modeCtx,
const uint8_t *key, uint32_t keyLen,
const uint8_t *iv,
38 uint32_t ivLen,
void *param,
bool enc);
39int32_t MODES_HCTR_Update(MODES_CipherCtx *modeCtx,
const uint8_t *in, uint32_t inLen, uint8_t *out, uint32_t *outLen);
40int32_t MODES_HCTR_Final(MODES_CipherCtx *modeCtx, uint8_t *out, uint32_t *outLen);
41int32_t MODES_HCTR_DeInit(MODES_CipherCtx *modeCtx);
42int32_t MODES_HCTR_Ctrl(MODES_CipherCtx *modeCtx, int32_t cmd,
void *val, uint32_t valLen);
43void MODES_HCTR_Free(MODES_CipherCtx *modeCtx);
44MODES_CipherCtx *MODES_HCTR_DupCtx(
const MODES_CipherCtx *modeCtx);