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/decrypt-media

AddDataStore

將用戶端資料儲存庫新增至 KeySystem

DRM 系統會在佈建和授權管理過程中代表用戶端產生資料。這項資料只能由 DRM 系統使用,但用戶端是資料的擁有者。用戶端會控管資料的生命週期,以及選取要用於 ContentDecryptionModule 的資料集。

  • 要求 data_store_id 取得資料儲存庫的用戶端指派的 ID。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.TEMPORARY 類型的 LicenseSession。如果提供 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,要求移除資料儲存庫的用戶端指派 ID。用戶端無法提供 NO_DATA_STORE 或先前未新增或先前已刪除的 data_store_id 值。

要求

名稱類型
data_store_id uint32

回應

<EMPTY>

GetProperties

取得 KeySystem 實作的各種靜態屬性。

這些屬性包含 KeySystem 的功能和要求,例如實作是否以硬體為基礎,或是否需要用戶端提供的資料儲存庫才能運作。

  • 回應 propertiesKeySystem 實作的屬性。

要求

<EMPTY>

回應

名稱類型
properties KeySystemProperties

ContentDecryptionModule

定義於 fuchsia.media.drm/content_decryption.fidl

用於管理內容授權工作階段及提供媒體內容解密的通訊協定。可能有零至許多與 ContentDecryptionModule 相關聯的有效 LicenseSession,每個都有專屬的一組金鑰。

從 EME 用戶端的角度來看,這個通訊協定與 MediaKeys 物件具有 1:1 的關係。

CreateDecryptor

建立用於解密內容的 Decryptor fuchsia.media/StreamProcessor

decryptor 可以存取這個 ContentDecryptionModule 所有有效工作階段所建立的金鑰聯集。

  • 要求 params 用於建立 decryptor 的參數。
  • 要求 decryptor 做為 fuchsia.media/StreamProcessor 的伺服器端點。

要求

名稱類型
params DecryptorParams
decryptor server_end<fuchsia.media/StreamProcessor>

CreateLicenseSession

針對指定類型建立新的工作階段。

session_id 將由 ContentDecryptionModule 產生,可用於在關閉後重新載入工作階段。如果基礎 DRM 系統不支援 session_type,它將立即關閉 license_session

  • 回應 session_id 是一個 ID,可用於稍後重新載入工作階段 (如果持續)。

要求

名稱類型
session_type LicenseSessionType
license_session server_end<LicenseSession>

回應

名稱類型
session_id SessionId

GetKeyStatusForHdcpVersion

查詢與 HDCP 政策相關聯的假設金鑰狀態。

這可協助用戶端在建立 LicenseSession 之前決定要擷取的內容類型。舉例來說,如果裝置限制 HDCP 1.x 的輸出,用戶端就可以選擇擷取 SD 內容,而非 HD 高畫質。

  • 要求 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 包含應從儲存空間載入的工作階段 ID。
  • 要求 license_session LicenseSession 的伺服器端點。

要求

名稱類型
session_id SessionId
license_session server_end<LicenseSession>

OnProvisioned

表示 ContentDecryptionModule 已佈建。

如要建立 LicenseSession,必須佈建 ContentDecryptionModuleContentDecryptionModule 只有在符合基礎 DRM 系統的需求之前,不會視為已佈建。DRM 系統可能不需要佈建,可能只需要工廠佈建,或是可能需要同時佈建及佈建服務執行個體。

如果 ContentDecryptionModule 已有足夠的佈建,系統會在建立這個事件時立即傳送。如果 ContentDecryptionModule 的佈建作業已移除,伺服器將會關閉管道,並關閉所有使用中的 LicenseSession 或 Decryptor。

如果 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 取得資料儲存庫的用戶端指派的 ID。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.TEMPORARY 類型的 LicenseSession。如果提供 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,要求移除資料儲存庫的用戶端指派 ID。用戶端無法提供 NO_DATA_STORE 或先前未新增或先前已刪除的 data_store_id 值。

要求

名稱類型
data_store_id uint32

回應

<EMPTY>

GetProperties

取得 KeySystem 實作的各種靜態屬性。

這些屬性包含 KeySystem 的功能和要求,例如實作是否以硬體為基礎,或是否需要用戶端提供的資料儲存庫才能運作。

  • 回應 propertiesKeySystem 實作的屬性。

要求

<EMPTY>

回應

名稱類型
properties KeySystemProperties

LicenseSession

定義於 fuchsia.media.drm/license_session.fidl

用於交換媒體授權及其相關加密金鑰的訊息的通訊協定。

如果用戶端關閉 LicenseSession,任何衍生的解密工具也會遭到關閉,因為系統不會再維護加密金鑰。

CreateDecryptor

建立用於解密內容的 Decryptor fuchsia.media/StreamProcessor

這個 decryptor 會受到限制,只能存取這個 LicenseSession 維護的金鑰。

  • 要求 params 用於建立 decryptor 的參數。
  • 要求 decryptor 做為 fuchsia.media/StreamProcessor 的伺服器端點。

要求

名稱類型
params DecryptorParams
decryptor server_end<fuchsia.media/StreamProcessor>

GenerateLicenseRelease

啟動授權工作階段的發布程序。

這會讓 LicenseSession 刪除與工作階段相關聯的授權和/或金鑰。如果是臨時工作階段,工作階段會在授權刪除後傳送這項要求的回覆,然後關閉 LicenseSession 管道。如果工作階段是永久的,工作階段會在授權刪除後傳送這項要求的回覆,然後會透過 OnLicenseMessageGenerated 事件產生授權版本類型 LicenseMessage。用戶端必須將該訊息轉送至授權伺服器,並將伺服器的回應轉送至 ProcessLicenseServerMessageLicenseSession 收到授權伺服器的回覆後,就會關閉 LicenseSession 管道。

  • Error,指出失敗原因。

