TA-REF
tee-ta-internal.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (C) 2019 National Institute of Advanced Industrial Science
5 * and Technology (AIST)
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 * POSSIBILITY OF SUCH DAMAGE.
29 */
37#ifndef TA_INTERNAL_TEE_H
38#define TA_INTERNAL_TEE_H
39
40#include "tee-common.h"
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45
46void __attribute__((noreturn)) TEE_Panic(unsigned long code);
47
49
53void TEE_GetREETime(TEE_Time *time);
54
56
58/* Wall clock time is important for verifying certificates. */
59void TEE_GetSystemTime(TEE_Time *time);
60
62
69/* Start timer */
70TEE_Result GetRelTimeStart(uint64_t start);
71
73
76TEE_Result GetRelTimeEnd(uint64_t end);
77
79
85TEE_Result TEE_CreatePersistentObject(uint32_t storageID, const void *objectID,
86 uint32_t objectIDLen, uint32_t flags,
87 TEE_ObjectHandle attributes,
88 const void *initialData,
89 uint32_t initialDataLen,
90 TEE_ObjectHandle *object);
92
93TEE_Result TEE_OpenPersistentObject(uint32_t storageID, const void *objectID,
94 uint32_t objectIDLen, uint32_t flags,
95 TEE_ObjectHandle *object);
97
100
101TEE_Result TEE_WriteObjectData(TEE_ObjectHandle object, const void *buffer,
102 uint32_t size);
106 uint32_t size, uint32_t *count);
108
110
111
113
119void TEE_GenerateRandom(void *randomBuffer, uint32_t randomBufferLen);
120
122
125 uint32_t algorithm, uint32_t mode,
126 uint32_t maxKeySize);
128
131
132
134
136 const void *chunk, uint32_t chunkSize);
138TEE_Result TEE_DigestDoFinal(TEE_OperationHandle operation, const void *chunk,
139 uint32_t chunkLen, void *hash, uint32_t *hashLen);
140
142
144 TEE_ObjectHandle key);
146
147TEE_Result TEE_AEInit(TEE_OperationHandle operation, const void *nonce,
148 uint32_t nonceLen, uint32_t tagLen, uint32_t AADLen,
149 uint32_t payloadLen);
151
152TEE_Result TEE_AEUpdate(TEE_OperationHandle operation, const void *srcData,
153 uint32_t srcLen, void *destData, uint32_t *destLen);
155
156void TEE_AEUpdateAAD(TEE_OperationHandle operation, const void *AADdata,
157 uint32_t AADdataLen);
159
161 const void *srcData, uint32_t srcLen,
162 void *destData, uint32_t *destLen, void *tag,
163 uint32_t *tagLen);
165
167 const void *srcData, uint32_t srcLen,
168 void *destData, uint32_t *destLen, void *tag,
169 uint32_t tagLen);
170
172
173void TEE_CipherInit(TEE_OperationHandle operation, const void *nonce,
174 uint32_t nonceLen);
176
177TEE_Result TEE_CipherUpdate(TEE_OperationHandle operation, const void *srcData,
178 uint32_t srcLen, void *destData, uint32_t *destLen);
179
181
182TEE_Result TEE_GenerateKey(TEE_ObjectHandle object, uint32_t keySize,
183 const TEE_Attribute *params, uint32_t paramCount);
185
187 uint32_t maxKeySize,
188 TEE_ObjectHandle *object);
190
191void TEE_InitRefAttribute(TEE_Attribute *attr, uint32_t attributeID,
192 const void *buffer, uint32_t length);
194
195void TEE_InitValueAttribute(TEE_Attribute *attr, uint32_t attributeID,
196 uint32_t a, uint32_t b);
198
200
202
207 const TEE_Attribute *params,
208 uint32_t paramCount, const void *digest,
209 uint32_t digestLen, void *signature,
210 uint32_t *signatureLen);
212
217 const TEE_Attribute *params,
218 uint32_t paramCount, const void *digest,
219 uint32_t digestLen, const void *signature,
220 uint32_t signatureLen);
221
222#ifdef __cplusplus
223}
224#endif
225
226#endif /* TA_INTERNAL_TEE_H */
uint32_t TEE_ObjectType
Definition: tee_api_types.h:104
uint32_t TEE_Result
Definition: tee_api_types.h:43
void TEE_Panic(TEE_Result panicCode)
TEE_Result TEE_CipherUpdate(TEE_OperationHandle operation, const void *srcData, uint32_t srcLen, void *destData, uint32_t *destLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:779
TEE_Result GetRelTimeEnd(uint64_t end)
Core Functions, Time Functions.
Definition: tee-internal-api.c:180
void TEE_InitValueAttribute(TEE_Attribute *attr, uint32_t attributeID, uint32_t a, uint32_t b)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:996
TEE_Result TEE_SetOperationKey(TEE_OperationHandle operation, TEE_ObjectHandle key)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:310
void TEE_GetSystemTime(TEE_Time *time)
Core Functions, Time Functions.
Definition: tee-internal-api.c:141
TEE_Result TEE_AEDecryptFinal(TEE_OperationHandle operation, const void *srcData, uint32_t srcLen, void *destData, uint32_t *destLen, void *tag, uint32_t tagLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:638
void TEE_CloseObject(TEE_ObjectHandle object)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:605
TEE_Result GetRelTimeStart(uint64_t start)
Core Functions, Time Functions.
Definition: tee-internal-api.c:164
TEE_Result TEE_WriteObjectData(TEE_ObjectHandle object, const void *buffer, uint32_t size)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:474
TEE_Result TEE_AsymmetricSignDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, uint32_t digestLen, void *signature, uint32_t *signatureLen)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:1062
void TEE_DigestUpdate(TEE_OperationHandle operation, const void *chunk, uint32_t chunkSize)
Crypto, Message Digest Functions.
Definition: tee-internal-api-cryptlib.c:208
TEE_Result TEE_ReadObjectData(TEE_ObjectHandle object, void *buffer, uint32_t size, uint32_t *count)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:536
void TEE_AEUpdateAAD(TEE_OperationHandle operation, const void *AADdata, uint32_t AADdataLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:433
void TEE_FreeTransientObject(TEE_ObjectHandle object)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:1022
TEE_Result TEE_DigestDoFinal(TEE_OperationHandle operation, const void *chunk, uint32_t chunkLen, void *hash, uint32_t *hashLen)
Definition: tee-internal-api-cryptlib.c:245
TEE_Result TEE_AllocateTransientObject(TEE_ObjectType objectType, uint32_t maxKeySize, TEE_ObjectHandle *object)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:929
TEE_Result TEE_AllocateOperation(TEE_OperationHandle *operation, uint32_t algorithm, uint32_t mode, uint32_t maxKeySize)
Crypto, for all Crypto Functions.
Definition: tee-internal-api-cryptlib.c:94
void TEE_CipherInit(TEE_OperationHandle operation, const void *nonce, uint32_t nonceLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:711
TEE_Result TEE_GetObjectInfo1(TEE_ObjectHandle object, TEE_ObjectInfo *objectInfo)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:453
TEE_Result TEE_AsymmetricVerifyDigest(TEE_OperationHandle operation, const TEE_Attribute *params, uint32_t paramCount, const void *digest, uint32_t digestLen, const void *signature, uint32_t signatureLen)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:1128
void TEE_GenerateRandom(void *randomBuffer, uint32_t randomBufferLen)
Crypto, common.
Definition: tee-internal-api.c:734
void __attribute__((noreturn)) TEE_Panic(unsigned long code)
Definition: tee-internal-api-machine.c:47
void TEE_GetREETime(TEE_Time *time)
Core Functions, Time Functions.
Definition: tee-internal-api.c:114
TEE_Result TEE_GenerateKey(TEE_ObjectHandle object, uint32_t keySize, const TEE_Attribute *params, uint32_t paramCount)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:878
TEE_Result TEE_AEInit(TEE_OperationHandle operation, const void *nonce, uint32_t nonceLen, uint32_t tagLen, uint32_t AADLen, uint32_t payloadLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:362
TEE_Result TEE_AEEncryptFinal(TEE_OperationHandle operation, const void *srcData, uint32_t srcLen, void *destData, uint32_t *destLen, void *tag, uint32_t *tagLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:556
TEE_Result TEE_OpenPersistentObject(uint32_t storageID, const void *objectID, uint32_t objectIDLen, uint32_t flags, TEE_ObjectHandle *object)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:432
void TEE_FreeOperation(TEE_OperationHandle operation)
Crypto, for all Crypto Functions.
Definition: tee-internal-api-cryptlib.c:168
TEE_Result TEE_CreatePersistentObject(uint32_t storageID, const void *objectID, uint32_t objectIDLen, uint32_t flags, TEE_ObjectHandle attributes, const void *initialData, uint32_t initialDataLen, TEE_ObjectHandle *object)
Core Functions, Secure Storage Functions (data is isolated for each TA)
Definition: tee-internal-api.c:400
TEE_Result TEE_AEUpdate(TEE_OperationHandle operation, const void *srcData, uint32_t srcLen, void *destData, uint32_t *destLen)
Crypto, Authenticated Encryption with Symmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:488
void TEE_InitRefAttribute(TEE_Attribute *attr, uint32_t attributeID, const void *buffer, uint32_t length)
Crypto, Asymmetric key Verification Functions.
Definition: tee-internal-api-cryptlib.c:969
Common type and definitions of RISC-V TEE.
Definition: tee_api_types.h:106
Definition: tee_api_types.h:128
Definition: tee_api_types.h:188
Definition: tee_api_tee_types.h:87
Definition: tee_api_tee_types.h:114