Support for group license
Content keys in ECM v3 can now additionally be encrypted by group entitlement keys.
This commit is contained in:
@@ -22,6 +22,9 @@ message CaDescriptorPrivateData {
|
||||
// Entitlement key IDs for current content per track. Each track will allow up
|
||||
// to 2 entitlement key ids (odd and even entitlement keys).
|
||||
repeated bytes entitlement_key_ids = 3;
|
||||
|
||||
// The groups ids this channel belongs to.
|
||||
repeated bytes group_ids = 4;
|
||||
}
|
||||
|
||||
// Widevine fingerprinting.
|
||||
@@ -49,6 +52,15 @@ message ServiceBlocking {
|
||||
message EmmPayload {
|
||||
repeated Fingerprinting fingerprinting = 1;
|
||||
repeated ServiceBlocking service_blocking = 2;
|
||||
// Epoch time in seconds. The time when the EMM is generated.
|
||||
optional int64 timestamp_secs = 3;
|
||||
}
|
||||
|
||||
message SignedEmmPayload {
|
||||
// Serialized EmmPayload.
|
||||
optional bytes serialized_payload = 1;
|
||||
// ECC (Elliptic Curve Cryptography) signature of |serialized_payload|.
|
||||
optional bytes signature = 2;
|
||||
}
|
||||
|
||||
message EcmMetaData {
|
||||
@@ -89,6 +101,18 @@ message EcmKeyData {
|
||||
optional bytes content_iv = 4;
|
||||
}
|
||||
|
||||
message EcmGroupKeyData {
|
||||
// Group id of this key data.
|
||||
optional bytes group_id = 1;
|
||||
// Required. The key data for the even slot. Fields wrapped_key_iv and
|
||||
// content_iv may be omitted if it is the same as EcmPayload.even_key_data.
|
||||
optional EcmKeyData even_key_data = 2;
|
||||
// Optional. The key data for the odd slot if key rotation is enabled. Fields
|
||||
// wrapped_key_iv and content_iv may be omitted if it is the same as
|
||||
// EcmPayload.odd_key_data.
|
||||
optional EcmKeyData odd_key_data = 3;
|
||||
}
|
||||
|
||||
message EcmPayload {
|
||||
// Required. Meta info carried by the ECM.
|
||||
optional EcmMetaData meta_data = 1;
|
||||
@@ -100,6 +124,9 @@ message EcmPayload {
|
||||
optional Fingerprinting fingerprinting = 4;
|
||||
// Optional. Widevine service blocking information.
|
||||
optional ServiceBlocking service_blocking = 5;
|
||||
// If a channel belongs to a group, the content keys can additionally be
|
||||
// encrypted by the group entitlement keys.
|
||||
repeated EcmGroupKeyData group_key_data = 6;
|
||||
}
|
||||
|
||||
// The payload field for an ECM with signature.
|
||||
|
||||
Reference in New Issue
Block a user