blob: 397145d7c7a5120bb74c2fee5cc4d6624b47cd37 [file] [log] [blame]
/*
* Copyright 2017, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
package android.clearkeycas;
option java_package = "com.google.video.clearkey.protos";
// The Asset is the data describing licensing requirements and polciy for a
// customer's video asset.
//
// The asset_id must not be set on creation. It is only used for assets of
// CasType: CLEARKEY_CAS.
//
message Asset {
// Indicates the type of digital rights management scheme used.
// CLEARKEY_CAS: Clearkey Media CAS.
enum CasType {
UNKNOWN = 0;
CLEARKEY_CAS = 1;
}
// Must be unset on creation. Required for mutate operations on CLEARKEY_CAS assets.
optional uint64 id = 1;
// Organization-specified name of the asset. Required. Must not be empty.
// 'bytes' instead of 'string' due to UTF-8 validation in the latter.
optional bytes name = 2;
// The lowercase_organization_name is required. It's a foreign key to the
// Organization table and part of the primary key for the Asset table.
optional string lowercase_organization_name = 3;
// The policy_name is required. It's a foreign key to the policy table.
optional string policy_name = 4; // Name of the Policy to apply to this asset.
// Key information for decrypting content. Not used for CLEARKEY_CAS.
optional AssetKey asset_key = 5;
optional CasType cas_type = 6 [default = UNKNOWN];
}
// AssetKey defines a key that can be used to decrypt the license.
// Note: In the previous implementation, the schema accommodated multiple
// asset keys per asset. This is not supported in this implementation.
message AssetKey {
optional bytes encryption_key = 1; // 256-byte key for the asset.
}