| /* SPDX-License-Identifier: BSD-2-Clause */ |
| /* |
| * Copyright (c) 2015, Linaro Limited |
| */ |
| |
| #ifndef TEE_FS_KEY_MANAGER_H |
| #define TEE_FS_KEY_MANAGER_H |
| |
| #include <tee_api_types.h> |
| #include <utee_defines.h> |
| |
| #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 |