API参考
载入中...
搜索中...
未找到
crypt_scrypt.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
16#ifndef CRYPT_SCRYPT_H
17#define CRYPT_SCRYPT_H
18
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_SCRYPT
21
22#include <stdint.h>
23#include "crypt_local_types.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif // __cplusplus
28
29typedef struct CryptScryptCtx CRYPT_SCRYPT_Ctx;
30
31typedef int32_t (*PBKDF2_PRF)(void *libCtx, const EAL_MacMethod *macMeth, CRYPT_MAC_AlgId macId,
32 const EAL_MdMethod *mdMeth,
33 const uint8_t *key, uint32_t keyLen,
34 const uint8_t *salt, uint32_t saltLen,
35 uint32_t iterCnt, uint8_t *out, uint32_t len);
36
55int32_t CRYPT_SCRYPT(PBKDF2_PRF pbkdf2Prf, const EAL_MacMethod *macMeth, CRYPT_MAC_AlgId macId,
56 const EAL_MdMethod *mdMeth, const uint8_t *key, uint32_t keyLen, const uint8_t *salt,
57 uint32_t saltLen, uint32_t n, uint32_t r, uint32_t p, uint8_t *out, uint32_t len);
58
66CRYPT_SCRYPT_Ctx *CRYPT_SCRYPT_NewCtx(void);
67
78CRYPT_SCRYPT_Ctx *CRYPT_SCRYPT_NewCtxEx(void *libCtx, int32_t algId);
79
90int32_t CRYPT_SCRYPT_SetParam(CRYPT_SCRYPT_Ctx *ctx, const BSL_Param *param);
91
103int32_t CRYPT_SCRYPT_Derive(CRYPT_SCRYPT_Ctx *ctx, uint8_t *out, uint32_t len);
104
114int32_t CRYPT_SCRYPT_Deinit(CRYPT_SCRYPT_Ctx *ctx);
115
122void CRYPT_SCRYPT_FreeCtx(CRYPT_SCRYPT_Ctx *ctx);
123
131CRYPT_SCRYPT_Ctx *CRYPT_SCRYPT_DupCtx(const CRYPT_SCRYPT_Ctx *ctx);
132
133#ifdef __cplusplus
134}
135#endif // __cplusplus
136
137#endif // HITLS_CRYPTO_SCRYPT
138
139#endif // CRYPT_SCRYPT_H
CRYPT_MAC_AlgId
定义 crypt_algid.h:91
定义 crypt_local_types.h:303
定义 crypt_local_types.h:63