| // 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; |
| }; |