/* * 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. }