Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 1 | #ifndef _DVR_CRYPTO_H_ |
| 2 | #define _DVR_CRYPTO_H_ |
| 3 | |
| 4 | #ifdef __cplusplus |
| 5 | extern "C" { |
| 6 | #endif |
| 7 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 8 | typedef uint32_t DVR_CryptoDeviceHandle_t; |
| 9 | |
| 10 | typedef 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 | |
| 17 | typedef struct { |
| 18 | } DVR_CryptoIrdetoParams_t; |
| 19 | |
| 20 | typedef struct { |
| 21 | } DVR_CryptoVmxParams_t; |
| 22 | |
| 23 | typedef struct { |
| 24 | } DVR_CryptoAmlogicParams_t; |
| 25 | |
| 26 | typedef struct { |
| 27 | } DVR_CryptoNagraParams_t; |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 28 | |
| 29 | typedef struct DVR_CryptoParams_s { |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 30 | 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 Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 38 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 39 | typedef int (*DVR_CryptoFunction_t) (DVR_CryptoParams_t params_t, void *userdata); |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 40 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 41 | int dvr_crypto_device_open(DVR_CryptoDeviceHandle_t *p_handle); |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 42 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 43 | int dvr_crypto_device_run(DVR_CryptoDeviceHandle_t handle, |
| 44 | uint8_t *buf_in, uint8_t *buf_out, DVR_CryptoParams_t *params); |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 45 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 46 | //int dvr_crypto_device_register(DVR_CryptoDeviceHandle_t handle, DVR_CryptoFunction cb, void *userdata, int is_enc); |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 47 | |
Pengfei Liu | c181a98 | 2020-01-07 19:27:13 +0800 | [diff] [blame^] | 48 | int dvr_crypto_device_close(DVR_CryptoDeviceHandle_t handle); |
Pengfei Liu | 2afc35d | 2020-01-07 10:47:39 +0800 | [diff] [blame] | 49 | |
| 50 | #ifdef __cplusplus |
| 51 | } |
| 52 | #endif |
| 53 | |
| 54 | #endif /*END _DVR_CRYPTO_H_*/ |