blob: 585c2b6c70154accf3b280d2066bd9281114f050 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.media.drm;
bits Features : uint32 {
/// All key management and crypto operations are performed in a hardware
/// based trusted execution environment. If not set, a software
/// implementation is used.
HARDWARE_CRYPTO = 0x01;
/// Decrypted data can be written to hardware secure buffers.
SECURE_OUTPUT = 0x02;
};
enum Requirement {
NOT_SUPPORTED = 1;
OPTIONAL = 2;
REQUIRED = 3;
};
table KeySystemProperties {
/// Various flags indicating supported features of the [`KeySystem`]. This
/// field is required.
1: Features features;
/// Indicates the data store requirements of the [`KeySystem`].
///
/// See [`KeySystem.ContentDecryptionModule2`] for implications of different
/// values. This field is required.
2: Requirement data_store_requirement;
/// Indicates the supported license session types. This field is required
/// and the list must not be empty.
3: vector<LicenseSessionType>:MAX license_session_types;
/// Indicates the supported init data types. This field is required and the
/// list must not be empty.
4: vector<LicenseInitDataType>:MAX init_data_types;
/// Indicates the supported encryption schemes. This field is required and
/// the list must not be empty.
5: vector<EncryptionScheme>:MAX encryption_schemes;
};