blob: 9377ff65558b5c4d39dfcc008b762073093c5288 [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.
@available(added=7)
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.
closed protocol FactoryStoreProvider {
strict GetFactoryStore(resource struct {
dir server_end:fuchsia.io.Directory;
});
};
/// 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
closed 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
closed 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
closed 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
closed 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
closed protocol MiscFactoryStoreProvider {
compose FactoryStoreProvider;
};
@discoverable
closed protocol AlphaFactoryStoreProvider {
compose FactoryStoreProvider;
};