class KeySystem

Defined at line 4501 of file fidling/gen/sdk/fidl/fuchsia.media.drm/fuchsia.media.drm/hlcpp/fuchsia/media/drm/cpp/fidl.h

Public Methods

void ~KeySystem ()
void GetProperties (GetPropertiesCallback callback)

Get various static properties of the `KeySystem` implementation.

The properties include the capabilities and requirements of the

`KeySystem`, such as whether the implementation is hardware-based or

whether it requires client-provided data stores to operate.

- response `properties` the properties of the `KeySystem`

implementation.

void AddDataStore (uint32_t data_store_id, ::fuchsia::media::drm::DataStoreParams data_store_params, AddDataStoreCallback callback)

Adds a client data store to the `KeySystem`.

DRM systems generate data on behalf of clients as part of provisioning

and license management. This data is only usable by the DRM system, but

the client is the owner of the data. The client controls the lifetime of

the data and can select which data set is to be used for a

[`ContentDecryptionModule`].

+ request `data_store_id` a client-assigned identifier for the data

store. The identifier is scoped to the `KeySystem` channel. It is

invalid for the client to provide [`NO_DATA_STORE`] or an already

added `data_store_id` and the server should close the channel.

+ request `data_store_params` the parameters to be used for this data

store.

void DestroyDataStoreAndConfirm (uint32_t data_store_id, DestroyDataStoreAndConfirmCallback callback)

Destroys the client data store.

This method permanently removes this data store and all of its contents.

All provisioning and license data will be removed and any active

[`ContentDecryptionModule`] using this data store will be closed.

+ request `data_store_id` the client-assigned identifier for the data

store to be removed. It is invalid for the client to provide

[`NO_DATA_STORE`] or a `data_store_id` value that has not previously

been added or has been previously destroyed.

void CreateContentDecryptionModule2 (uint32_t data_store_id, ::fidl::InterfaceRequest< ::fuchsia::media::drm::ContentDecryptionModule> cdm)

Creates a new [`ContentDecryptionModule`].

Creates a `ContentDecryptionModule` that will use the associated data

store, if provided. If [`NO_DATA_STORE`] is provided for the

`data_store_id`, then the created `ContentDecryptionModule` will only

support [`LicenseSession`]s of [`LicenseSessionType.TEMPORARY`] type.

If a `data_store_id` is provided, then the created

`ContentDecryptionModule` will persist data to that data store. If the

`KeySystem` requires a data store and `NO_DATA_STORE` was provided or

the `KeySystem` does not support data stores and one was provided, then

the server should close the `cdm`.

If the `data_store_id` does not exist, the `cdm` will be closed with a

`ZX_ERR_NOT_FOUND` epitaph.

+ request `data_store_id` the data store that should be used by the

`ContentDecryptionModule`.

+ request `cdm` the server endpoint of the `ContentDecryptionModule`.