fuchsia.media.drm

添加数量:7

协议

ClearKey

fuchsia.media.drm/services.fidl 中定义

用于访问 ClearKey 密钥系统的服务中心。此密钥系统由 W3C Encrypted Media Extensions 定义。它使用明文密钥来解密来源。

如果客户端关闭 ClearKey 渠道,派生的 ContentDecryptionModule 将保持活跃状态。

W3C Encrypted Media Extensions:https://www.w3.org/TR/encryption-media

AddDataStore

将客户端数据存储区添加到 KeySystem

在预配和许可管理过程中,DRM 系统会代表客户端生成数据。这些数据仅可供 DRM 系统使用,但客户端是数据的所有者。客户端控制数据的生命周期,并且可以选择将哪个数据集用于 ContentDecryptionModule

  • 请求 data_store_id 为数据存储区分配客户端分配的标识符。此标识符的范围限定为 KeySystem 渠道。客户端提供 NO_DATA_STORE 或已添加的 data_store_id 是无效的,服务器应关闭该通道。
  • 请求 data_store_params 要用于此数据存储区的参数。

请求

名称类型
data_store_id uint32
data_store_params DataStoreParams

响应

名称类型
payload KeySystem_AddDataStore_Result

CreateContentDecryptionModule2

创建一个新的 ContentDecryptionModule

创建 ContentDecryptionModule,它将使用关联的数据存储区(如果提供)。如果为 data_store_id 提供了 NO_DATA_STORE,则创建的 ContentDecryptionModule 将仅支持类型为 LicenseSessionType.TEMPORARYLicenseSession。 如果提供了 data_store_id,则创建的 ContentDecryptionModule 会将数据保存到该数据存储区。如果 KeySystem 需要数据存储区,而您提供了 NO_DATA_STORE,或者 KeySystem 不支持数据存储区,而实际提供了数据存储区,则服务器应关闭 cdm

如果 data_store_id 不存在,则 cdm 将以 ZX_ERR_NOT_FOUND 音标关闭。

  • data_store_id 请求 ContentDecryptionModule 应使用的数据存储区。
  • 请求 cdm ContentDecryptionModule 的服务器端点。

请求

名称类型
data_store_id uint32
cdm server_end<ContentDecryptionModule>

DestroyDataStoreAndConfirm

销毁客户端数据存储区。

此方法会永久移除此数据存储区及其所有内容。所有配置和许可数据都将被移除,并且使用此数据存储区的所有处于活动状态的 ContentDecryptionModule 都将被关闭。

  • 请求 data_store_id 为要移除的数据存储区指定客户端分配的标识符。客户端无法提供之前未添加或之前销毁的 NO_DATA_STOREdata_store_id 值。

请求

名称类型
data_store_id uint32

响应

<EMPTY>

GetProperties

获取 KeySystem 实现的各种静态属性。

这些属性包括 KeySystem 的功能和要求,例如实现是基于硬件还是需要客户端提供的数据存储区才能运行。

  • 响应 properties KeySystem 实现的属性。

请求

<EMPTY>

响应

名称类型
properties KeySystemProperties

ContentDecryptionModule

fuchsia.media.drm/content_decryption.fidl 中定义

用于管理内容许可会话和提供媒体内容解密的协议。一个 ContentDecryptionModule 可能有零个或多个活跃的 LicenseSession,并且每个 LicenseSession 都拥有自己的一组密钥。

从 EME 客户端的角度来看,此协议与 MediaKeys 对象之间存在 1 对 1 关系。

CreateDecryptor

创建用于解密内容的 Decryptor fuchsia.media/StreamProcessor

decryptor 将可以访问由该 ContentDecryptionModule 的所有活动会话创建的密钥的并集。

  • 请求 params 用于创建 decryptor 的参数。
  • 请求 decryptorfuchsia.media/StreamProcessor 的服务器端点。

请求

名称类型
params DecryptorParams
decryptor server_end<fuchsia.media/StreamProcessor>

