31#ifndef TEE_API_TYPES_KEYSTONE_H
32#define TEE_API_TYPES_KEYSTONE_H
34#ifndef DOXYGEN_SHOULD_SKIP_THIS
37#define SHA_LENGTH (256/8)
42#include "ed25519/ed25519.h"
44#if CRYPTLIB==MBEDCRYPT
45#ifndef DOXYGEN_SHOULD_SKIP_THIS
46# define MBEDTLS_CONFIG_FILE "mbed-crypto-config.h"
48# include "mbedtls/gcm.h"
49# include "mbedtls/aes.h"
50#elif CRYPTLIB==WOLFCRYPT
51#ifndef DOXYGEN_SHOULD_SKIP_THIS
53# define HAVE_AES_CBC 1
54# define HAVE_AES_DECRYPT 1
56# define HAVE_FIPS_VERSION 2
57# define HAVE_ED25519 1
58# define HAVE_ED25519_SIGN 1
59# define HAVE_ED25519_VERIFY 1
60# define WOLFSSL_SHA3 1
61# define WOLF_CRYPT_PORT_H
63# include "wolfssl/wolfcrypt/sha3.h"
64# include "wolfssl/wolfcrypt/aes.h"
65# include "wolfssl/wolfcrypt/sha512.h"
66# include "wolfssl/wolfcrypt/ed25519.h"
68# include "tiny_AES_c/aes.h"
71#ifndef DOXYGEN_SHOULD_SKIP_THIS
72#define TEE_OBJECT_NONCE_SIZE 16
73#define TEE_OBJECT_KEY_SIZE 32
74#define TEE_OBJECT_SKEY_SIZE 64
75#define TEE_OBJECT_AAD_SIZE 16
76#define TEE_OBJECT_TAG_SIZE 16
84#if CRYPTLIB==MBEDCRYPT
86 mbedtls_aes_context
aectx;
88#elif CRYPTLIB==WOLFCRYPT
92 unsigned int aegcm_aadsz;
93 unsigned char aegcm_aad[TEE_OBJECT_AAD_SIZE];
100 unsigned char aeiv[TEE_OBJECT_NONCE_SIZE];
101 unsigned char aekey[32];
102 unsigned char pubkey[TEE_OBJECT_KEY_SIZE];
103 unsigned char prikey[TEE_OBJECT_SKEY_SIZE];
111#if CRYPTLIB==MBEDCRYPT
113 unsigned char persist_iv[TEE_OBJECT_NONCE_SIZE];
114#elif CRYPTLIB==WOLFCRYPT
116 unsigned char persist_iv[TEE_OBJECT_NONCE_SIZE];
121 unsigned char public_key[TEE_OBJECT_KEY_SIZE];
126#ifndef DOXYGEN_SHOULD_SKIP_THIS
127#define TEE_HANDLE_NULL 0
Definition: tee_api_tee_types.h:87
mbedtls_gcm_context aegcmctx
Definition: tee_api_tee_types.h:94
int flags
Definition: tee_api_tee_types.h:89
unsigned char aeiv[TEE_OBJECT_NONCE_SIZE]
Definition: tee_api_tee_types.h:107
int aegcm_state
Definition: tee_api_tee_types.h:106
unsigned char prikey[TEE_OBJECT_SKEY_SIZE]
Definition: tee_api_tee_types.h:110
mbedtls_aes_context aectx
Definition: tee_api_tee_types.h:93
unsigned char pubkey[TEE_OBJECT_KEY_SIZE]
Definition: tee_api_tee_types.h:109
unsigned char aekey[32]
Definition: tee_api_tee_types.h:108
sha3_ctx_t ctx
Definition: tee_api_tee_types.h:92
int alg
Definition: tee_api_tee_types.h:90
int mode
Definition: tee_api_tee_types.h:88
Definition: tee_api_tee_types.h:114
int desc
Definition: tee_api_tee_types.h:117
unsigned int type
Definition: tee_api_tee_types.h:115
int flags
Definition: tee_api_tee_types.h:116
mbedtls_aes_context persist_ctx
Definition: tee_api_tee_types.h:119
unsigned char persist_iv[TEE_OBJECT_NONCE_SIZE]
Definition: tee_api_tee_types.h:120
unsigned char private_key[TEE_OBJECT_SKEY_SIZE]
Definition: tee_api_tee_types.h:129
unsigned char public_key[TEE_OBJECT_KEY_SIZE]
Definition: tee_api_tee_types.h:128