//////////////////////////////////////////////////////////////////////////////// //// Copyright 2020 Google LLC //// //// This software is licensed under the terms defined in the Widevine Master //// License Agreement. For a copy of this agreement, please contact //// widevine-licensing@google.com. //////////////////////////////////////////////////////////////////////////////// // syntax = "proto3"; package video_widevine; import "google/protobuf/descriptor.proto"; option java_package = "com.google.video.widevine.protos"; message DeviceModel { enum ModelStatus { MODEL_STATUS_UNSPECIFIED = 0; MODEL_STATUS_VERIFIED = 1; MODEL_STATUS_UNVERIFIED = 2; MODEL_STATUS_UNKNOWN = 4; MODEL_STATUS_REJECTED = 3; } message ModelStatistics { double percent_license_requests_last_7_days = 1; double percent_license_requests_last_30_days = 2; double percent_license_requests_last_90_days = 3; } string manufacturer = 1; string model_name = 2; uint32 model_year = 3; ModelStatus status = 4; ModelStatistics model_statistics = 5; } // // // // enum DeviceState { DEVICE_STATE_UNKNOWN = 0; IN_TESTING = 1; RELEASED = 2; DELETED = 3; TEST_ONLY = 4; REVOKED = 5; PRE_RELEASE = 6; REVOKED_LICENSING = 7; } enum DeviceType { DEVICE_TYPE_UNSPECIFIED = 0; DEVICE_TYPE_PHONE = 1; DEVICE_TYPE_TV = 2; DEVICE_TYPE_TABLET = 3; DEVICE_TYPE_GAMING_CONSOLE = 4; DEVICE_TYPE_SET_TOP_BOX = 5; DEVICE_TYPE_VIDEO_DONGLE = 6; DEVICE_TYPE_PC = 7; DEVICE_TYPE_AUTO = 8; DEVICE_TYPE_WEARABLE = 9; DEVICE_TYPE_CONNECTED_AUDIO_DEVICE = 10; DEVICE_TYPE_SMART_DISPLAY = 11; DEVICE_TYPE_SOC = 12; DEVICE_TYPE_OTHER = 13; DEVICE_TYPE_HEADSET = 14; } enum Platform { PLATFORM_UNSPECIFIED = 0; PLATFORM_CHROMECAST = 1; PLATFORM_FUCHSIA = 2; PLATFORM_IOS = 3; PLATFORM_IPAD_OS = 4; PLATFORM_TV_OS = 5; PLATFORM_ANDROID = 6; PLATFORM_WINDOWS = 7; PLATFORM_CHROME_OS = 8; PLATFORM_MAC_OS = 9; PLATFORM_LINUX = 10; PLATFORM_WEB_OS = 11; PLATFORM_TIZEN = 12; PLATFORM_FIRE_OS = 13; PLATFORM_ROKU = 14; PLATFORM_PLAYSTATION = 15; PLATFORM_XBOX = 16; PLATFORM_KAIOS = 17; PLATFORM_RDK = 18; PLATFORM_OTHER = 19; } enum OsOptionalSupport { OS_OPTIONAL_SUPPORT_UNSPECIFIED = 0; YES_TEE = 1; YES_REE = 2; NO_SUPPORT = 3; } enum HdcpVersion { HDCP_VERSION_UNSPECIFIED = 0; HDCP_V1 = 1; HDCP_V2 = 2; HDCP_V2_1 = 3; HDCP_V2_2 = 4; HDCP_V2_3 = 5; HDCP_V1_0 = 6; HDCP_V1_1 = 7; HDCP_V1_2 = 8; HDCP_V1_3 = 9; HDCP_V1_4 = 10; } enum DeviceSecurityLevel { SECURITY_LEVEL_UNSPECIFIED = 0; LEVEL_1 = 1; LEVEL_2 = 2; LEVEL_3 = 3; } enum CertificateKeyType { CERTIFICATE_KEY_TYPE_UNSPECIFIED = 0; CERTIFICATE_KEY_TYPE_RSA = 1; CERTIFICATE_KEY_TYPE_RSA_EULER = 2; CERTIFICATE_KEY_TYPE_EC = 3; } enum KeyboxVersion { KEYBOX_VERSION_UNSPECIFIED = 0; KEYBOX_VERSION_2 = 2; KEYBOX_VERSION_3 = 3; KEYBOX_VERSION_2_OR_3 = 4; KEYBOX_VERSION_4 = 5; } enum RSAKeySize { RSA_KEY_SIZE_UNSPECIFIED = 0; RSA_KEY_SIZE_1024 = 1; RSA_KEY_SIZE_2048 = 2; RSA_KEY_SIZE_3072 = 3; RSA_KEY_SIZE_4096 = 4; } enum VulnerabilityLevel { VULNERABILITY_LEVEL_UNSPECIFIED = 0; VULNERABILITY_LEVEL_NONE = 1; VULNERABILITY_LEVEL_LOW = 2; VULNERABILITY_LEVEL_MEDIUM = 3; VULNERABILITY_LEVEL_HIGH = 4; VULNERABILITY_LEVEL_CRITICAL = 5; } message VulnerabilityInfo { string description = 1; uint64 buganizer_number = 2; VulnerabilityLevel vulnerability_level = 3; } enum VerificationLevel { VERIFICATION_LEVEL_UNSPECIFIED = 0; VERIFICATION_LEVEL_UNVERIFIED = 1; VERIFICATION_LEVEL_VERIFIED = 2; VERIFICATION_LEVEL_VERIFIED_GTS = 3; } message VerificationInfo { VerificationLevel level = 1; string proof = 2; string notes = 3; } message AndroidAttestationKeybox { bytes ecdsa_private_key = 1; repeated bytes ecdsa_cert = 2; bytes rsa_private_key = 3; repeated bytes rsa_cert = 4; uint32 attestation_keybox_id = 5; } enum AttestationMethod { ATTESTATION_METHOD_UNSPECIFIED = 0; ATTESTATION_METHOD_KEY_UPLOAD = 1; ATTESTATION_METHOD_VERIFIER_KEY = 2; } extend google.protobuf.EnumValueOptions { string string_name = 123456789; } enum OemCryptoVersion { OEM_CRYPTO_V_UNKNOWN = 0 [(string_name) = "unknown"]; OEM_CRYPTO_V9 = 1 [(string_name) = "9"]; OEM_CRYPTO_V10 = 2 [(string_name) = "10"]; OEM_CRYPTO_V10_1 = 3 [(string_name) = "10.1"]; OEM_CRYPTO_V10_2 = 4 [(string_name) = "10.2"]; OEM_CRYPTO_V10_3 = 5 [(string_name) = "10.3"]; OEM_CRYPTO_V11 = 6 [(string_name) = "11"]; OEM_CRYPTO_V11_1 = 7 [(string_name) = "11.1"]; OEM_CRYPTO_V11_2 = 8 [(string_name) = "11.2"]; OEM_CRYPTO_V12 = 9 [(string_name) = "12"]; OEM_CRYPTO_V13 = 10 [(string_name) = "13"]; OEM_CRYPTO_V13_1 = 11 [(string_name) = "13.1"]; OEM_CRYPTO_V13_2 = 12 [(string_name) = "13.2"]; OEM_CRYPTO_V14 = 13 [(string_name) = "14"]; OEM_CRYPTO_V14_1 = 14 [(string_name) = "14.1"]; OEM_CRYPTO_V15 = 15 [(string_name) = "15"]; OEM_CRYPTO_V15_1 = 16 [(string_name) = "15.1"]; OEM_CRYPTO_V15_2 = 17 [(string_name) = "15.2"]; OEM_CRYPTO_V16 = 18 [(string_name) = "16"]; OEM_CRYPTO_V16_1 = 19 [(string_name) = "16.1"]; OEM_CRYPTO_V16_2 = 20 [(string_name) = "16.2"]; OEM_CRYPTO_V16_3 = 21 [(string_name) = "16.3"]; OEM_CRYPTO_V16_4 = 22 [(string_name) = "16.4"]; OEM_CRYPTO_V17 = 23 [(string_name) = "17"]; OEM_CRYPTO_V17_1 = 24 [(string_name) = "17.1"]; OEM_CRYPTO_V17_1_1 = 25 [(string_name) = "17.1.1"]; OEM_CRYPTO_V18 = 26 [(string_name) = "18"]; OEM_CRYPTO_V18_1 = 27 [(string_name) = "18.1"]; OEM_CRYPTO_V18_3 = 28 [(string_name) = "18.3"]; OEM_CRYPTO_V18_4 = 29 [(string_name) = "18.4"]; OEM_CRYPTO_V18_5 = 30 [(string_name) = "18.5"]; OEM_CRYPTO_V19 = 31 [(string_name) = "19"]; OEM_CRYPTO_V19_1 = 32 [(string_name) = "19.1"]; OEM_CRYPTO_V19_2 = 33 [(string_name) = "19.2"]; OEM_CRYPTO_V19_3 = 34 [(string_name) = "19.3"]; OEM_CRYPTO_V19_4 = 35 [(string_name) = "19.4"]; OEM_CRYPTO_V19_5 = 36 [(string_name) = "19.5"]; OEM_CRYPTO_V19_6 = 37 [(string_name) = "19.6"]; OEM_CRYPTO_V19_7 = 38 [(string_name) = "19.7"]; OEM_CRYPTO_V20_0 = 39 [(string_name) = "20.0"]; OEM_CRYPTO_V20_1 = 40 [(string_name) = "20.1"]; OEM_CRYPTO_V17_2 = 41 [(string_name) = "17.2"]; OEM_CRYPTO_V17_4 = 42 [(string_name) = "17.4"]; OEM_CRYPTO_V18_6 = 43 [(string_name) = "18.6"]; OEM_CRYPTO_V17_5 = 44 [(string_name) = "17.5"]; OEM_CRYPTO_V18_7 = 45 [(string_name) = "18.7"]; OEM_CRYPTO_V17_6 = 46 [(string_name) = "17.6"]; OEM_CRYPTO_V18_8 = 47 [(string_name) = "18.8"]; OEM_CRYPTO_V17_7 = 48 [(string_name) = "17.7"]; OEM_CRYPTO_V18_9 = 49 [(string_name) = "18.9"]; } enum AndroidPlatform { ANDROID_PLATFORM_UNSPECIFIED = 0 [(string_name) = "unknown"]; ANDROID_PLATFORM_MOBILE = 1 [(string_name) = "Mobile"]; ANDROID_PLATFORM_TV = 2 [(string_name) = "TV"]; ANDROID_PLATFORM_AUTO = 3 [(string_name) = "Auto"]; ANDROID_PLATFORM_WEAR = 4 [(string_name) = "Wear"]; } enum AndroidApiLevel { ANDROID_API_LEVEL_UNSPECIFIED = 0 [(string_name) = "unknown"]; ANDROID_API_LEVEL_26 = 1 [(string_name) = "API 26/Android 8"]; ANDROID_API_LEVEL_27 = 2 [(string_name) = "API 27/Android 8"]; ANDROID_API_LEVEL_28 = 3 [(string_name) = "API 28/Android 9"]; ANDROID_API_LEVEL_29 = 4 [(string_name) = "API 29/Android 10"]; ANDROID_API_LEVEL_30 = 5 [(string_name) = "API 30/Android 11"]; ANDROID_API_LEVEL_31 = 6 [(string_name) = "API 31/Android 12"]; ANDROID_API_LEVEL_32 = 7 [(string_name) = "API 32/Android 12L"]; ANDROID_API_LEVEL_33 = 8 [(string_name) = "API 33/Android 13"]; ANDROID_API_LEVEL_34 = 9 [(string_name) = "API 34/Android 14"]; ANDROID_API_LEVEL_35 = 10 [(string_name) = "API 35/Android 15"]; ANDROID_VERSION_V16 = 11 [(string_name) = "Android 16"]; }