aboutsummaryrefslogtreecommitdiff
path: root/include/linux/libmtk_cipher_export.h
blob: f173748c8b2acf132297a5f8a9b63f4830697244 (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
#ifndef _LIBMTK_CIPHER_EXPORT_H
#define _LIBMTK_CIPHER_EXPORT_H

#define HEVC_BLK_LEN                            (20480)	/* bytes */
#define HEVC_MOD                                "HEVC_MOD"
#define HEVC_NANO                               1000000000ULL
#define HEVC_CIPHER_LEN                         (102400)	/* bytes */


typedef struct {
	unsigned char buf[HEVC_BLK_LEN];
	unsigned int len;
} HEVC_BLK;

typedef enum {
	VIDEO_ENCRYPT_CODEC_NONE = 0x0,
	VIDEO_ENCRYPT_CODEC_HEVC_ENC = 0x1,
	VIDEO_ENCRYPT_CODEC_HEVC_DEC = 0x2,
	VIDEO_ENCRYPT_CODEC_MAX = 0xffffffff
} VIDEO_ENCRYPT_CODEC_T;


typedef int (*hevc_api_funp) (HEVC_BLK *p_hevc_blk);
typedef int (*hevc_api_initk_funp) (unsigned char *key, unsigned int klen);


#define SEC_OK                                  0x0
#define SEC_FAIL                                0x1

/* HEVC shared lib*/
#define ERR_HEVC_NOT_CORRECT_MODE               0x10000
#define ERR_HEVC_DATA_NOT_ALIGNED               0x10001
#define ERR_HEVC_ENC_IOCTL_FAIL                 0x10002
#define ERR_HEVC_DEC_IOCTL_FAIL                 0x10002
#define ERR_HEVC_CIPHER_UT_FAIL                 0x10003
#define ERR_HEVC_DATA_IS_NULL                   0x10004
#define ERR_HEVC_DATA_LENGTH_NOT_VALID          0x10005
#define ERR_HEVC_SW_ENC_ERROR                   0x10006
#define ERR_HEVC_SW_DEC_ERROR                   0x10007
#define ERR_HEVC_INIT_SW_KEY_ERROR              0x10008


/* HEVC sample*/
#define ERR_HEVC_CIPHER_LIB_NOT_FOUND           0x20001
#define ERR_HEVC_SW_DEC_BLOCK_SYM_NOT_FOUND     0x20002
#define ERR_HEVC_HW_ENC_BLOCK_SYM_NOT_FOUND     0x20003
#define ERR_HEVC_INIT_SW_KEY_SYM_NOT_FOUND      0x20004
#define ERR_HEVC_INPUT_FILE_NOT_FOUND           0x20005
#define ERR_HEVC_OUTPUT_FILE_NOT_FOUND          0x20006
#define ERR_HEVC_SW_DEC_FILE_SYM_NOT_FOUND      0x20007
#define ERR_HEVC_SW_DEC_FILE_FAILED             0x20008
#define ERR_HEVC_UNKNOWN                        0x2FFFF


/* Define LOG LEVEL*/
#define SEC_LOG_TRACE 0		/* For source code trace */
#define SEC_LOG_DEBUG 0		/* For debug purpose */
#define SEC_LOG_ERROR 1		/* For critical error dump */
#define SEC_LOG_INFO  1		/* For information to know when processing in normal */

/* DEBUG MACRO */
#define SMSG_TRACE(...) \
    do { if (SEC_LOG_TRACE)  printf(__VA_ARGS__); } while (0)

#define SMSG_DEBUG(...) \
    do { if (SEC_LOG_DEBUG) printf(__VA_ARGS__); } while (0)

#define SMSG_ERROR(...) \
    do { if (SEC_LOG_ERROR) printf(__VA_ARGS__); } while (0)

#define SMSG_INFO(...) \
    do { if (SEC_LOG_INFO) printf(__VA_ARGS__); } while (0)


#define HEVC_ENCRYTP_FILE_PATH            "/data/mediaserver"
#define HEVC_ENC_SW_ENCRYPT_FILE_PATH     "/system/lib/libhevce_sb.ca7.android.so"
#define HEVC_ENC_HW_ENCRYPT_FILE_PATH     "/data/mediaserver/sb.ca7.android_hwenc.so"
#define HEVC_ENC_HW_DECRYPT_FILE_PATH     "/data/mediaserver/sb.ca7.android_hwdec.so"
#define HEVC_DEC_SW_ENCRYTP_FILE_PATH     "/system/lib/libHEVCdec_sa.ca7.android.so"
#define HEVC_DEC_HW_ENCRYPT_FILE_PATH     "/data/mediaserver/dec_sa.ca7.android_hwenc.so"
#define HEVC_DEC_HW_DECRYPT_FILE_PATH     "/data/mediaserver/dec_sa.ca7.android_hwdec.so"

#endif	 /*_LIBMTK_CIPHER_EXPORT_H*/