HdiDrm

概述

DRM模块接口定义。 DRM是数字版权管理,用于对多媒体内容加密,以便保护价值内容不被非法获取,DRM模块接口定义了DRM实例管理、DRM会话管理、DRM内容解密的接口。

起始版本: 4.1

汇总

文件

名称 描述
IMediaDecryptModule.idl 定义了DRM内容解密接口、解密模块实例释放接口。
IMediaKeySession.idl 定义了DRM会话功能接口。
IMediaKeySessionCallback.idl 定义了DRM会话的事件通知接口。
IMediaKeySystem.idl 定义了DRM实例的功能接口。
IMediaKeySystemCallback.idl 定义了DRM实例的事件通知接口。
IMediaKeySystemFactory.idl 定义了DRM实例的工厂方法。
IOemCertificate.idl 定义了不同厂商证书下载的接口。
MediaKeySystemTypes.idl 定义了HdiDrm使用的类型及结构。

名称 描述
interface  IMediaDecryptModule 定义内容解密、解密模块实例释放函数。用于解密加密的内容。
interface  IMediaKeySession DRM会话功能接口,获取/设置许可证、查询当前会话许可证状态、删除当前会话许可证、释放许可证、恢复离线许可证、 判断是否需要安全内存中解密、获取解密模块实例、设置会话消息通知接口、销毁会话。
interface  IMediaKeySessionCallback 定义DRM会话的事件通知函数,用于DRM驱动通知DRM框架事件。
interface  IMediaKeySystem DRM实例功能接口,判断是否支持特定DRM方案,创建DRM实例。
interface  IMediaKeySystemCallback 定义DRM实例的事件通知函数。
interface  IMediaKeySystemFactory DRM实例工厂方法接口,判断是否支持特定DRM方案,创建DRM实例。
interface  IOemCertificate 厂商证书下载接口。 产生证书下载请求,处理下载的证书。
struct  MediaKeyRequestInfo 定义MediaKeyRequestInfo,该信息由IMediaKeySession::GenerateMediaKeyRequest使用。
struct  MediaKeyRequest 定义MediaKeyRequest,该信息由IMediaKeySession::GenerateMediaKeyRequest使用。
struct  Pattern 定义Pattern,该信息由CryptoInfo使用。
struct  SubSample 定义SubSample,该信息由CryptoInfo使用。
struct  CryptoInfo 定义CryptoInfo,该信息由IMediaDecryptModule::DecryptMediaData使用。
struct  DrmBuffer 定义DrmBuffer,该信息由IMediaDecryptModule::DecryptMediaData使用。

枚举

名称 描述
ContentProtectionLevel {
SECURE_UNKNOWN = 0 , SW_SECURE_CRYPTO , HW_SECURE_CRYPTO , HW_ENHANCED_SECURE_CRYPTO , HW_SECURE_MAX
}
内容保护等级。
MediaKeyRequestType {
MEDIA_KEY_REQUEST_TYPE_UNKNOWN = 0 , MEDIA_KEY_REQUEST_TYPE_INITIAL , MEDIA_KEY_REQUEST_TYPE_RENEWAL , MEDIA_KEY_REQUEST_TYPE_RELEASE , MEDIA_KEY_REQUEST_TYPE_NONE , MEDIA_KEY_REQUEST_TYPE_UPDATE
}
许可证请求类型。
EventType {
EVENTTYPE_PROVISIONREQUIRED = 0 , EVENTTYPE_KEYREQUIRED , EVENTTYPE_KEYEXPIRED , EVENTTYPE_VENDOR_DEFINED , EVENTTYPE_EXPIRATIONUPDATE , EVENTTYPE_KEYCHANGE
}
DRM插件监听事件类型。
CryptoAlgorithmType {
ALGTYPE_UNENCRYPTED = 0 , ALGTYPE_AES_CTR , ALGTYPE_AES_WV , ALGTYPE_AES_CBC , ALGTYPE_SM4_CBC , ALGTYPE_SM4_CTR
}
加密算法类型。
OfflineMediaKeyStatus { OFFLINE_MEDIA_KEY_STATUS_UNKNOWN = 0 , OFFLINE_MEDIA_KEY_STATUS_USABLE , OFFLINE_MEDIA_KEY_STATUS_INACTIVE } 离线许可证状态。
MediaKeyType { MEDIA_KEY_TYPE_OFFLINE = 0 , MEDIA_KEY_TYPE_ONLINE } 许可证类型。
CertificateStatus {
CERT_STATUS_PROVISIONED = 0 , CERT_STATUS_NOT_PROVISIONED , CERT_STATUS_EXPIRED , CERT_STATUS_INVALID , CERT_STATUS_UNAVAILABLE
}
证书状态。
MediaKeySessionKeyStatus {
MEDIA_KEY_SESSION_KEY_STATUS_USABLE = 0 , MEDIA_KEY_SESSION_KEY_STATUS_EXPIRED , MEDIA_KEY_SESSION_KEY_STATUS_OUTPUT_NOT_ALLOWED , MEDIA_KEY_SESSION_KEY_STATUS_PENDING , MEDIA_KEY_SESSION_KEY_STATUS_INTERNAL_ERROR , MEDIA_KEY_SESSION_KEY_STATUS_USABLE_IN_FUTURE
}
会话许可证状态。

