drm.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:2k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __DRM_H
  2. #define __DRM_H
  3. #include "global.h"
  4. #include "types.h"
  5. #ifdef DIVX_DRM
  6. //============================================================================
  7. #define DRM_VERSION 2
  8. // DrmStatus.display_type
  9. #define DRM_DISPLAY_NONE 0
  10. #define DRM_DISPLAY_REGISTRATION_CODE 1
  11. #define DRM_DISPLAY_AUTHORIZATION_ERROR 2
  12. #define DRM_DISPLAY_RENTAL_EXPIRED 3
  13. #define DRM_DISPLAY_RENTAL_CONFIRMATION 4
  14. #define DRM_DISPLAY_HW_UNSUPPORTED 5
  15. #define DRM_DISPLAY_AES_ONLY 6
  16. // size or length
  17. #define DRM_HEADER_SIZE         2224
  18. #define DRM_ENCRYPTED_CHK_MAX_LEN 128
  19. #define OWNER_GUARD_BYTES               3
  20. #define DRM_MEMORY_SIZE 48
  21. //============================================================================
  22. typedef struct DrmInfoChunkStruct
  23. {
  24. UINT16 frameKeyIndex __attribute__ ((packed));
  25. UINT32 offset __attribute__ ((packed));
  26. UINT32 decryptSize __attribute__ ((packed));
  27. } DrmInfoChunk;
  28. typedef struct DrmStatusStruct
  29. {
  30. UINT16 display_type;
  31. UINT16 reference_code;
  32. } DrmStatus;
  33. //============================================================================
  34. extern DrmStatus drm_status;
  35. //============================================================================
  36. /*
  37. extern int get_drm_mem(BYTE* buf, int offset, int length);
  38. extern int save_drm_mem(BYTE* buf, int offset, int length);
  39. */
  40. void set_divx_drm_mode(UINT32 mode);
  41. void set_divx_drm_model_id(UINT32 model_id);
  42. int drm_stream_header(BYTE* ptr);
  43. void aes_decrypt_frame(BYTE* cipher, UINT16 frameKeyIndex, UINT32 length);
  44. void generate_registration_code(BYTE code[8+1]);
  45. void drm_rental_count_update();
  46. void drm_save_rental_file(int drm_enable, int nRet);
  47. //============================================================================
  48. #endif // DIVX_DRM
  49. #endif // __DRM_H