要求

<EMPTY>

回應

名稱類型
payload LicenseSession_GenerateLicenseRelease_Result

GenerateLicenseRequest

根據 init_data 產生工作階段的授權要求。

建立 LicenseMessage 時,系統會觸發 OnLicenseMessageGenerated 事件,並將訊息傳送至授權伺服器。

  • Error,指出失敗原因。

要求

名稱類型
init_data LicenseInitData

回應

名稱類型
payload LicenseSession_GenerateLicenseRequest_Result

OnKeyStatesChanged

提供最新的重要狀態資訊。

例如建立授權、到期、更新或永久授權工作階段載入等項目。

  • 回應 key_states 包含 key_id 及其相關 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 取得資料儲存庫的用戶端指派的 ID。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.TEMPORARY 類型的 LicenseSession。如果提供 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,要求移除資料儲存庫的用戶端指派 ID。用戶端無法提供 NO_DATA_STORE 或先前未新增或先前已刪除的 data_store_id 值。

要求

名稱類型
data_store_id uint32

回應

<EMPTY>

GetProperties

取得 KeySystem 實作的各種靜態屬性。

這些屬性包含 KeySystem 的功能和要求,例如實作是否以硬體為基礎,或是否需要用戶端提供的資料儲存庫才能運作。

  • 回應 propertiesKeySystem 實作的屬性。

要求

<EMPTY>

回應

名稱類型
properties KeySystemProperties

ProvisioningFetcher

定義於 fuchsia.media.drm/provision.fidl

從伺服器擷取佈建作業。

部分 DRM 系統需要額外的執行階段佈建 (也稱為個別化)。這項程序可讓裝置收到用於取得個別內容供應器授權的 DRM 憑證 (例如憑證)。

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 取得資料儲存庫的用戶端指派的 ID。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.TEMPORARY 類型的 LicenseSession。如果提供 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,要求移除資料儲存庫的用戶端指派 ID。用戶端無法提供 NO_DATA_STORE 或先前未新增或先前已刪除的 data_store_id 值。

要求

名稱類型
data_store_id uint32

回應

<EMPTY>

GetProperties

取得 KeySystem 實作的各種靜態屬性。

這些屬性包含 KeySystem 的功能和要求,例如實作是否以硬體為基礎,或是否需要用戶端提供的資料儲存庫才能運作。

  • 回應 propertiesKeySystem 實作的屬性。

要求

<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

類型是一個字串,指出隨附初始化資料的格式。常見的類型包括「cenc」、「keyids」、「webm」和「hls」。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

來自授權伺服器的訊息,呼叫者必須透過 ProcessLicenseServerMessage 提供給 LicenseSession

欄位類型說明預設
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

無預設

表情符號

錯誤 strict 錯誤

類型:uint32

定義於 fuchsia.media.drm/error.fidl

DRM 相關通訊協定的標準錯誤代碼。許多錯誤代碼名稱取自 W3C Encrypted Media Extensions 規格,以涵蓋常見的 CDM 例外狀況。

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

名稱說明
1

用戶端向伺服器提供無效參數資料時發生的錯誤,例如授權回應訊息無效。

2

CDM 不支援要求的作業時發生的錯誤,例如具有不明初始化資料類型的授權產生要求。

3

當 CDM 未處於適當狀態以執行要求的作業時會發生的錯誤,例如在 LicenseSession 開始授權發布程序時呼叫 LicenseSession.GenerateLicenseRequest

4

當要求的動作超過允許的限制 (例如嘗試載入已開啟的工作階段) 時,就會發生錯誤。

100

發生內部未預期的錯誤,無法由用戶端處理。

101

當 CDM 因需要額外佈建而無法使用時,就會發生錯誤。

KeyStatus strict

類型:uint32

定義於 fuchsia.media.drm/license_session.fidl

名稱說明
0

金鑰目前可用於解密。

1

金鑰已過期,因此無法再用於解密。

2

金鑰無法再用於解密,但仍可在 CDN 中知道。

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

這個資料儲存庫應寫入永久佈建和授權的目錄,或其 Proxy。這是必填欄位。

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>

表示支援的 init 資料類型。此為必填欄位,清單不得留空。

encryption_schemes vector<string>

指出支援的加密配置。此為必填欄位,且清單不得留空。

聯合國

ContentDecryptionModule_SetServerCertificate_Result 嚴格

定義於 fuchsia.media.drm/content_decryption.fidl

序數Variant類型說明
response ContentDecryptionModule_SetServerCertificate_Response
err Error

KeySystem_AddDataStore_Result 嚴格

定義於 fuchsia.media.drm/services.fidl

序數Variant類型說明
response KeySystem_AddDataStore_Response
err Error

LicenseSession_GenerateLicenseRelease_Result strict

定義於 fuchsia.media.drm/license_session.fidl

序數Variant類型說明
response LicenseSession_GenerateLicenseRelease_Response
err Error

LicenseSession_GenerateLicenseRequest_Result strict

定義於 fuchsia.media.drm/license_session.fidl

序數Variant類型說明
response LicenseSession_GenerateLicenseRequest_Response
err Error

LicenseSession_ProcessLicenseResponse_Result strict

定義於 fuchsia.media.drm/license_session.fidl

序數Variant類型說明
response LicenseSession_ProcessLicenseResponse_Response
err Error

節拍

功能嚴格

類型: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]