📄 drmxmrdefs.h
字号:
/**@@@+++@@@@********************************************************************** Microsoft Windows Media** Copyright (C) Microsoft Corporation. All rights reserved.*****@@@---@@@@*******************************************************************//* * drmxmrdefs.h * * This file describes the XMR License format */#ifndef _DRM_XMR_DEFS_H_#define _DRM_XMR_DEFS_H_#include "drmcommon.h"#include "DrmAes.h"/* * constants, enums and data types */#define XMR_VERSION_1 1#define XMR_MAGIC_CONSTANT 0x584D5200 /* 'XMR\0' */enum XMR_OBJECT_TYPE{ XMR_OBJECT_TYPE_INVALID = 0x0000, XMR_OBJECT_TYPE_OUTER_CONTAINER = 0x0001, XMR_OBJECT_TYPE_GLOBAL_POLICY_CONTAINER = 0x0002, XMR_OBJECT_TYPE_MINIMUM_ENVIRONMENT_OBJECT = 0x0003, XMR_OBJECT_TYPE_PLAYBACK_POLICY_CONTAINER = 0x0004, XMR_OBJECT_TYPE_OUTPUT_PROTECTION_OBJECT = 0x0005, XMR_OBJECT_TYPE_UPLINK_KID_OBJECT = 0x0006, XMR_OBJECT_TYPE_EXPLICIT_ANALOG_VIDEO_OUTPUT_PROTECTION_CONTAINER = 0x0007, XMR_OBJECT_TYPE_ANALOG_VIDEO_OUTPUT_CONFIGURATION_OBJECT = 0x0008, XMR_OBJECT_TYPE_KEY_MATERIAL_CONTAINER = 0x0009, XMR_OBJECT_TYPE_CONTENT_KEY_OBJECT = 0x000A, XMR_OBJECT_TYPE_SIGNATURE_OBJECT = 0x000B, XMR_OBJECT_TYPE_DEVICE_IDENTIFICATION_OBJECT = 0x000C, XMR_OBJECT_TYPE_SETTINGS_OBJECT = 0x000D, XMR_OBJECT_TYPE_INCLUSION_LIST_OBJECT = 0x0010, XMR_OBJECT_TYPE_REVOCATIONINFORMATIONVERSION_OBJECT = 0X0020, XMR_OBJECT_TYPE_RSA_DEVICE_KEY_OBJECT = 0X0021, XMR_OBJECT_TYPE_SOURCEID_OBJECT = 0X0022, XMR_OBJECT_TYPE_MAXIMUM_DEFINED = 0x0022};enum XMR_OBJECT_FLAGS{ XMR_FLAGS_MUST_UNDERSTAND = 0x0001, XMR_FLAGS_CONTAINER = 0x0002};enum XMR_SYMMETRIC_ENCRYPTION_TYPE{ XMR_SYMMETRIC_ENCRYPTION_TYPE_INVALID = 0x0000, XMR_SYMMETRIC_ENCRYPTION_TYPE_AES_128_CTR = 0x0001, /* RESERVED */ XMR_SYMMETRIC_ENCRYPTION_TYPE_AES_128_ECB = 0x0003};enum XMR_ASYMMETRIC_ENCRYPTION_TYPE{ XMR_ASYMMETRIC_ENCRYPTION_TYPE_INVALID = 0x0000, XMR_ASYMMETRIC_ENCRYPTION_TYPE_RSA_1024 = 0x0001, XMR_ASYMMETRIC_ENCRYPTION_TYPE_CHAINED = 0x0002};enum XMR_SIGNATURE_TYPE{ XMR_SIGNATURE_TYPE_INVALID = 0x0000, XMR_SIGNATURE_TYPE_AES_128_OMAC = 0x0001};typedef struct __tagXMR_INCLUSION_LIST{ DRM_DWORD cGUIDS; DRM_GUID *pGUIDS;} XMR_INCLUSION_LIST;typedef struct __tagXMR_GLOBAL_REQUIREMENTS{ DRM_WORD wMinAppSecurityLevel; DRM_DWORD dwReserved1; DRM_DWORD dwReserved2; DRM_ID SerialNumber; DRM_WORD wReserved; DRM_DWORD dwSourceId; XMR_INCLUSION_LIST il; DRM_DWORD dwRevInfoSeq;} XMR_GLOBAL_REQUIREMENTS;typedef struct __tagXMR_MINIMUM_OUTPUT_PROTECTION_LEVELS{ DRM_WORD wReserved1; DRM_WORD wUncompressedDigitalVideo; DRM_WORD wAnalogVideo; DRM_WORD wReserved2; DRM_WORD wUncompressedDigitalAudio;} XMR_MINIMUM_OUTPUT_PROTECTION_LEVELS;typedef struct __tagXMR_VIDEO_OUTPUT_PROTECTION{ DRM_GUID guidId; DRM_DWORD cbConfigData; DRM_BYTE *pbConfigData;} XMR_VIDEO_OUTPUT_PROTECTION;typedef struct __tagXMR_VIDEO_OUTPUT_PROTECTION_IDS{ DRM_DWORD cEntries; XMR_VIDEO_OUTPUT_PROTECTION *rgVop;} XMR_VIDEO_OUTPUT_PROTECTION_IDS;typedef struct __tagXMR_CONTENT_KEY{ DRM_GUID guidKeyId; DRM_WORD wSymmetricCipherType; DRM_WORD wAsymmetricCipherType; DRM_WORD cbEncryptedKey; DRM_BYTE *pbEncryptedKey; } XMR_CONTENT_KEY;typedef struct __tagXMR_UPLINK_KID{ DRM_ID idKID; DRM_ID idChainedChecksum;} XMR_UPLINK_KID;typedef struct __tagXMR_DEVICE_KEY{ DRM_DWORD dwExponent; DRM_WORD wModulusLength; DRM_BYTE *pbModulus;} XMR_DEVICE_KEY;typedef struct __tagXMR_KEY_MATERIAL{ XMR_DEVICE_KEY dk; XMR_CONTENT_KEY ck; XMR_UPLINK_KID uk;} XMR_KEY_MATERIAL; typedef struct __tagXMR_LICENSE{ DRM_ID RightsId; XMR_GLOBAL_REQUIREMENTS gr; XMR_MINIMUM_OUTPUT_PROTECTION_LEVELS mopl; XMR_VIDEO_OUTPUT_PROTECTION_IDS vopi; XMR_KEY_MATERIAL km;} XMR_LICENSE;typedef struct __tagXMR_ROOT_LICENSE_INFO{ XMR_LICENSE *pXmrLicense; DRM_ID *pIDChainedChecksum; DRM_AES_KEY *pAesContentKey;} XMR_ROOT_LICENSE_INFO;#endif /* _DRM_XMR_DEFS_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -