//////////////////////////////////////////////////////////////////////////////// // Copyright 2017 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. //////////////////////////////////////////////////////////////////////////////// // // Description: // DRM certificate object definition. syntax = "proto2"; package widevine; option java_outer_classname = "DrmCertificateProtos"; option java_package = "com.google.video.widevine.protos"; // DRM certificate definition for user devices, intermediate, service, and root // certificates. message DrmCertificate { enum Type { ROOT = 0; // ProtoBestPractices: ignore. DEVICE_MODEL = 1; DEVICE = 2; SERVICE = 3; PROVISIONER = 4; } enum ServiceType { UNKNOWN = 0; LICENSE_SERVER_SDK = 1; LICENSE_SERVER_PROXY_SDK = 2; } // Type of certificate. Required. optional Type type = 1; // 128-bit globally unique serial number of certificate. // Value is 0 for root certificate. Required. optional bytes serial_number = 2; // POSIX time, in seconds, when the certificate was created. Required. optional uint32 creation_time_seconds = 3; // Device public key. PKCS#1 ASN.1 DER-encoded. Required. optional bytes public_key = 4; // Widevine system ID for the device. Required for intermediate and // user device certificates. optional uint32 system_id = 5; // Deprecated field, which used to indicate whether the device was a test // (non-production) device. The test_device field in ProvisionedDeviceInfo // below should be observed instead. optional bool test_device_deprecated = 6 [deprecated = true]; // Service identifier (web origin) for the provider which owns the // certificate. Required for service and provisioner certificates. optional string provider_id = 7; // This field is used only when type = SERVICE to specify which SDK uses // service certificate. optional ServiceType service_type = 8 [default = UNKNOWN]; }