1*7122f387Sleisen /* SPDX-License-Identifier: BSD-2-Clause */ 2*7122f387Sleisen /* Copyright (c) 2022-2024 HiSilicon Limited. */ 3*7122f387Sleisen 4*7122f387Sleisen #ifndef __SEC_PBKDF2_H__ 5*7122f387Sleisen #define __SEC_PBKDF2_H__ 6*7122f387Sleisen 7*7122f387Sleisen #define SEC_MAX_SALT_LEN 1024 8*7122f387Sleisen #define SEC_MAX_PASSWORD_LEN 128 9*7122f387Sleisen #define SEC_MAX_DK_LEN 512 10*7122f387Sleisen #define SEC_MAX_ITERATION_NUM 16777215 11*7122f387Sleisen #define SEC_HMAC_SHA1 0x10 12*7122f387Sleisen #define SEC_HMAC_SHA256 0x11 13*7122f387Sleisen #define SEC_HMAC_SHA224 0x13 14*7122f387Sleisen #define SEC_HMAC_SHA384 0x14 15*7122f387Sleisen #define SEC_HMAC_SHA512 0x15 16*7122f387Sleisen #define SEC_HMAC_SM3 0x26 17*7122f387Sleisen #define SEC_HUK_ENABLE 0x1 18*7122f387Sleisen #define SEC_IMG_ROTKEY_AP 0x6 19*7122f387Sleisen #define SEC_CRITICAL_ITERATION_NUM 1000000 20*7122f387Sleisen #define SEC_PER_BLOCK_TIME1_NS (3 * 48) 21*7122f387Sleisen #define SEC_PER_BLOCK_TIME2_NS (3 * 68) 22*7122f387Sleisen #define SEC_MAX_TIMEOUT_NS 4000000000 23*7122f387Sleisen 24*7122f387Sleisen struct sec_pbkdf2_msg { 25*7122f387Sleisen uint8_t salt[SEC_MAX_SALT_LEN]; 26*7122f387Sleisen uint8_t base_key[SEC_MAX_PASSWORD_LEN]; 27*7122f387Sleisen uint8_t out[SEC_MAX_DK_LEN]; 28*7122f387Sleisen uintptr_t salt_dma; 29*7122f387Sleisen uintptr_t key_dma; 30*7122f387Sleisen uintptr_t out_dma; 31*7122f387Sleisen uint32_t salt_len; 32*7122f387Sleisen uint32_t key_len; 33*7122f387Sleisen uint32_t out_len; 34*7122f387Sleisen uint32_t c_num; 35*7122f387Sleisen uint32_t derive_type; 36*7122f387Sleisen }; 37*7122f387Sleisen 38*7122f387Sleisen #endif 39