1 // SPDX-License-Identifier: BSD-2-Clause 2 /* 3 * Copyright 2018-2020 NXP 4 * 5 * Crypto MAC interface implementation to enable HW driver. 6 */ 7 #include <assert.h> 8 #include <drvcrypt.h> 9 #include <drvcrypt_mac.h> 10 #include <utee_defines.h> 11 #include <util.h> 12 drvcrypt_mac_alloc_ctx(struct crypto_mac_ctx ** ctx,uint32_t algo)13TEE_Result drvcrypt_mac_alloc_ctx(struct crypto_mac_ctx **ctx, uint32_t algo) 14 { 15 TEE_Result ret = TEE_ERROR_NOT_IMPLEMENTED; 16 drvcrypt_mac_allocate mac_alloc = NULL; 17 unsigned int algo_id = TEE_ALG_GET_MAIN_ALG(algo); 18 19 CRYPTO_TRACE("mac alloc_ctx algo 0x%" PRIX32, algo); 20 21 assert(ctx); 22 23 if (algo_id >= TEE_MAIN_ALGO_MD5 && algo_id <= TEE_MAIN_ALGO_SHA512) 24 mac_alloc = drvcrypt_get_ops(CRYPTO_HMAC); 25 else 26 mac_alloc = drvcrypt_get_ops(CRYPTO_CMAC); 27 28 if (mac_alloc) 29 ret = mac_alloc(ctx, algo); 30 31 CRYPTO_TRACE("mac alloc_ctx ret 0x%" PRIX32, ret); 32 33 return ret; 34 } 35