//////////////////////////////////////////////////////////////////////////////// //// 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. //////////////////////////////////////////////////////////////////////////////// // // syntax = "proto2"; package video_widevine; import "protos/public/hash_algorithm.proto"; import "protos/public/provisioned_device_info.proto"; option java_outer_classname = "DeviceCertificateStatusProtos"; option java_package = "com.google.video.widevine.protos"; message DeviceCertificateStatus { reserved 8; enum DeprecatedStatus { DEPRECATED_VALID = 0; DEPRECATED_REVOKED = 1; } enum Status { STATUS_UNKNOWN = 0; STATUS_IN_TESTING = 10; STATUS_RELEASED = 20; STATUS_TEST_ONLY = 30; STATUS_REVOKED = 40; } message RevokedIdentifiers { repeated bytes revoked_certificate_serial_numbers = 1; repeated bytes revoked_unique_id_hashes = 2; } optional bytes drm_serial_number = 1; optional DeprecatedStatus deprecated_status = 2 [default = DEPRECATED_VALID]; optional ProvisionedDeviceInfo device_info = 4; optional bytes oem_serial_number = 5; optional Status status = 6 [default = STATUS_UNKNOWN]; optional RevokedIdentifiers revoked_identifiers = 7; } message ImpactAnalysisReport { message ImpactAnalysis { enum DeviceStatusOperation { DEVICE_STATUS_OPERATION_UNSPECIFIED = 0; DEVICE_STATUS_UPDATE = 1; DEVICE_STATUS_REVOKE = 2; DEVICE_STATUS_INDIVIDUAL_DEVICE_REVOKE = 3; DEVICE_STATUS_REMOVED = 4; } enum DeviceStatusImpact { DEVICE_STATUS_IMPACT_UNSPECIFIED = 0; DEVICE_STATUS_IMPACT_NONE = 1; DEVICE_STATUS_IMPACT_LOW = 2; DEVICE_STATUS_IMPACT_MEDIUM = 3; DEVICE_STATUS_IMPACT_HIGH = 4; DEVICE_STATUS_IMPACT_UNABLE_TO_OBTAIN = 5; } enum DeviceCertificateStatusMetadataOperation { DEVICE_CERTIFICATE_STATUS_METADATA_OPERATION_UNSPECIFIED = 0; DEVICE_CERTIFICATE_STATUS_METADATA_OPERATION_UPDATE = 1; DEVICE_CERTIFICATE_STATUS_METADATA_OPERATION_REMOVE = 2; DEVICE_CERTIFICATE_STATUS_METADATA_OPERATION_ADD = 3; } message DeviceCertificateStatusMetadataFieldUpdates { optional string metadata_field_name = 1; optional DeviceCertificateStatusMetadataOperation metadata_operation = 2; } message DeviceCertificateStatusDelta { repeated string delta = 1; } message ImpactAnalysisMetrics { optional float impact_value = 1; optional uint64 number_of_requests = 2; optional uint32 request_duration_days = 3; } optional uint32 system_id = 1; optional DeviceStatusImpact impact = 2; optional DeviceStatusOperation operation = 3; optional uint32 operation_time_seconds = 4; optional ImpactAnalysisMetrics impact_analysis_metrics = 5; optional DeviceCertificateStatus.RevokedIdentifiers newly_revoked_identifiers = 6; repeated DeviceCertificateStatusMetadataFieldUpdates metadata_field_updates = 7; optional DeviceCertificateStatusDelta device_certificate_status_delta = 8; } optional uint32 prev_dcsl_creation_time_seconds = 1; repeated ImpactAnalysis impact_analysis = 2; } message DeviceCertificateStatusList { optional uint32 creation_time_seconds = 1; repeated DeviceCertificateStatus certificate_status = 2; optional ImpactAnalysisReport impact_analysis_report = 3; } message PublishedDevicesList { optional uint32 creation_time_seconds = 1; repeated DeviceCertificateStatus device_certificate_status = 2; optional ImpactAnalysisReport impact_analysis_report = 3; } message SignedDeviceCertificateStatusList { optional bytes certificate_status_list = 1; optional bytes signature = 2; optional HashAlgorithmProto hash_algorithm = 3; } message DeviceStatusOptions { optional bool allow_unknown_system_id = 1 [default = false]; optional bool allow_revoked_system_id = 2 [default = false]; optional bool allow_test_only_system_id = 3 [default = false]; optional bool allow_pre_release_system_id = 4 [default = true]; optional bool allow_revoked_individual_device = 5 [default = false]; }