Project: /_project.yaml Book: /_book.yaml
Defined in fuchsia.media.drm/content_decryption.fidl
A protocol for managing content license sessions and providing decryption of media content. There may be zero to many active LicenseSessions associated with a ContentDecryptionModule
, each with their own sets of keys.
From an EME client's perspective, this protocol has a 1:1 relationship with the MediaKeys object.
Indicates that the ContentDecryptionModule
is provisioned.
In order to create LicenseSession
s, a ContentDecryptionModule
must be provisioned. A ContentDecryptionModule
is not considered provisioned until it meets the requirements for the underlying DRM system. The DRM system may not require provisioning, may only require factory provisioning or may require both factory provisioning and service instance provisioning.
If the ContentDecryptionModule
has already has sufficient provisioning, this event will be sent immediately upon creation. If the ContentDecryptionModule
has its provisioning removed, then the server will close the channel and also close any active LicenseSession
s or Decryptors.
If the DRM system does not require provisioning at all, this event should still be sent to notify the client that it can create LicenseSession
s.
Sets the certificate to be used for encrypting outgoing messages.
certificate
a buffer containing the certificate to be used.Creates a new session for the given type.
The session_id
will be generated by the ContentDecryptionModule and can be used to reload the session after closing. If the session_type
is not supported by the underlying DRM system, it will immediately close the license_session
.
session_type
a field containing either LicenseSessionType.TEMPORARY, LicenseSessionType.PERSISTENT_LICENSE or LicenseSessionType.PERSISTENT_USAGE_RECORDlicense_session
the server endpoint of the LicenseSessionsession_id
an identifier that can be used to reload the session later (if persistent).Loads an existing session from storage using the given session_id
.
If the session is not found, then the license_session
will be closed.
session_id
contains an identifier of which session should be loaded from storage.license_session
the server endpoint of the LicenseSession.Creates a Decryptor fuchsia.media/StreamProcessor to be used to decrypt content.
This decryptor
would have access to the union of keys created by all the active sessions for this ContentDecryptionModule.
params
the parameters with which to create the decryptor
.decryptor
the server endpoint of the fuchsia.media/StreamProcessor
.Queries the status of a hypothetical key associated with an HDCP policy.
This aids clients in determining which content type to fetch prior to establishing a LicenseSession. For example, if the device would restrict output for HDCP 1.x, then the client can choose to fetch SD content rather than HD.
hdcp_version
a field containing the HDCP version to check, such as “1.2” or “2.0”.key_status
a field indicating what the status of a hypothetical key would be for this device if one could be licensed.Queries for the list of supported encryption modes.
The common encryption modes include ‘cenc’, ‘cbc1’, ‘cens’, or ‘cbcs’.
encryption_modes
a list of the supported encryption modes.Defined in fuchsia.media.drm/license_session.fidl
A protocol for exchanging messages pertaining to the establishment of a media license and the encryption keys associated with it.
If the client closes the LicenseSession
, any derived Decryptors will also be closed as the encryption keys will no longer be maintained.
Indicates that the LicenseSession has successfully initialized.
This is always the first message sent by the LicenseSession
.
Generates a license request for a session based on the init_data
.
When the LicenseMessage has been created, the OnLicenseMessageGenerated
event will be triggered with the message to be sent to the license server.
init_data
container-specific data that is used to generate a LicenseMessageType.REQUEST LicenseMessage
.Inititiates the release process for the license session.
This will cause the LicenseSession to generate a LicenseMessage through the OnLicenseMessageGenerated
event. The client must route that message to the license server and the server‘s response to ProcessLicenseServerMessage
. Once the LicenseSession
has received the license server’s reply, it will close the LicenseSession
channel as this session will no longer be usable.
Updates the LicenseSession with a message from the license server.
All responses from license requests, renewals, and releases should be routed to the LicenseSession
through this method.
response
a message from the license server to update the state of the LicenseSession
.Creates a Decryptor fuchsia.media/StreamProcessor to be used to decrypt content.
This decryptor
would be restricted to only having access to the keys maintained by this LicenseSession.
params
the parameters with which to create the decryptor
.decryptor
the server endpoint of the fuchsia.media/StreamProcessor
.Provides a LicenseMessage that should be sent to the license server.
The client is responsible for transporting this message to the license server.
request
a message from the LicenseSession
that the client should send to the license server.Provides updated key status information.
Some examples on when this might occur would be on license creation, expiration, renewal, or load of a persistent license session.
key_info
a list of the fuchsia.media/KeyIds and their related KeyStatusesDefined in fuchsia.media.drm/provisioning.fidl
A protocol for exchanging messages pertaining to the establishment of a provisioning certificate.
Gets the current status of provisioning for this service instance.
status
indicates whether the service instance is sufficiently provisioned.Sets the certificate to be used for encrypting outgoing messages.
certificate
a buffer containing the certificate to be used.Generates a provisioning request for this service instance.
If the underlying DRM system requires provisioning for individual providers (the owner of the service instance), then this method can be used to generate ProvisioningRequests. This message must be routed to the provisioning server by the client and the server's response must be routed back to ProcessProvisioningResponse
.
request
a ProvisioningRequest
message to be provided to a provisioning server in order to receiving a provisioning certificate.Updates the Provisioner with a message from the provisioning server.
Not all underlying DRM systems will require provisioning for individual providers. If they do, this method will carry the provisioning message to the service instance so that it may persistently store the provider certificate.
response
a ProvisioningResponse from the provisioning server. It should contain the provisioning certificate.Removes all provider based provisioning for this service instance.
Any active ContentDecryptionModules on this service instance that relied on this provisioning will be closed, as they will no longer be usable without it. This does not impact any factory provisioning.
Defined in fuchsia.media.drm/services.fidl
A service hub providing access to the ClearKey key system. This key system is defined by the W3C Encrypted Media Extensions. It uses plain-text keys to decrypt the source.
If the client closes the ClearKey
channel, derived ContentDecryptionModule
s will remain active.
W3C Encrypted Media Extensions: https://www.w3.org/TR/encrypted-media
Creates a new ContentDecryptionModule.
cdm
the server endpoint of the ContentDecryptionModule
.Defined in fuchsia.media.drm/services.fidl
A service hub providing access to the Widevine key system.
If the client closes the Widevine
channel, derived ContentDecryptionModule
s and Provision
s will remain active.
Creates a new ContentDecryptionModule.
The ContentDecryptionModule
s created will share their persistent state, but will not share active sessions.
cdm
the server endpoint of the ContentDecryptionModule
.Creates a new Provisioner.
There can only be one active Provisioner
for each service instance.
provisioner
the server endpoint of the Provisioner
.Defined in fuchsia.media.drm/services.fidl
A service hub providing access to the PlayReady key system.
If the client closes the PlayReady
channel, derived ContentDecryptionModule
s will remain active.
Creates a new ContentDecryptionModule.
The ContentDecryptionModule
s created will share their persistent state, but will not share active sessions.
cdm
the server endpoint of the ContentDecryptionModule
.generated
generated
generated
Defined in fuchsia.media.drm/license_session.fidl
Defined in fuchsia.media.drm/license_session.fidl
A message originating from the LicenseSession that the caller must route to the license server.
Defined in fuchsia.media.drm/license_session.fidl
A message originating from the license server that the caller must provide to the LicenseSession via ProcessLicenseServerMessage
.
Defined in fuchsia.media.drm/license_session.fidl
generated
generated
Defined in fuchsia.media.drm/provisioning.fidl
A message originating from the Provisioner that the caller must route to the provisioning server.
Defined in fuchsia.media.drm/provisioning.fidl
A message originating from the provisioning server that the caller must provide to Provisioner.ProcessProvisioningResponse.
Type: uint32
Defined in fuchsia.media.drm/content_decryption.fidl
Type: uint32
Defined in fuchsia.media.drm/error.fidl
Standard error codes for DRM related protocols. Many of the error code names originate from the W3C Encrypted Media Extensions specification to cover common CDM exception cases.
W3C Encrypted Media Extensions: https://www.w3.org/TR/encrypted-media
Type: uint32
Defined in fuchsia.media.drm/license_session.fidl
Type: uint32
Defined in fuchsia.media.drm/license_session.fidl
Type: uint32
Defined in fuchsia.media.drm/provisioning.fidl
Defined in fuchsia.media.drm/content_decryption.fidl
generated
generated
generated
generated
generated