blob: e52ac952ff2dff8b47fbff8490e47e8aeb33978c [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// TODO(xhwang): Move this out of media if it is needed anywhere else.
module media.interfaces;
// Allows authorized services to verify that the underlying platform is trusted.
// An example of a trusted platform is a Chrome OS device in verified boot mode.
// This can be used for protected content playback.
// Input parameters:
// - |service_id|: the service ID for the |challenge|.
// - |challenge|: the challenge data.
// Output parameters:
// - |success|: whether the platform is successfully verified. If true/false the
// following 3 parameters should be non-empty/empty.
// - |signed_data|: the data signed by the platform.
// - |signed_data_signature|: the signature of the signed data block.
// - |platform_key_certificate|: the device specific certificate for the
// requested service.
interface PlatformVerification {
ChallengePlatform(string service_id, string challenge) =>
(bool success,
string? signed_data,
string? signed_data_signature,
string? platform_key_certificate);