blob: 18d9107ee592e2bc9244bbcef2cfa02dbabfc163 [file] [log] [blame]
Pengfei Liu2afc35d2020-01-07 10:47:39 +08001#ifndef _DVR_CRYPTO_H_
2#define _DVR_CRYPTO_H_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
Pengfei Liuc181a982020-01-07 19:27:13 +08008typedef uint32_t DVR_CryptoDeviceHandle_t;
9
10typedef enum {
11 DVR_CRYPTO_VENDOR_AMLOGIC,
12 DVR_CRYPTO_VENDOR_IRDETO,
13 DVR_CRYPTO_VENDOR_VMX,
14 DVR_CRYPTO_VENDOR_NAGRA
15} DVR_CryptoVendorID_t;
16
17typedef struct {
18} DVR_CryptoIrdetoParams_t;
19
20typedef struct {
21} DVR_CryptoVmxParams_t;
22
23typedef struct {
24} DVR_CryptoAmlogicParams_t;
25
26typedef struct {
27} DVR_CryptoNagraParams_t;
Pengfei Liu2afc35d2020-01-07 10:47:39 +080028
29typedef struct DVR_CryptoParams_s {
Pengfei Liuc181a982020-01-07 19:27:13 +080030 int vendor_id;
31 union {
32 DVR_CryptoIrdetoParams_t irdeto;
33 DVR_CryptoVmxParams_t vmx;
34 DVR_CryptoAmlogicParams_t amlogic;
35 DVR_CryptoNagraParams_t nagra;
36 };
37} DVR_CryptoParams_t;
Pengfei Liu2afc35d2020-01-07 10:47:39 +080038
Pengfei Liuc181a982020-01-07 19:27:13 +080039typedef int (*DVR_CryptoFunction_t) (DVR_CryptoParams_t params_t, void *userdata);
Pengfei Liu2afc35d2020-01-07 10:47:39 +080040
Pengfei Liuc181a982020-01-07 19:27:13 +080041int dvr_crypto_device_open(DVR_CryptoDeviceHandle_t *p_handle);
Pengfei Liu2afc35d2020-01-07 10:47:39 +080042
Pengfei Liuc181a982020-01-07 19:27:13 +080043int dvr_crypto_device_run(DVR_CryptoDeviceHandle_t handle,
44 uint8_t *buf_in, uint8_t *buf_out, DVR_CryptoParams_t *params);
Pengfei Liu2afc35d2020-01-07 10:47:39 +080045
Pengfei Liuc181a982020-01-07 19:27:13 +080046//int dvr_crypto_device_register(DVR_CryptoDeviceHandle_t handle, DVR_CryptoFunction cb, void *userdata, int is_enc);
Pengfei Liu2afc35d2020-01-07 10:47:39 +080047
Pengfei Liuc181a982020-01-07 19:27:13 +080048int dvr_crypto_device_close(DVR_CryptoDeviceHandle_t handle);
Pengfei Liu2afc35d2020-01-07 10:47:39 +080049
50#ifdef __cplusplus
51}
52#endif
53
54#endif /*END _DVR_CRYPTO_H_*/