| // Copyright 2018 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.hardware.tee; |
| |
| using fuchsia.tee as tee; |
| using fuchsia.tee.manager as manager; |
| |
| /// Protocol used by the TEE Manager to proxy requests for TEE access to the driver. |
| closed protocol DeviceConnector { |
| /// Requests a `DeviceInfo` connection to the TEE driver to enumerate device info. |
| /// |
| /// The sole caller of this should be the TEE Manager. |
| strict ConnectToDeviceInfo(resource struct { |
| device_info_request server_end:tee.DeviceInfo; |
| }); |
| |
| /// Requests an `Application` connection from the TEE driver while the caller provides a client |
| /// channel end to a `Provider` server that supports the driver on any RPCs. |
| /// |
| /// The sole caller of this should be the TEE Manager. |
| strict ConnectToApplication(resource struct { |
| application_uuid tee.Uuid; |
| service_provider client_end:<manager.Provider, optional>; |
| application_request server_end:tee.Application; |
| }); |
| }; |
| |
| service Service { |
| device_connector client_end:DeviceConnector; |
| }; |