1 // SPDX-License-Identifier: BSD-2-Clause
2 /*
3  * Copyright 2018-2020 NXP
4  *
5  * Brief   Definition of the Hash's OID
6  */
7 
8 /* Driver Crypto includes */
9 #include <drvcrypt_asn1_oid.h>
10 #include <utee_defines.h>
11 
12 /*
13  * Hash OID values
14  */
15 const struct drvcrypt_oid drvcrypt_hash_oid[] = {
16 	/* empty entry */
17 	{ NULL, 0 },
18 	/* MD5 */
19 	{ DRVCRYPT_OID_ID_MD5, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_MD5) },
20 	/* SHA1 */
21 	{ DRVCRYPT_OID_ID_SHA1, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_SHA1) },
22 	/* SHA224 */
23 	{ DRVCRYPT_OID_ID_SHA224, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_SHA224) },
24 	/* SHA256 */
25 	{ DRVCRYPT_OID_ID_SHA256, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_SHA256) },
26 	/* SHA384 */
27 	{ DRVCRYPT_OID_ID_SHA384, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_SHA384) },
28 	/* SHA512 */
29 	{ DRVCRYPT_OID_ID_SHA512, DRVCRYPT_OID_LEN(DRVCRYPT_OID_ID_SHA512) },
30 };
31 
drvcrypt_get_alg_hash_oid(uint32_t algo)32 const struct drvcrypt_oid *drvcrypt_get_alg_hash_oid(uint32_t algo)
33 {
34 	uint32_t main_alg = TEE_ALG_GET_MAIN_ALG(algo);
35 
36 	if (main_alg < ARRAY_SIZE(drvcrypt_hash_oid))
37 		return &drvcrypt_hash_oid[main_alg];
38 
39 	return NULL;
40 }
41