CreateLicenseSession

为指定类型创建新会话。

session_id 将由 ContentDecryptionModule 生成,并可用于在会话关闭后重新加载会话。如果底层 DRM 系统不支持 session_type,它会立即关闭 license_session

  • 响应 session_id 是一个标识符,稍后可用于重新加载会话(如果持久)。

请求

名称类型
session_type LicenseSessionType
license_session server_end<LicenseSession>

响应

名称类型
session_id SessionId

GetKeyStatusForHdcpVersion

查询与 HDCP 政策关联的假设密钥的状态。

这有助于客户端在建立 LicenseSession 之前确定要提取的内容类型。例如,如果设备会限制 HDCP 1.x 的输出,则客户端可以选择提取标清内容而不是提取高清内容。

  • hdcp_version 请求包含要检查的 HDCP 版本的字段,例如“1.2”或“2.0”。
  • 响应 key_status 一个字段,用于表示此设备的假设密钥将处于何种状态(如果可以获得许可)。

请求

名称类型
hdcp_version HdcpVersion

响应

名称类型
key_status KeyStatus

GetSupportedEncryptionSchemes

查询支持的加密方案列表。

此操作会返回 ContentDecryptionModule 支持的受支持加密方案(例如“cenc”或“cbcs”)的列表。如果该实现支持在获得许可之前通过解密来传递未加密的帧,它也应将 fuchsia.media.UNENCRYPTED 报告为受支持的架构。

  • 响应 encryption_schemes 支持的加密方案列表。

请求

<EMPTY>

响应

名称类型
encryption_schemes vector<string>

LoadLicenseSession

使用给定的 session_id 从存储空间加载现有会话。

如果未找到会话,license_session 将会关闭。

  • 请求 session_id 包含应从存储空间加载哪个会话的标识符。
  • 请求 license_sessionLicenseSession 的服务器端点。

请求

名称类型
session_id SessionId
license_session server_end<LicenseSession>

OnProvisioned

表示 ContentDecryptionModule 已预配。

如需创建 LicenseSession,必须预配 ContentDecryptionModule。在满足底层 DRM 系统的要求之前,ContentDecryptionModule 不会被视为已预配。DRM 系统可能不需要预配,可能只需要出厂预配,或者可能要求同时进行出厂预配和服务实例预配。

如果 ContentDecryptionModule 已进行充分的预配,系统会在创建后立即发送此事件。如果 ContentDecryptionModule 移除了其配置,则服务器将关闭通道并关闭所有处于活跃状态的 LicenseSession 或解密器。

如果 DRM 系统根本不需要配置,则应仍然发送此事件,以通知客户端它可以创建 LicenseSession

响应

<EMPTY>

SetServerCertificate

设置用于加密外发邮件的证书。

  • 请求 certificate 包含要使用的证书的缓冲区。
  • 错误,并显示指明失败原因的 Error

请求

名称类型
certificate vector<uint8>

响应

名称类型
payload ContentDecryptionModule_SetServerCertificate_Result

KeySystem

fuchsia.media.drm/services.fidl 中定义

AddDataStore

将客户端数据存储区添加到 KeySystem

在预配和许可管理过程中,DRM 系统会代表客户端生成数据。这些数据仅可供 DRM 系统使用,但客户端是数据的所有者。客户端控制数据的生命周期,并且可以选择将哪个数据集用于 ContentDecryptionModule

  • 请求 data_store_id 为数据存储区分配客户端分配的标识符。此标识符的范围限定为 KeySystem 渠道。客户端提供 NO_DATA_STORE 或已添加的 data_store_id 是无效的,服务器应关闭该通道。
  • 请求 data_store_params 要用于此数据存储区的参数。

请求

名称类型
data_store_id uint32
data_store_params DataStoreParams

响应

名称类型
payload KeySystem_AddDataStore_Result

CreateContentDecryptionModule2

创建一个新的 ContentDecryptionModule

