API参考
载入中...
搜索中...
未找到
crypt_eal_mac.h
1/*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
21
22#ifndef CRYPT_EAL_MAC_H
23#define CRYPT_EAL_MAC_H
24
25#include <stdbool.h>
26#include <stdint.h>
27#include "bsl_params.h"
28#include "crypt_algid.h"
29#include "crypt_types.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35typedef struct EAL_MacCtx CRYPT_EAL_MacCtx;
36
47
58
70CRYPT_EAL_MacCtx *CRYPT_EAL_ProviderMacNewCtx(CRYPT_EAL_LibCtx *libCtx, int32_t algId, const char *attrName);
71
78void CRYPT_EAL_MacFreeCtx(CRYPT_EAL_MacCtx *ctx);
79
102int32_t CRYPT_EAL_MacInit(CRYPT_EAL_MacCtx *ctx, const uint8_t *key, uint32_t len);
103
122int32_t CRYPT_EAL_MacUpdate(CRYPT_EAL_MacCtx *ctx, const uint8_t *in, uint32_t len);
123
151int32_t CRYPT_EAL_MacFinal(CRYPT_EAL_MacCtx *ctx, uint8_t *out, uint32_t *len);
152
161void CRYPT_EAL_MacDeinit(CRYPT_EAL_MacCtx *ctx);
162
173int32_t CRYPT_EAL_MacReinit(CRYPT_EAL_MacCtx *ctx);
174
182uint32_t CRYPT_EAL_GetMacLen(const CRYPT_EAL_MacCtx *ctx);
183
204int32_t CRYPT_EAL_MacCtrl(CRYPT_EAL_MacCtx *ctx, int32_t type, void *in, uint32_t len);
205
216int32_t CRYPT_EAL_MacSetParam(CRYPT_EAL_MacCtx *ctx, const BSL_Param *param);
217
228int32_t CRYPT_EAL_MacCopyCtx(CRYPT_EAL_MacCtx *to, const CRYPT_EAL_MacCtx *from);
229
238CRYPT_EAL_MacCtx *CRYPT_EAL_MacDupCtx(const CRYPT_EAL_MacCtx *from);
239
240#ifdef __cplusplus
241} // end extern "C"
242#endif
243
244#endif // CRYPT_EAL_MAC_H
CRYPT_MAC_AlgId
定义 crypt_algid.h:91
uint32_t CRYPT_EAL_GetMacLen(const CRYPT_EAL_MacCtx *ctx)
Through the context, obtain the output MAC length of the corresponding algorithm.
void CRYPT_EAL_MacDeinit(CRYPT_EAL_MacCtx *ctx)
Deinitialization function.
int32_t CRYPT_EAL_MacUpdate(CRYPT_EAL_MacCtx *ctx, const uint8_t *in, uint32_t len)
Continuously input the MAC data.
bool CRYPT_EAL_MacIsValidAlgId(CRYPT_MAC_AlgId id)
Check whether the id is Valid MAC algorithm ID.
int32_t CRYPT_EAL_MacSetParam(CRYPT_EAL_MacCtx *ctx, const BSL_Param *param)
Set algorithm parameters.
int32_t CRYPT_EAL_MacCtrl(CRYPT_EAL_MacCtx *ctx, int32_t type, void *in, uint32_t len)
Set algorithm parameters. This API must be called after the CRYPT_EAL_MacInit API is called....
CRYPT_EAL_MacCtx * CRYPT_EAL_MacNewCtx(CRYPT_MAC_AlgId id)
Apply for a MAC context.
int32_t CRYPT_EAL_MacFinal(CRYPT_EAL_MacCtx *ctx, uint8_t *out, uint32_t *len)
Output the MAC result.
int32_t CRYPT_EAL_MacCopyCtx(CRYPT_EAL_MacCtx *to, const CRYPT_EAL_MacCtx *from)
Copy the MAC context.
int32_t CRYPT_EAL_MacInit(CRYPT_EAL_MacCtx *ctx, const uint8_t *key, uint32_t len)
CRYPT_EAL_MacCtx * CRYPT_EAL_ProviderMacNewCtx(CRYPT_EAL_LibCtx *libCtx, int32_t algId, const char *attrName)
Create an MAC context in the providers.
int32_t CRYPT_EAL_MacReinit(CRYPT_EAL_MacCtx *ctx)
Re-initialize with the information retained in ctx.
void CRYPT_EAL_MacFreeCtx(CRYPT_EAL_MacCtx *ctx)
Release the MAC context memory.
CRYPT_EAL_MacCtx * CRYPT_EAL_MacDupCtx(const CRYPT_EAL_MacCtx *from)
Dup the MAC context.