// Copyright 2019 Google LLC. All rights reserved. // // Definitions of the protocol buffer messages for security profile level. syntax = "proto2"; package video_widevine; import "protos/public/device_common.proto"; import "protos/public/device_security_profile_data.proto"; option java_outer_classname = "SecurityProfileProtos"; option java_package = "com.google.video.widevine.protos"; message SecurityProfile { // TODO(hali): Remove this enum and use enum defined in // protos/internal/devcei_data.proto. enum DeviceState { DEVICE_STATE_UNKNOWN = 0; IN_TESTING = 1; RELEASED = 2; DELETED = 3; TEST_ONLY = 4; REVOKED = 5; PRE_RELEASE = 6; } message ClientInfo { message ProductInfo { // The 'product_name' as specified in the // ClientIdentification.names_values. Optional. optional string product_name = 1; // The 'build_info' as specified in the // ClientIdentification.names_values. Optional. optional string build_info = 2; // The 'oem_crypto_security_patch_level' as specified in the // ClientIdentification.names_values. Optional. optional string oem_crypto_security_patch_level = 3; // Widevine device platform. optional string platform = 4; } // The 'device_name' as specified in the // ClientIdentification.names_values. Optional. optional string device_name = 1; // Product fields that are specified in the // ClientIdentification.names_values. optional ProductInfo product_info = 2; } message DrmInfo { // Make/Model specified by the client. optional DeviceModel request_model_info = 1; // Widevine device system id. optional uint32 system_id = 2; // Output requirements optional OutputRequirement output = 3; // Security requirements optional SecurityRequirement security = 4; // Device status such as RELEASED or REVOKED. optional DeviceState device_model_state = 5; // ClientIdentification.names_values fields. optional ClientInfo client_info = 6; } // Required. Widevine security profile name. optional string name = 1; // Optional. Widevine security profile level. optional SecurityProfileLevel level = 2; // Minimum output requirements for this profile. optional OutputRequirement min_output_requirements = 3; // Minimum security requirements for this profile. optional SecurityRequirement min_security_requirements = 4; // Name of content owner who owns this security profile. optional string owner = 5 [default = "Widevine"]; // Special handling of devices to override the default capabilities of a // device. repeated DeviceException device_exceptions = 6; // Optional. Control time indicates the timestamps when this profile is // effective and when it is expired. For default DSPs provided by Widevine, // they are always being active and never expiring. optional ControlTime control_time = 7; }