/* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (c) 2015, Linaro Limited */ #ifndef TEE_FS_KEY_MANAGER_H #define TEE_FS_KEY_MANAGER_H #include #include #define TEE_FS_KM_CHIP_ID_LENGTH 32 #define TEE_FS_KM_HMAC_ALG TEE_ALG_HMAC_SHA256 #define TEE_FS_KM_ENC_FEK_ALG TEE_ALG_AES_ECB_NOPAD #define TEE_FS_KM_SSK_SIZE TEE_SHA256_HASH_SIZE #define TEE_FS_KM_TSK_SIZE TEE_SHA256_HASH_SIZE #define TEE_FS_KM_FEK_SIZE 16 /* bytes */ TEE_Result tee_fs_generate_fek(const TEE_UUID *uuid, void *encrypted_fek, size_t fek_size); TEE_Result tee_fs_crypt_block(const TEE_UUID *uuid, uint8_t *out, const uint8_t *in, size_t size, uint16_t blk_idx, const uint8_t *encrypted_fek, TEE_OperationMode mode); TEE_Result tee_fs_fek_crypt(const TEE_UUID *uuid, TEE_OperationMode mode, const uint8_t *in_key, size_t size, uint8_t *out_key); #endif