创建 ContentDecryptionModule,它将使用关联的数据存储区(如果提供)。如果为 data_store_id 提供了 NO_DATA_STORE,则创建的 ContentDecryptionModule 将仅支持类型为 LicenseSessionType.TEMPORARYLicenseSession。 如果提供了 data_store_id,则创建的 ContentDecryptionModule 会将数据保存到该数据存储区。如果 KeySystem 需要数据存储区,而您提供了 NO_DATA_STORE,或者 KeySystem 不支持数据存储区,而实际提供了数据存储区,则服务器应关闭 cdm

如果 data_store_id 不存在,则 cdm 将以 ZX_ERR_NOT_FOUND 音标关闭。

  • data_store_id 请求 ContentDecryptionModule 应使用的数据存储区。
  • 请求 cdm ContentDecryptionModule 的服务器端点。

请求

名称类型
data_store_id uint32
cdm server_end<ContentDecryptionModule>

DestroyDataStoreAndConfirm

销毁客户端数据存储区。

此方法会永久移除此数据存储区及其所有内容。所有配置和许可数据都将被移除,并且使用此数据存储区的所有处于活动状态的 ContentDecryptionModule 都将被关闭。

  • 请求 data_store_id 为要移除的数据存储区指定客户端分配的标识符。客户端无法提供之前未添加或之前销毁的 NO_DATA_STOREdata_store_id 值。

请求

名称类型
data_store_id uint32

响应

<EMPTY>

GetProperties

获取 KeySystem 实现的各种静态属性。

这些属性包括 KeySystem 的功能和要求,例如实现是基于硬件还是需要客户端提供的数据存储区才能运行。

  • 响应 properties KeySystem 实现的属性。

请求

<EMPTY>

响应

名称类型
properties KeySystemProperties

LicenseSession

fuchsia.media.drm/license_session.fidl 中定义

用于交换与媒体许可建立相关的消息以及与其关联的加密密钥的协议。

如果客户端关闭 LicenseSession,所有派生的解密工具也会关闭,因为加密密钥将不再维护。

CreateDecryptor

创建用于解密内容的 Decryptor fuchsia.media/StreamProcessor

decryptor 将仅限于只能访问此 LicenseSession 所维护的密钥。

  • 请求 params 用于创建 decryptor 的参数。
  • 请求 decryptorfuchsia.media/StreamProcessor 的服务器端点。

请求

名称类型
params DecryptorParams
decryptor server_end<fuchsia.media/StreamProcessor>

GenerateLicenseRelease

启动许可会话的发布流程。

这会使 LicenseSession 销毁与会话关联的许可和/或密钥。如果会话是临时的,则在许可销毁后,会话将发送此请求的回复,然后关闭 LicenseSession 渠道。如果会话是永久性的,那么在许可被销毁后,会话将发送此请求的回复,然后通过 OnLicenseMessageGenerated 事件生成许可发布类型 LicenseMessage。客户端必须将此消息路由到许可服务器,以及该服务器对 ProcessLicenseServerMessage 的响应。LicenseSession 收到许可服务器的回复后,会关闭 LicenseSession 渠道。

  • 错误,并显示指明失败原因的 Error

请求

<EMPTY>

响应

名称类型
payload LicenseSession_GenerateLicenseRelease_Result

GenerateLicenseRequest

根据 init_data 为会话生成许可请求。

创建 LicenseMessage 后,系统会触发 OnLicenseMessageGenerated 事件,并显示要发送到许可服务器的消息。

  • 错误,并显示指明失败原因的 Error

请求

名称类型
init_data LicenseInitData

响应

名称类型
payload LicenseSession_GenerateLicenseRequest_Result

OnKeyStatesChanged

提供更新后的密钥状态信息。

例如,创建许可、到期、续订或加载永久性许可会话时可能会发生这种情况。

  • 响应 key_states key_ids 及其相关的 KeyStatusCode 的列表

响应

名称类型
key_states vector<KeyState>

OnLicenseMessageGenerated

