aboutsummaryrefslogtreecommitdiff
path: root/include/trustzone/tz_cross/ta_modular_drm.h
blob: b8b379e6a88b303cd30cfd059fceca67ff89766f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#ifndef __TRUSTZONE_TA_MODULAR_DRM__
#define __TRUSTZONE_TA_MODULAR_DRM__

#define TZ_TA_MODULAR_DRM_UUID   "651d6d29-0cf5-4a0f-b31a-9e8e8cec83a5"

/* Data Structure for Modular DRM TA */
/* You should define data structure used both in REE/TEE here
   N/A for Modular DRM TA */

/* Command for Modular DRM TA */

#define TZCMD_MODULAR_DRM_Initialize               1
#define TZCMD_MODULAR_DRM_Terminate                2
#define TZCMD_MODULAR_DRM_InstallKeybox            3
#define TZCMD_MODULAR_DRM_GetKeyData               4
#define TZCMD_MODULAR_DRM_IsKeyboxValid            5
#define TZCMD_MODULAR_DRM_GetRandom                6
#define TZCMD_MODULAR_DRM_GetDeviceID              7
#define TZCMD_MODULAR_DRM_WrapKeybox               8
#define TZCMD_MODULAR_DRM_OpenSession              9
#define TZCMD_MODULAR_DRM_CloseSession             10
#define TZCMD_MODULAR_DRM_DecryptCTR               11
#define TZCMD_MODULAR_DRM_GenerateDerivedKeys      12
#define TZCMD_MODULAR_DRM_GenerateSignature        13
#define TZCMD_MODULAR_DRM_GenerateNonce            14
#define TZCMD_MODULAR_DRM_LoadKeys                 15
#define TZCMD_MODULAR_DRM_RefreshKeys              16
#define TZCMD_MODULAR_DRM_SelectKey                17
#define TZCMD_MODULAR_DRM_RewrapDeviceRSAKey       18
#define TZCMD_MODULAR_DRM_LoadDeviceRSAKey         19
#define TZCMD_MODULAR_DRM_GenerateRSASignature     20
#define TZCMD_MODULAR_DRM_DeriveKeysFromSessionKey 21
#define TZCMD_MODULAR_DRM_APIVersion               22
#define TZCMD_MODULAR_DRM_SecurityLevel            23
#define TZCMD_MODULAR_DRM_Generic_Encrypt          24
#define TZCMD_MODULAR_DRM_Generic_Decrypt          25
#define TZCMD_MODULAR_DRM_Generic_Sign             26
#define TZCMD_MODULAR_DRM_Generic_Verify           27
#define TZCMD_MODULAR_DRM_GET_RSA_KEY_SIZE         28






#define TZCMD_MODULAR_DRM_TEST                     29
//Disable or enable debug level log in tee
#define TZCMD_MODULAR_DRM_SET_DEBUG_LOG            30


//added by zhitao yan
#define TZCMD_MODULAR_DRM_UpdateUsageTable         31
#define TZCMD_MODULAR_DRM_DeactivateUsageEntry     32
#define TZCMD_MODULAR_DRM_ReportUsage         	   33
#define TZCMD_MODULAR_DRM_DeleteUsageEntry         34
#define TZCMD_MODULAR_DRM_DeleteUsageTable         35
//#define TZCMD_MODULAR_DRM_UpdateUsageTable         31








typedef enum TEE_MTK_MODULAR_DRM_Crypto_Result
{
    TEE_MTK_MODULAR_DRM_Crypto_SUCCESS                              = 0,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INIT_FAILED                    = 1,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_TERMINATE_FAILED               = 2,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_OPEN_FAILURE                   = 3,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_CLOSE_FAILURE                  = 4,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_ENTER_SECURE_PLAYBACK_FAILED   = 5,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_EXIT_SECURE_PLAYBACK_FAILED    = 6,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_SHORT_BUFFER                   = 7,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_DEVICE_KEY                  = 8,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_ASSET_KEY                   = 9,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_KEYBOX_INVALID                 = 10,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_KEYDATA                     = 11,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_CW                          = 12,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_DECRYPT_FAILED                 = 13,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_WRITE_KEYBOX                   = 14,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_WRAP_KEYBOX                    = 15,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_BAD_MAGIC                      = 16,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_BAD_CRC                        = 17,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_DEVICEID                    = 18,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_RNG_FAILED                     = 19,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_RNG_NOT_SUPPORTED              = 20,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_SETUP                          = 21,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_OPEN_SESSION_FAILED            = 22,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_CLOSE_SESSION_FAILED           = 23,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INVALID_SESSION                = 24,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NOT_IMPLEMENTED                = 25,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_NO_CONTENT_KEY                 = 26,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_CONTROL_INVALID                = 27,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_UNKNOWN_FAILURE                = 28,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INVALID_CONTEXT                = 29,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_SIGNATURE_FAILURE              = 30,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_TOO_MANY_SESSIONS              = 31,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INVALID_NONCE                  = 32,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_TOO_MANY_KEYS                  = 33,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_DEVICE_NOT_RSA_PROVISIONED     = 34,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INVALID_RSA_KEY                = 35,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_KEY_EXPIRED                    = 36,
    TEE_MTK_MODULAR_DRM_Crypto_ERROR_INSUFFICIENT_RESOURCES         = 37,
} TEE_MTK_MODULAR_DRM_Crypto_Result;

#endif /* __TRUSTZONE_TA_MODULAR_DRM__ */