TA-REF
tee_api_defines_extensions.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2014, Linaro Limited
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef TEE_API_DEFINES_EXTENSIONS_H
29#define TEE_API_DEFINES_EXTENSIONS_H
30#ifndef DOXYGEN_SHOULD_SKIP_THIS
31
32/*
33 * HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
34 */
35
36#define TEE_ALG_HKDF_MD5_DERIVE_KEY 0x800010C0
37#define TEE_ALG_HKDF_SHA1_DERIVE_KEY 0x800020C0
38#define TEE_ALG_HKDF_SHA224_DERIVE_KEY 0x800030C0
39#define TEE_ALG_HKDF_SHA256_DERIVE_KEY 0x800040C0
40#define TEE_ALG_HKDF_SHA384_DERIVE_KEY 0x800050C0
41#define TEE_ALG_HKDF_SHA512_DERIVE_KEY 0x800060C0
42
43#define TEE_TYPE_HKDF_IKM 0xA10000C0
44
45#define TEE_ATTR_HKDF_IKM 0xC00001C0
46#define TEE_ATTR_HKDF_SALT 0xD00002C0
47#define TEE_ATTR_HKDF_INFO 0xD00003C0
48#define TEE_ATTR_HKDF_OKM_LENGTH 0xF00004C0
49
50/*
51 * Concatenation Key Derivation Function (Concat KDF)
52 * NIST SP 800-56A section 5.8.1
53 */
54
55#define TEE_ALG_CONCAT_KDF_SHA1_DERIVE_KEY 0x800020C1
56#define TEE_ALG_CONCAT_KDF_SHA224_DERIVE_KEY 0x800030C1
57#define TEE_ALG_CONCAT_KDF_SHA256_DERIVE_KEY 0x800040C1
58#define TEE_ALG_CONCAT_KDF_SHA384_DERIVE_KEY 0x800050C1
59#define TEE_ALG_CONCAT_KDF_SHA512_DERIVE_KEY 0x800060C1
60
61#define TEE_TYPE_CONCAT_KDF_Z 0xA10000C1
62
63#define TEE_ATTR_CONCAT_KDF_Z 0xC00001C1
64#define TEE_ATTR_CONCAT_KDF_OTHER_INFO 0xD00002C1
65#define TEE_ATTR_CONCAT_KDF_DKM_LENGTH 0xF00003C1
66
67/*
68 * PKCS #5 v2.0 Key Derivation Function 2 (PBKDF2)
69 * RFC 2898 section 5.2
70 * https://www.ietf.org/rfc/rfc2898.txt
71 */
72
73#define TEE_ALG_PBKDF2_HMAC_SHA1_DERIVE_KEY 0x800020C2
74
75#define TEE_TYPE_PBKDF2_PASSWORD 0xA10000C2
76
77#define TEE_ATTR_PBKDF2_PASSWORD 0xC00001C2
78#define TEE_ATTR_PBKDF2_SALT 0xD00002C2
79#define TEE_ATTR_PBKDF2_ITERATION_COUNT 0xF00003C2
80#define TEE_ATTR_PBKDF2_DKM_LENGTH 0xF00004C2
81
82/*
83 * Implementation-specific object storage constants
84 */
85
86/* Storage is provided by the Rich Execution Environment (REE) */
87#define TEE_STORAGE_PRIVATE_REE 0x80000000
88/* Storage is the Replay Protected Memory Block partition of an eMMC device */
89#define TEE_STORAGE_PRIVATE_RPMB 0x80000100
90/* Was TEE_STORAGE_PRIVATE_SQL, which isn't supported any longer */
91#define TEE_STORAGE_PRIVATE_SQL_RESERVED 0x80000200
92
93/*
94 * Extension of "Memory Access Rights Constants"
95 * #define TEE_MEMORY_ACCESS_READ 0x00000001
96 * #define TEE_MEMORY_ACCESS_WRITE 0x00000002
97 * #define TEE_MEMORY_ACCESS_ANY_OWNER 0x00000004
98 *
99 * TEE_MEMORY_ACCESS_NONSECURE : if set TEE_CheckMemoryAccessRights()
100 * successfully returns only if target vmem range is mapped non-secure.
101 *
102 * TEE_MEMORY_ACCESS_SECURE : if set TEE_CheckMemoryAccessRights()
103 * successfully returns only if target vmem range is mapped secure.
104
105 */
106#define TEE_MEMORY_ACCESS_NONSECURE 0x10000000
107#define TEE_MEMORY_ACCESS_SECURE 0x20000000
108
109#endif /*DOXYGEN_SHOULD_SKIP_THIS*/
110#endif /* TEE_API_DEFINES_EXTENSIONS_H */