提供应发送至许可服务器的 LicenseMessage

客户端负责将此消息传输到许可服务器。

  • 响应 request 客户端应向许可服务器发送的 LicenseSession 中的一条消息。

响应

名称类型
request LicenseMessage

OnReady

表示 LicenseSession 已成功初始化。

这始终是 LicenseSession 发送的第一条消息。

响应

<EMPTY>

ProcessLicenseResponse

使用来自许可服务器的消息更新 LicenseSession

来自许可请求、续订和释放的所有响应都应通过此方法路由到 LicenseSession

  • response 请求消息,以更新 LicenseSession 的状态。
  • 错误,并显示指明失败原因的 Error

请求

名称类型
response LicenseServerMessage

响应

名称类型
payload LicenseSession_ProcessLicenseResponse_Result

PlayReady

fuchsia.media.drm/services.fidl 中定义

用于访问 PlayReady 密钥系统的服务中心。

如果客户端关闭 PlayReady 渠道,派生的 ContentDecryptionModule 将保持活跃状态。

AddDataStore

将客户端数据存储区添加到 KeySystem

在预配和许可管理过程中,DRM 系统会代表客户端生成数据。这些数据仅可供 DRM 系统使用,但客户端是数据的所有者。客户端控制数据的生命周期,并且可以选择将哪个数据集用于 ContentDecryptionModule

  • 请求 data_store_id 为数据存储区分配客户端分配的标识符。此标识符的范围限定为 KeySystem 渠道。客户端提供 NO_DATA_STORE 或已添加的 data_store_id 是无效的,服务器应关闭该通道。
  • 请求 data_store_params 要用于此数据存储区的参数。

请求

名称类型
data_store_id uint32
data_store_params DataStoreParams

响应

名称类型
payload KeySystem_AddDataStore_Result

CreateContentDecryptionModule2

创建一个新的 ContentDecryptionModule

创建 ContentDecryptionModule,它将使用关联的数据存储区(如果提供)。如果为 data_store_id 提供了 NO_DATA_STORE,则创建的 ContentDecryptionModule 将仅支持类型为 LicenseSessionType.TEMPORARYLicenseSession。 如果提供了 data_store_id,则创建的 ContentDecryptionModule 会将数据保存到该数据存储区。如果 KeySystem 需要数据存储区,而您提供了 NO_DATA_STORE,或者 KeySystem 不支持数据存储区,而实际提供了数据存储区,则服务器应关闭 cdm

如果 data_store_id 不存在,则 cdm 将以 ZX_ERR_NOT_FOUND 音标关闭。

  • data_store_id 请求 ContentDecryptionModule 应使用的数据存储区。
  • 请求 cdm ContentDecryptionModule 的服务器端点。

请求

名称类型
data_store_id uint32
cdm server_end<ContentDecryptionModule>

DestroyDataStoreAndConfirm

销毁客户端数据存储区。

此方法会永久移除此数据存储区及其所有内容。所有配置和许可数据都将被移除,并且使用此数据存储区的所有处于活动状态的 ContentDecryptionModule 都将被关闭。

  • 请求 data_store_id 为要移除的数据存储区指定客户端分配的标识符。客户端无法提供之前未添加或之前销毁的 NO_DATA_STOREdata_store_id 值。

请求

名称类型
data_store_id uint32

响应

<EMPTY>

GetProperties

获取 KeySystem 实现的各种静态属性。

这些属性包括 KeySystem 的功能和要求,例如实现是基于硬件还是需要客户端提供的数据存储区才能运行。

  • 响应 properties KeySystem 实现的属性。

请求

<EMPTY>

响应

名称类型
properties KeySystemProperties

ProvisioningFetcher

fuchsia.media.drm/provision.fidl 中定义

从服务器获取配置。

某些 DRM 系统需要进行额外的运行时配置(也称为个性化)。设备通过此过程接收 DRM 凭据(例如证书),以便为单个 content provider 获取许可。

