openHiTLS API openHiTLS 0.1.0-Alpha1
crypt_eal_kdf.h
浏览该文件的文档.
1/*---------------------------------------------------------------------------------------------
2 * This file is part of the openHiTLS project.
3 * Copyright © 2023 Huawei Technologies Co.,Ltd. All rights reserved.
4 * Licensed under the openHiTLS Software license agreement 1.0. See LICENSE in the project root
5 * for license information.
6 *---------------------------------------------------------------------------------------------
7 */
8
15#ifndef CRYPT_EAL_KDF_H
16#define CRYPT_EAL_KDF_H
17
18#include <stdbool.h>
19#include <stdint.h>
20#include "crypt_algid.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif // __cplusplus
43int32_t CRYPT_EAL_Scrypt(const uint8_t *key, uint32_t keyLen, const uint8_t *salt, uint32_t saltLen, uint32_t n,
44 uint32_t r, uint32_t p, uint8_t *out, uint32_t len);
45
68int32_t CRYPT_EAL_Pbkdf2(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *salt,
69 uint32_t saltLen, uint32_t it, uint8_t *out, uint32_t len);
70
89#define CRYPT_EAL_PKCS5_PBKDF2(key, keyLen, salt, saltLen, it, out, len) \
90 CRYPT_EAL_Pbkdf2(CRYPT_MAC_HMAC_SHA256, key, keyLen, salt, saltLen, it, out, len)
91
115int32_t CRYPT_EAL_Hkdf(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *salt, uint32_t saltLen,
116 const uint8_t *info, uint32_t infoLen, uint8_t *out, uint32_t len);
117
134int32_t CRYPT_EAL_HkdfExtract(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen,
135 const uint8_t *salt, uint32_t saltLen, uint8_t *out, uint32_t *len);
136
158int32_t CRYPT_EAL_HkdfExpand(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen,
159 const uint8_t *info, uint32_t infoLen, uint8_t *out, uint32_t len);
160
179int32_t CRYPT_EAL_KdfTls12(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *label,
180 uint32_t labelLen, const uint8_t *seed, uint32_t seedLen, uint8_t *out, uint32_t len);
181
192
203
214
215#ifdef __cplusplus
216}
217#endif // __cplusplus
218
219#endif // CRYPT_EAL_KDF_H
CRYPT_MAC_AlgId
Definition crypt_algid.h:82
int32_t CRYPT_EAL_KdfTls12(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *label, uint32_t labelLen, const uint8_t *seed, uint32_t seedLen, uint8_t *out, uint32_t len)
KDF-TLS1.2
bool CRYPT_EAL_Kdftls12IsValidAlgId(CRYPT_MAC_AlgId id)
Check whether the given KDFTLS12 algorithm ID is a valid KDFTLS12 algorithm ID.
int32_t CRYPT_EAL_Pbkdf2(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *salt, uint32_t saltLen, uint32_t it, uint8_t *out, uint32_t len)
PBKDF password-based key derivation function
int32_t CRYPT_EAL_HkdfExtract(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *salt, uint32_t saltLen, uint8_t *out, uint32_t *len)
HKDF
bool CRYPT_EAL_Pbkdf2IsValidAlgId(CRYPT_MAC_AlgId id)
Check whether the given PBKDF2 algorithm ID is valid.
int32_t CRYPT_EAL_Hkdf(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *salt, uint32_t saltLen, const uint8_t *info, uint32_t infoLen, uint8_t *out, uint32_t len)
HKDF
int32_t CRYPT_EAL_HkdfExpand(CRYPT_MAC_AlgId id, const uint8_t *key, uint32_t keyLen, const uint8_t *info, uint32_t infoLen, uint8_t *out, uint32_t len)
HKDF
bool CRYPT_EAL_HkdfIsValidAlgId(CRYPT_MAC_AlgId id)
Check whether the given HKDF algorithm ID is valid.