11#ifndef __TAL_SYMMETRY_H__
12#define __TAL_SYMMETRY_H__
14#include "tuya_cloud_types.h"
15#include "tkl_symmetry.h"
24}TAL_SYMMETRY_CRYPT_MODE;
151OPERATE_RET tal_aes_crypt_ctr(TKL_SYMMETRY_HANDLE ctx,
154 UINT8_T nonce_counter[16],
155 UINT8_T stream_block [16],
159OPERATE_RET tal_aes128_ecb_encode_raw(UINT8_T *data,
164OPERATE_RET tal_aes128_ecb_decode_raw(UINT8_T *data,
169OPERATE_RET tal_aes128_cbc_encode_raw(UINT8_T *data,
175OPERATE_RET tal_aes128_cbc_decode_raw(UINT8_T *data,
181OPERATE_RET tal_aes256_cbc_encode_raw(UINT8_T *data,
187OPERATE_RET tal_aes256_cbc_decode_raw(UINT8_T *data,
193OPERATE_RET tal_aes256_ctr_raw(UINT8_T *input,
197 UINT8_T nonce_counter[16],
198 UINT8_T stream_block [16],
201UINT32_T tal_pkcs7padding_buffer(UINT8_T *p_buffer, UINT32_T length);
203INT32_T tal_get_actual_length(IN UINT8_T *dec_data, IN UINT32_T dec_data_len);
205OPERATE_RET tal_aes128_ecb_encode(IN UINT8_T *data, IN UINT32_T len, \
206 OUT UINT8_T **ec_data, OUT UINT32_T *ec_len, \
209OPERATE_RET tal_aes128_ecb_decode(IN UINT8_T *data, IN UINT32_T len, \
210 OUT UINT8_T **dec_data, OUT UINT32_T *dec_len, \
213OPERATE_RET tal_aes128_cbc_encode(IN UINT8_T *data, IN UINT32_T len, \
214 IN UINT8_T *key, IN UINT8_T *iv, \
215 OUT UINT8_T **ec_data, OUT UINT32_T *ec_len);
217OPERATE_RET tal_aes128_cbc_decode(IN UINT8_T *data, IN UINT32_T len, \
218 IN UINT8_T *key, IN UINT8_T *iv, \
219 OUT UINT8_T **dec_data, OUT UINT32_T *dec_len);
221OPERATE_RET tal_aes_free_data(IN UINT8_T *data);
223OPERATE_RET tal_aes_self_test( INT32_T verbose );
OPERATE_RET tal_aes_crypt_cbc(TKL_SYMMETRY_HANDLE ctx, INT32_T mode, size_t length, UINT8_T iv[16], UINT8_T *input, UINT8_T *output)
This function performs an AES-CBC encryption or decryption operation on full blocks.
OPERATE_RET tal_aes_create_init(TKL_SYMMETRY_HANDLE *ctx)
This function Create&initializes a aes context.
OPERATE_RET tal_aes_free(TKL_SYMMETRY_HANDLE ctx)
This function releases and clears the specified AES context.
OPERATE_RET tal_aes_setkey_dec(TKL_SYMMETRY_HANDLE ctx, UINT8_T *key, UINT32_T keybits)
This function sets the decryption key.
OPERATE_RET tal_aes_crypt_ecb(TKL_SYMMETRY_HANDLE ctx, INT32_T mode, size_t length, UINT8_T *input, UINT8_T *output)
This function performs an AES encryption or decryption operation.
OPERATE_RET tal_aes_setkey_enc(TKL_SYMMETRY_HANDLE ctx, UINT8_T *key, UINT32_T keybits)
This function sets the encryption key.