当系统确定需要配置时,DRM 系统会使用 ProvisioningFetcher 提取该配置。

Fetch

从服务器获取配置。

在需要配置时由 DRM 系统调用。

请求

名称类型
request ProvisioningRequest

响应

名称类型
response ProvisioningResponse

Widevine

fuchsia.media.drm/services.fidl 中定义

用于访问 Widevine 密钥系统的服务中心。

如果客户端关闭 Widevine 渠道,派生的 ContentDecryptionModule 将保持活跃状态。

AddDataStore

将客户端数据存储区添加到 KeySystem

在预配和许可管理过程中,DRM 系统会代表客户端生成数据。这些数据仅可供 DRM 系统使用,但客户端是数据的所有者。客户端控制数据的生命周期,并且可以选择将哪个数据集用于 ContentDecryptionModule

  • 请求 data_store_id 为数据存储区分配客户端分配的标识符。此标识符的范围限定为 KeySystem 渠道。客户端提供 NO_DATA_STORE 或已添加的 data_store_id 是无效的,服务器应关闭该通道。
  • 请求 data_store_params 要用于此数据存储区的参数。

请求

名称类型
data_store_id uint32
data_store_params DataStoreParams

响应

名称类型
payload KeySystem_AddDataStore_Result

CreateContentDecryptionModule2

创建一个新的 ContentDecryptionModule

创建 ContentDecryptionModule,它将使用关联的数据存储区(如果提供)。如果为 data_store_id 提供了 NO_DATA_STORE,则创建的 ContentDecryptionModule 将仅支持类型为 LicenseSessionType.TEMPORARYLicenseSession。 如果提供了 data_store_id,则创建的 ContentDecryptionModule 会将数据保存到该数据存储区。如果 KeySystem 需要数据存储区,而您提供了 NO_DATA_STORE,或者 KeySystem 不支持数据存储区,而实际提供了数据存储区,则服务器应关闭 cdm

如果 data_store_id 不存在,则 cdm 将以 ZX_ERR_NOT_FOUND 音标关闭。

  • data_store_id 请求 ContentDecryptionModule 应使用的数据存储区。
  • 请求 cdm ContentDecryptionModule 的服务器端点。

请求

名称类型
data_store_id uint32
cdm server_end<ContentDecryptionModule>

DestroyDataStoreAndConfirm

销毁客户端数据存储区。

此方法会永久移除此数据存储区及其所有内容。所有配置和许可数据都将被移除,并且使用此数据存储区的所有处于活动状态的 ContentDecryptionModule 都将被关闭。

  • 请求 data_store_id 为要移除的数据存储区指定客户端分配的标识符。客户端无法提供之前未添加或之前销毁的 NO_DATA_STOREdata_store_id 值。

请求

名称类型
data_store_id uint32

响应

<EMPTY>

GetProperties

获取 KeySystem 实现的各种静态属性。

这些属性包括 KeySystem 的功能和要求,例如实现是基于硬件还是需要客户端提供的数据存储区才能运行。

  • 响应 properties KeySystem 实现的属性。

请求

<EMPTY>

响应

名称类型
properties KeySystemProperties

结构

ContentDecryptionModule_SetServerCertificate_Response

fuchsia.media.drm/content_decryption.fidl 中定义

<EMPTY>

KeySystem_AddDataStore_Response

fuchsia.media.drm/services.fidl 中定义

<EMPTY>

LicenseInitData

fuchsia.media.drm/license_session.fidl 中定义

字段类型说明默认
type LicenseInitDataType

该类型是一个字符串,表示附带的 init 数据的格式。常见类型包括“cenc”、“keyids”、“webm”和“hls”。CDM 还可以定义自己的 CDM。

无默认值
data vector<uint8> 无默认值

LicenseMessage 资源

fuchsia.media.drm/license_session.fidl 中定义

源自 LicenseSession 的消息,调用方必须将此消息路由到许可服务器。