枚举类型说明

CertificateStatus

enum CertificateStatus

描述

证书状态。

起始版本: 4.1

枚举值 描述
CERT_STATUS_PROVISIONED 证书已设置。
CERT_STATUS_NOT_PROVISIONED 证书未设置。
CERT_STATUS_EXPIRED 证书过期。
CERT_STATUS_INVALID 证书无效。
CERT_STATUS_UNAVAILABLE 获取证书状态失败。

ContentProtectionLevel

enum ContentProtectionLevel

描述

内容保护等级。

起始版本: 4.1

枚举值 描述
SECURE_UNKNOWN 未知等级。
SW_SECURE_CRYPTO 软件安全等级。
HW_SECURE_CRYPTO 硬件安全等级。
HW_ENHANCED_SECURE_CRYPTO 增强硬件安全等级。
HW_SECURE_MAX 安全等级最大值,用于判断非法安全等级。

CryptoAlgorithmType

enum CryptoAlgorithmType

描述

加密算法类型。

起始版本: 4.1

枚举值 描述
ALGTYPE_UNENCRYPTED 未加密。
ALGTYPE_AES_CTR aes_ctr加密。
ALGTYPE_AES_WV aes_wv加密。
ALGTYPE_AES_CBC aes_cbc加密。
ALGTYPE_SM4_CBC sm4_cbc加密。
ALGTYPE_SM4_CTR sm4_ctr加密。

EventType

enum EventType

描述

DRM插件监听事件类型。

起始版本: 4.1

枚举值 描述
EVENTTYPE_PROVISIONREQUIRED 证书下载。
EVENTTYPE_KEYREQUIRED 许可证获取。
EVENTTYPE_KEYEXPIRED 许可证过期。
EVENTTYPE_VENDOR_DEFINED 厂商自定义事件。
EVENTTYPE_EXPIRATIONUPDATE 许可证有效期更新。
EVENTTYPE_KEYCHANGE 许可证变更。

MediaKeyRequestType

enum MediaKeyRequestType

描述

许可证请求类型。

起始版本: 4.1

枚举值 描述
MEDIA_KEY_REQUEST_TYPE_UNKNOWN 未知类型。
MEDIA_KEY_REQUEST_TYPE_INITIAL 初次请求。
MEDIA_KEY_REQUEST_TYPE_RENEWAL 再次许可证请求。
MEDIA_KEY_REQUEST_TYPE_RELEASE 释放许可证请求。
MEDIA_KEY_REQUEST_TYPE_NONE 无类型。
MEDIA_KEY_REQUEST_TYPE_UPDATE 许可证更新请求。

MediaKeySessionKeyStatus

enum MediaKeySessionKeyStatus

描述

会话许可证状态。

起始版本: 4.1

枚举值 描述
MEDIA_KEY_SESSION_KEY_STATUS_USABLE 许可证可用。
MEDIA_KEY_SESSION_KEY_STATUS_EXPIRED 许可证过期。
MEDIA_KEY_SESSION_KEY_STATUS_OUTPUT_NOT_ALLOWED 该许可证不允许输出。
MEDIA_KEY_SESSION_KEY_STATUS_PENDING 暂时不可用许可证。
MEDIA_KEY_SESSION_KEY_STATUS_INTERNAL_ERROR 许可证内部状态错误。
MEDIA_KEY_SESSION_KEY_STATUS_USABLE_IN_FUTURE 许可证待生效。

MediaKeyType

enum MediaKeyType

描述

许可证类型。

起始版本: 4.1

枚举值 描述
MEDIA_KEY_TYPE_OFFLINE 离线许可证。
MEDIA_KEY_TYPE_ONLINE 在线许可证。

OfflineMediaKeyStatus

enum OfflineMediaKeyStatus

描述

离线许可证状态。

起始版本: 4.1

枚举值 描述
OFFLINE_MEDIA_KEY_STATUS_UNKNOWN 未知状态。
OFFLINE_MEDIA_KEY_STATUS_USABLE 许可证可用。
OFFLINE_MEDIA_KEY_STATUS_INACTIVE 许可证不可用(未在生效时间段内、已过期等)。