blob: 5c04d167f537b5bc4ab5eddfbe75ac9e11190f3e [file] [log] [blame]
// Copyright 2019 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.factory;
using fuchsia.io;
// NOTE: This API will be completely removed when components v2 is implemented.
// TODO(mbrunson): Add link to factory scaffolding library when available to
// allow easier transition to components v2 for clients.
/// This protocol is a base protocol for all providers of factory store
/// directories. It exposes a single method to allow clients to establish a
/// connection to a directory containing the relevant factory data. All files
/// surfaced by a component that implements FactoryStoreProvider (or any
/// protocol that depends on it) are expected to be validated for consistency
/// before being exposed to clients.
[FragileBase]
protocol FactoryStoreProvider {
GetFactoryStore(request<fuchsia.io.Directory> dir);
};
/// This protocol exposes a method to connect to a directory containing
/// Cast-specific factory data: public certificates and keys for
/// authentication with Cast servers.
[Discoverable]
protocol CastCredentialsFactoryStoreProvider {
compose FactoryStoreProvider;
};
/// This protocol exposes a method to connect to a directory containing
/// Widevine-specific factory data: public certificates and keys for
/// authentication with Widevine systems.
[Discoverable]
protocol WidevineFactoryStoreProvider {
compose FactoryStoreProvider;
};
/// This protocol exposes a method to connect to a directory containing
/// PlayReady-specific factory data: public certificates and keys for
/// authentication with PlayReady systems.
[Discoverable]
protocol PlayReadyFactoryStoreProvider {
compose FactoryStoreProvider;
};
/// This protocol exposes a method to connect to a directory containing
/// Weave-specific factory data: public certificates, signing keys, and
/// identity files for interoperation with a Weave-based home-area-network.
[Discoverable]
protocol WeaveFactoryStoreProvider {
compose FactoryStoreProvider;
};
/// This protocol exposes a method to connect to a directory containing
/// miscellaneous factory data such as tuning/calibration files, region-specific
/// audio files, factory process metadata files, and more. Any raw files not
/// covered by other FactoryStoreProviders or methods in fuchsia.hwinfo will
/// appear here.
[Discoverable]
protocol MiscFactoryStoreProvider {
compose FactoryStoreProvider;
};