字段类型说明默认
type LicenseMessageType 无默认值
message fuchsia.mem/Buffer 无默认值

LicenseServerMessage 资源

fuchsia.media.drm/license_session.fidl 中定义

一条来自许可服务器的消息,调用方必须通过 ProcessLicenseServerMessageLicenseSession 提供此消息。

字段类型说明默认
message fuchsia.mem/Buffer 无默认值

LicenseSession_GenerateLicenseRelease_Response

fuchsia.media.drm/license_session.fidl 中定义

<EMPTY>

LicenseSession_GenerateLicenseRequest_Response

fuchsia.media.drm/license_session.fidl 中定义

<EMPTY>

LicenseSession_ProcessLicenseResponse_Response

fuchsia.media.drm/license_session.fidl 中定义

<EMPTY>

ProvisioningRequest 资源

fuchsia.media.drm/provision.fidl 中定义

由 DRM 系统传递给 ProvisioningFetcher 的消息,以便传递到配置服务器。

字段类型说明默认
default_provisioning_server_url fuchsia.url/Url

建议将 message 发送到的服务器。

无默认值
message fuchsia.mem/Buffer

要传送到配置服务器的 DRM 系统专属配置请求消息正文。VMO 必须至少具有以下权限:ZX_RIGHT_READ ZX_RIGHT_TRANSFER

无默认值

ProvisioningResponse 资源

fuchsia.media.drm/provision.fidl 中定义

来自配置服务器的消息,ProvisioningFetcher 必须回传给 DRM 系统。

字段类型说明默认
message fuchsia.mem/Buffer

从配置服务器收到的 DRM 系统专用配置响应消息正文。VMO 必须至少具有以下权限:ZX_RIGHT_READ ZX_RIGHT_TRANSFER

无默认值

枚举

错误严格

类型:uint32

fuchsia.media.drm/error.fidl 中定义

DRM 相关协议的标准错误代码。许多错误代码名称都源自 W3C Encrypted Media Extensions 规范,旨在涵盖常见的 CDM 异常情况。

W3C Encrypted Media Extensions:https://www.w3.org/TR/encryption-media

名称说明
1

客户端向服务器提供无效参数数据(如无效许可响应消息)时发生的错误。

2

在 CDM 不支持请求的操作(例如初始化数据类型未知的许可生成请求)时发生的错误。

3

当 CDM 未处于正确的状态而无法执行请求的操作时(例如在 LicenseSession 已开始许可发布流程时调用 LicenseSession.GenerateLicenseRequest)时发生的错误。

4

请求的操作超出允许限制(例如尝试加载已打开的会话)时发生的错误。

100

客户端无法解决的内部意外错误。

101

当 CDM 因需要进行额外配置而无法使用时发生的错误。

KeyStatus 严格

类型:uint32

fuchsia.media.drm/license_session.fidl 中定义

名称说明
0

该密钥目前可用于解密。

1

此密钥已过期,无法再用于解密。

2

该密钥不再可用于解密,但 CDM 仍然可以知道该密钥。

3

密钥存在目前无法满足的输出限制,可能无法用于解密。

4

该键存在一些目前无法满足的输出限制。此密钥可用于解密质量较低的内容。

5

密钥尚不已知,也不可用于解密。

6

由于出现内部错误,此密钥无法用于解密。

LicenseMessageType 严格

类型:uint32

fuchsia.media.drm/license_session.fidl 中定义

名称说明
1
2
3

LicenseSessionType 严格

类型:uint32

fuchsia.media.drm/license_session.fidl 中定义

名称说明
1

许可、密钥和会话记录未保留的会话。

2

在该会话中,系统将保留该会话的许可、密钥和记录以供离线使用,随后可使用 LoadSession() 进行加载。

要求严格

类型:uint32

fuchsia.media.drm/properties.fidl 中定义

名称说明
1
2
3

表格

DataStoreParams 资源

fuchsia.media.drm/services.fidl 中定义

序数字段类型说明
data_directory fuchsia.io/Directory

