xref: /optee_os/lib/libutee/include/tee_api_defines_extensions.h (revision 9403c583381528e7fb391e3769644cc9653cfbb6)
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 
31 /*
32  * HMAC-based Extract-and-Expand Key Derivation Function (HKDF)
33  */
34 
35 #define TEE_ALG_HKDF_MD5_DERIVE_KEY     0x800010C0
36 #define TEE_ALG_HKDF_SHA1_DERIVE_KEY    0x800020C0
37 #define TEE_ALG_HKDF_SHA224_DERIVE_KEY  0x800030C0
38 #define TEE_ALG_HKDF_SHA256_DERIVE_KEY  0x800040C0
39 #define TEE_ALG_HKDF_SHA384_DERIVE_KEY  0x800050C0
40 #define TEE_ALG_HKDF_SHA512_DERIVE_KEY  0x800060C0
41 
42 #define TEE_TYPE_HKDF_IKM               0xA10000C0
43 
44 #define TEE_ATTR_HKDF_IKM               0xC00001C0
45 #define TEE_ATTR_HKDF_SALT              0xD00002C0
46 #define TEE_ATTR_HKDF_INFO              0xD00003C0
47 #define TEE_ATTR_HKDF_OKM_LENGTH        0xF00004C0
48 
49 /*
50  * Concatenation Key Derivation Function (Concat KDF)
51  * NIST SP 800-56A section 5.8.1
52  */
53 
54 #define TEE_ALG_CONCAT_KDF_SHA1_DERIVE_KEY    0x800020C1
55 #define TEE_ALG_CONCAT_KDF_SHA224_DERIVE_KEY  0x800030C1
56 #define TEE_ALG_CONCAT_KDF_SHA256_DERIVE_KEY  0x800040C1
57 #define TEE_ALG_CONCAT_KDF_SHA384_DERIVE_KEY  0x800050C1
58 #define TEE_ALG_CONCAT_KDF_SHA512_DERIVE_KEY  0x800060C1
59 
60 #define TEE_TYPE_CONCAT_KDF_Z                 0xA10000C1
61 
62 #define TEE_ATTR_CONCAT_KDF_Z                 0xC00001C1
63 #define TEE_ATTR_CONCAT_KDF_OTHER_INFO        0xD00002C1
64 #define TEE_ATTR_CONCAT_KDF_DKM_LENGTH        0xF00003C1
65 
66 /*
67  * PKCS #5 v2.0 Key Derivation Function 2 (PBKDF2)
68  * RFC 2898 section 5.2
69  * https://www.ietf.org/rfc/rfc2898.txt
70  */
71 
72 #define TEE_ALG_PBKDF2_HMAC_SHA1_DERIVE_KEY 0x800020C2
73 
74 #define TEE_TYPE_PBKDF2_PASSWORD            0xA10000C2
75 
76 #define TEE_ATTR_PBKDF2_PASSWORD            0xC00001C2
77 #define TEE_ATTR_PBKDF2_SALT                0xD00002C2
78 #define TEE_ATTR_PBKDF2_ITERATION_COUNT     0xF00003C2
79 #define TEE_ATTR_PBKDF2_DKM_LENGTH          0xF00004C2
80 
81 #endif /* TEE_API_DEFINES_EXTENSIONS_H */
82