kernel: Only expose su when daemon is running
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / trustzone / tz_cross / keyblock.h
1 #ifndef __KEY_BLOCK_H__
2 #define __KEY_BLOCK_H__
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 typedef enum
9 {
10 WIDEVINE_ID = 0,
11 MARLIN_ID,
12 HDCP_1X_TX_ID,
13 HDCP_2X_V1_TX_ID,
14 HDCP_2X_V1_RX_ID,
15 HDCP_2X_V2_TX_ID,
16 HDCP_2X_V2_RX_ID,
17 PLAYREADY_BGROUPCERT_ID,
18 PLAYREADY_ZGPRIV_ID,
19 PLAYREADY_KEYFILE_ID,
20 DRM_KEY_MAX,
21 DRM_SP_EKKB = 0xFFFF
22 }
23 DRMKeyID;
24
25 #define SZ_DRMKEY_ID 4
26 #define SZ_DRMKEY_TYPE 4
27 #define SZ_DRMKEY_SIZE 4
28 #define SZ_DRMKEY_ENC_SIZE 4
29 #define SZ_DRMKEY_RESERVED 64
30 #define SZ_DRMKEY_HEADER_SIZE (SZ_DRMKEY_ID+SZ_DRMKEY_TYPE+SZ_DRMKEY_SIZE+SZ_DRMKEY_ENC_SIZE+SZ_DRMKEY_RESERVED)
31 #define SZ_DRMKEY_SIG 16
32
33 //begin of uree using
34
35 /*
36 [in] keyID Enum DRMKeyID
37 [out] oneDrmkeyBlock encrypt DRMBlock
38 [out] blockLeng encrypt DRMBlockLength
39
40 return 0: OK, others: FAIL
41 */
42 int get_encrypt_drmkey ( unsigned int keyID, unsigned char **oneDrmkeyBlock, unsigned int *blockLeng );
43
44 int get_clearDrmkey_size( unsigned int keyID, unsigned int *leng);
45
46 int free_encrypt_drmkey ( unsigned char *oneEncDrmkeyBlock );
47
48 int write_kbo_drmkey(DRMKeyID id,unsigned char* enckey,unsigned int length);
49
50 int delete_kbo_drmkey(DRMKeyID id);
51
52 int install_KB_OTA_API(unsigned char* buff,unsigned int len);
53
54 int query_drmkey ( unsigned int *count, unsigned int *keytype );
55
56 //end of uree using
57
58 //begin for tee using
59 int encrypt_drmkey(DRMKeyID id,unsigned char* clearKey,unsigned int inLength,
60 unsigned char** encKey,unsigned int* outLength);
61
62 #if defined(TRUSONIC_TEE_SUPPORT)
63 int nw_decrypt_drmkey ( unsigned char *encDrmKeyBlock, unsigned int inLength,
64 unsigned int *outLength, unsigned int *p_decrypt_drmky_buffer_handle);
65 int nw_free_drmkey ( unsigned int *p_decrypt_drmky_buffer_handle );
66 #endif
67
68 int decrypt_drmkey ( unsigned char *encDrmKeyBlock, unsigned int inLength,
69 unsigned char **DrmKey, unsigned int *outLength );
70
71 int free_drmkey ( unsigned char *drmkey );
72
73 int free_drmkey_safe ( unsigned char *drmkey,int size);
74
75 //end for tee using
76
77 #ifdef __cplusplus
78 }
79 #endif
80
81 #endif /* __KEY_BLOCK_H__ */