此数据存储区应将永久性配置和许可或其代理写入到的目录。必须填写此字段。

provision_server_certificate vector<uint8>

用于加密预配消息的证书。此字段是选填字段。

provisioning_fetcher ProvisioningFetcher

当此数据存储区需要预配时,要使用的 ProvisioningFetcher 的客户端端点。如果 DRM 系统需要对数据存储区进行预配,则必须设置此字段。否则,它是可选的。

DecryptorParams

fuchsia.media.drm/content_decryption.fidl 中定义

序数字段类型说明
require_secure_mode bool

要求解密工具 fuchsia.media/StreamProcessor 仅输出到安全缓冲区。

input_details fuchsia.media/FormatDetails

fuchsia.media/StreamProcessor 的初始格式详情。

KeyState

fuchsia.media.drm/license_session.fidl 中定义

序数字段类型说明
key_id fuchsia.media/KeyId
status KeyStatus

KeySystemProperties

fuchsia.media.drm/properties.fidl 中定义

序数字段类型说明
features Features

指示 KeySystem 所支持功能的各种标记。此字段是必填字段。

data_store_requirement Requirement

表示 KeySystem 的数据存储区要求。

如需了解不同值的影响,请参阅 KeySystem.ContentDecryptionModule2。必须填写此字段。

license_session_types vector<LicenseSessionType>

表示受支持的许可会话类型。此字段是必填字段,且列表不能为空。

init_data_types vector<string>

表示支持的初始化数据类型。此字段是必填字段,且列表不能为空。

encryption_schemes vector<string>

表示支持的加密方案。此字段是必填字段,且列表不能为空。

联合

ContentDecryptionModule_SetServerCertificate_Result 严格

fuchsia.media.drm/content_decryption.fidl 中定义

序数变体类型说明
response ContentDecryptionModule_SetServerCertificate_Response
err Error

KeySystem_AddDataStore_Result 严格

fuchsia.media.drm/services.fidl 中定义

序数变体类型说明
response KeySystem_AddDataStore_Response
err Error

LicenseSession_GenerateLicenseRelease_Result 严格

fuchsia.media.drm/license_session.fidl 中定义

序数变体类型说明
response LicenseSession_GenerateLicenseRelease_Response
err Error

LicenseSession_GenerateLicenseRequest_Result 严格

fuchsia.media.drm/license_session.fidl 中定义

序数变体类型说明
response LicenseSession_GenerateLicenseRequest_Response
err Error

LicenseSession_ProcessLicenseResponse_Result 严格

fuchsia.media.drm/license_session.fidl 中定义

序数变体类型说明
response LicenseSession_ProcessLicenseResponse_Response
err Error

BITS

功能严格

类型:uint32

fuchsia.media.drm/properties.fidl 中定义

名称说明
1

所有密钥管理和加密操作都在基于硬件的可信执行环境中执行。如果未设置,则使用软件实现。

2

可将解密的数据写入硬件安全缓冲区。

常量

名称类型说明
LICENSE_INIT_DATA_TYPE_CENC cenc String
LICENSE_INIT_DATA_TYPE_HLS hls String
LICENSE_INIT_DATA_TYPE_KEYIDS keyids String
LICENSE_INIT_DATA_TYPE_WEBM webm String
MAX_HDCP_VERSION_SIZE 16 uint32
MAX_LICENSE_INIT_DATA_TYPE_SIZE 100 uint32
MAX_SESSION_ID_SIZE 512 uint32
NO_DATA_STORE 0 uint32

一个标记值,用于与 KeySystem.CreateContentDecryptionModule2 搭配使用,以创建没有客户端数据存储区的 ContentDecryptionModule

别名

名称说明
EncryptionScheme string
HdcpVersion string[MAX_HDCP_VERSION_SIZE]
LicenseInitDataType string[MAX_LICENSE_INIT_DATA_TYPE_SIZE]
SessionId string[MAX_SESSION_ID_SIZE]