• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# HdiDrm
2
3
4## 概述
5
6DRM模块接口定义。 DRM是数字版权管理,用于对多媒体内容加密,以便保护价值内容不被非法获取,DRM模块接口定义了DRM实例管理、DRM会话管理、DRM内容解密的接口。
7
8**起始版本:** 4.1
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [IMediaDecryptModule.idl](_i_media_decrypt_module_8idl.md) | 定义了DRM内容解密接口、解密模块实例释放接口。 |
19| [IMediaKeySession.idl](_i_media_key_session_8idl.md) | 定义了DRM会话功能接口。 |
20| [IMediaKeySessionCallback.idl](_i_media_key_session_callback_8idl.md) | 定义了DRM会话的事件通知接口。 |
21| [IMediaKeySystem.idl](_i_media_key_system_8idl.md) | 定义了DRM实例的功能接口。 |
22| [IMediaKeySystemCallback.idl](_i_media_key_system_callback_8idl.md) | 定义了DRM实例的事件通知接口。 |
23| [IMediaKeySystemFactory.idl](_i_media_key_system_factory_8idl.md) | 定义了DRM实例的工厂方法。 |
24| [IOemCertificate.idl](_i_oem_certificate_8idl.md) | 定义了不同厂商证书下载的接口。 |
25| [MediaKeySystemTypes.idl](_media_key_system_types_8idl.md) | 定义了HdiDrm使用的类型及结构。 |
26
27
28### 类
29
30| 名称 | 描述 |
31| -------- | -------- |
32| interface  [IMediaDecryptModule](interface_i_media_decrypt_module.md) | 定义内容解密、解密模块实例释放函数。用于解密加密的内容。 |
33| interface  [IMediaKeySession](interface_i_media_key_session.md) | DRM会话功能接口,获取/设置许可证、查询当前会话许可证状态、删除当前会话许可证、释放许可证、恢复离线许可证、 判断是否需要安全内存中解密、获取解密模块实例、设置会话消息通知接口、销毁会话。 |
34| interface  [IMediaKeySessionCallback](interface_i_media_key_session_callback.md) | 定义DRM会话的事件通知函数,用于DRM驱动通知DRM框架事件。 |
35| interface  [IMediaKeySystem](interface_i_media_key_system.md) | DRM实例功能接口,判断是否支持特定DRM方案,创建DRM实例。 |
36| interface  [IMediaKeySystemCallback](interface_i_media_key_system_callback.md) | 定义DRM实例的事件通知函数。 |
37| interface  [IMediaKeySystemFactory](interface_i_media_key_system_factory.md) | DRM实例工厂方法接口,判断是否支持特定DRM方案,创建DRM实例。 |
38| interface  [IOemCertificate](interface_i_oem_certificate.md) | 厂商证书下载接口。 产生证书下载请求,处理下载的证书。 |
39| struct  [MediaKeyRequestInfo](_media_key_request_info.md) | 定义MediaKeyRequestInfo,该信息由[IMediaKeySession::GenerateMediaKeyRequest](interface_i_media_key_session.md#generatemediakeyrequest)使用。 |
40| struct  [MediaKeyRequest](_media_key_request.md) | 定义MediaKeyRequest,该信息由[IMediaKeySession::GenerateMediaKeyRequest](interface_i_media_key_session.md#generatemediakeyrequest)使用。 |
41| struct  [Pattern](_pattern.md) | 定义Pattern,该信息由CryptoInfo使用。 |
42| struct  [SubSample](_sub_sample.md) | 定义SubSample,该信息由CryptoInfo使用。 |
43| struct  [CryptoInfo](_crypto_info.md) | 定义CryptoInfo,该信息由[IMediaDecryptModule::DecryptMediaData](interface_i_media_decrypt_module.md#decryptmediadata)使用。 |
44| struct  [DrmBuffer](_drm_buffer.md) | 定义DrmBuffer,该信息由[IMediaDecryptModule::DecryptMediaData](interface_i_media_decrypt_module.md#decryptmediadata)使用。 |
45
46
47### 枚举
48
49| 名称 | 描述 |
50| -------- | -------- |
51| [ContentProtectionLevel](#contentprotectionlevel) {<br/>SECURE_UNKNOWN = 0 , SW_SECURE_CRYPTO , HW_SECURE_CRYPTO , HW_ENHANCED_SECURE_CRYPTO , HW_SECURE_MAX<br/>} | 内容保护等级。 |
52| [MediaKeyRequestType](#mediakeyrequesttype) {<br/>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<br/>} | 许可证请求类型。 |
53| [EventType](#eventtype) {<br/>EVENTTYPE_PROVISIONREQUIRED = 0 , EVENTTYPE_KEYREQUIRED , EVENTTYPE_KEYEXPIRED , EVENTTYPE_VENDOR_DEFINED , EVENTTYPE_EXPIRATIONUPDATE , EVENTTYPE_KEYCHANGE<br/>} | DRM插件监听事件类型。 |
54| [CryptoAlgorithmType](#cryptoalgorithmtype) {<br/>ALGTYPE_UNENCRYPTED = 0 , ALGTYPE_AES_CTR , ALGTYPE_AES_WV , ALGTYPE_AES_CBC , ALGTYPE_SM4_CBC , ALGTYPE_SM4_CTR<br/>} | 加密算法类型。 |
55| [OfflineMediaKeyStatus](#offlinemediakeystatus) { OFFLINE_MEDIA_KEY_STATUS_UNKNOWN = 0 , OFFLINE_MEDIA_KEY_STATUS_USABLE , OFFLINE_MEDIA_KEY_STATUS_INACTIVE } | 离线许可证状态。 |
56| [MediaKeyType](#mediakeytype) { MEDIA_KEY_TYPE_OFFLINE = 0 , MEDIA_KEY_TYPE_ONLINE } | 许可证类型。 |
57| [CertificateStatus](#certificatestatus) {<br/>CERT_STATUS_PROVISIONED = 0 , CERT_STATUS_NOT_PROVISIONED , CERT_STATUS_EXPIRED , CERT_STATUS_INVALID , CERT_STATUS_UNAVAILABLE<br/>} | 证书状态。 |
58| [MediaKeySessionKeyStatus](#mediakeysessionkeystatus) {<br/>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<br/>} | 会话许可证状态。 |
59
60
61## 枚举类型说明
62
63
64### CertificateStatus
65
66```
67enum CertificateStatus
68```
69
70**描述**
71
72证书状态。
73
74**起始版本:** 4.1
75
76| 枚举值 | 描述 |
77| -------- | -------- |
78| CERT_STATUS_PROVISIONED | 证书已设置。 |
79| CERT_STATUS_NOT_PROVISIONED | 证书未设置。 |
80| CERT_STATUS_EXPIRED | 证书过期。 |
81| CERT_STATUS_INVALID | 证书无效。 |
82| CERT_STATUS_UNAVAILABLE | 获取证书状态失败。 |
83
84
85### ContentProtectionLevel
86
87```
88enum ContentProtectionLevel
89```
90
91**描述**
92
93内容保护等级。
94
95**起始版本:** 4.1
96
97| 枚举值 | 描述 |
98| -------- | -------- |
99| SECURE_UNKNOWN | 未知等级。 |
100| SW_SECURE_CRYPTO | 软件安全等级。 |
101| HW_SECURE_CRYPTO | 硬件安全等级。 |
102| HW_ENHANCED_SECURE_CRYPTO | 增强硬件安全等级。 |
103| HW_SECURE_MAX | 安全等级最大值,用于判断非法安全等级。 |
104
105
106### CryptoAlgorithmType
107
108```
109enum CryptoAlgorithmType
110```
111
112**描述**
113
114加密算法类型。
115
116**起始版本:** 4.1
117
118| 枚举值 | 描述 |
119| -------- | -------- |
120| ALGTYPE_UNENCRYPTED | 未加密。 |
121| ALGTYPE_AES_CTR | aes_ctr加密。 |
122| ALGTYPE_AES_WV | aes_wv加密。 |
123| ALGTYPE_AES_CBC | aes_cbc加密。 |
124| ALGTYPE_SM4_CBC | sm4_cbc加密。 |
125| ALGTYPE_SM4_CTR | sm4_ctr加密。 |
126
127
128### EventType
129
130```
131enum EventType
132```
133
134**描述**
135
136DRM插件监听事件类型。
137
138**起始版本:** 4.1
139
140| 枚举值 | 描述 |
141| -------- | -------- |
142| EVENTTYPE_PROVISIONREQUIRED | 证书下载。 |
143| EVENTTYPE_KEYREQUIRED | 许可证获取。 |
144| EVENTTYPE_KEYEXPIRED | 许可证过期。 |
145| EVENTTYPE_VENDOR_DEFINED | 厂商自定义事件。 |
146| EVENTTYPE_EXPIRATIONUPDATE | 许可证有效期更新。 |
147| EVENTTYPE_KEYCHANGE | 许可证变更。 |
148
149
150### MediaKeyRequestType
151
152```
153enum MediaKeyRequestType
154```
155
156**描述**
157
158许可证请求类型。
159
160**起始版本:** 4.1
161
162| 枚举值 | 描述 |
163| -------- | -------- |
164| MEDIA_KEY_REQUEST_TYPE_UNKNOWN | 未知类型。 |
165| MEDIA_KEY_REQUEST_TYPE_INITIAL | 初次请求。 |
166| MEDIA_KEY_REQUEST_TYPE_RENEWAL | 再次许可证请求。 |
167| MEDIA_KEY_REQUEST_TYPE_RELEASE | 释放许可证请求。 |
168| MEDIA_KEY_REQUEST_TYPE_NONE | 无类型。 |
169| MEDIA_KEY_REQUEST_TYPE_UPDATE | 许可证更新请求。 |
170
171
172### MediaKeySessionKeyStatus
173
174```
175enum MediaKeySessionKeyStatus
176```
177
178**描述**
179
180会话许可证状态。
181
182**起始版本:** 4.1
183
184| 枚举值 | 描述 |
185| -------- | -------- |
186| MEDIA_KEY_SESSION_KEY_STATUS_USABLE | 许可证可用。 |
187| MEDIA_KEY_SESSION_KEY_STATUS_EXPIRED | 许可证过期。 |
188| MEDIA_KEY_SESSION_KEY_STATUS_OUTPUT_NOT_ALLOWED | 该许可证不允许输出。 |
189| MEDIA_KEY_SESSION_KEY_STATUS_PENDING | 暂时不可用许可证。 |
190| MEDIA_KEY_SESSION_KEY_STATUS_INTERNAL_ERROR | 许可证内部状态错误。 |
191| MEDIA_KEY_SESSION_KEY_STATUS_USABLE_IN_FUTURE | 许可证待生效。 |
192
193
194### MediaKeyType
195
196```
197enum MediaKeyType
198```
199
200**描述**
201
202许可证类型。
203
204**起始版本:** 4.1
205
206| 枚举值 | 描述 |
207| -------- | -------- |
208| MEDIA_KEY_TYPE_OFFLINE | 离线许可证。 |
209| MEDIA_KEY_TYPE_ONLINE | 在线许可证。 |
210
211
212### OfflineMediaKeyStatus
213
214```
215enum OfflineMediaKeyStatus
216```
217
218**描述**
219
220离线许可证状态。
221
222**起始版本:** 4.1
223
224| 枚举值 | 描述 |
225| -------- | -------- |
226| OFFLINE_MEDIA_KEY_STATUS_UNKNOWN | 未知状态。 |
227| OFFLINE_MEDIA_KEY_STATUS_USABLE | 许可证可用。 |
228| OFFLINE_MEDIA_KEY_STATUS_INACTIVE | 许可证不可用(未在生效时间段内、已过期等)。 |
229