blob: 536be38de333cd890303dff14a23336081508a0a [file] [edit]
# Copyright 2021 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.
md5_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `md-5` Rust library, which
# implements the insecure and deprecated MD-5 hash function. Code should only
# use this if it's implementing legacy protocols that require MD-5; it should
# never be used for new cryptographic development.
"//src/connectivity/wlan/lib/rsn:*",
]
sha1_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `sha1` Rust library, which
# implements the insecure and deprecated SHA-1 hash function. Code should only
# use this if it's implementing legacy protocols that require SHA-1; it should
# never be used for new cryptographic development.
"//src/connectivity/wlan/lib/rsn:*",
"//src/microfuchsia/tee/runtime/api_impl:*",
]
once_cell_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `once_cell` Rust library, as
# of Rust 1.80, LazyLock and LazyCell are now stable which should cover most of the use
# cases for `once_cell.
#
# Most of the listed in-tree dependencies on once_cell use the `get_or_try_init` method which
# is not stable yet, see https://github.com/rust-lang/rust/issues/109737. It is expected that
# they can be migrated over once it has stabilized in std.
#
# Only add to this list if you have a use case that isn't supported by the
# standard library APIs.
#
# To regenerate, run:
# (cd $FUCHSIA_DIR && git grep --files-with-matches '//third_party/rust_crates:once_cell' -- '*BUILD.gn' | sed 's|\(.*\)/BUILD.gn|"//\1:*",|')
"//src/connectivity/network/netstack3:*",
"//src/connectivity/network/netstack3/core/filter:*",
"//src/lib/async-utils:*",
"//src/starnix/kernel/core:*",
"//src/starnix/modules/ashmem:*",
"//src/starnix/modules/ext4:*",
"//src/starnix/modules/overlayfs:*",
"//src/storage/ext4:*",
"//src/testing/sl4f:*",
"//tools/shush:*",
# At this time we are not enforcing restrictions on the below.
"//third_party/*",
]
tracing_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `tracing` Rust
# library, we've standarized on `log` for multiple reasons listed at
# go/fuchsia-rust-log
#
# To regenerate, run:
# (cd $FUCHSIA_DIR && git grep --files-with-matches '//third_party/rust_crates:tracing"' -- '*BUILD.gn' | sed 's|\(.*\)/BUILD.gn|"//\1:*",|')
#
# At this time we are not enforcing restirctions on the below since there's a
# test actually validating tracing macros still work on fuchsia in case we
# have a 3P lib that uses them.
"//src/tests/diagnostics:*",
# At this time we are not enforcing restrictions on the below.
"//third_party/*",
]
tracing_subscriber_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `tracing_subscriber` Rust
# library, we've standarized on `log` for multiple reasons listed at
# go/fuchsia-rust-log
#
# To regenerate, run:
# (cd $FUCHSIA_DIR && git grep --files-with-matches '//third_party/rust_crates:tracing-subscriber' -- '*BUILD.gn' | sed 's|\(.*\)/BUILD.gn|"//\1:*",|')
# At this time we are not enforcing restrictions on the below.
"//third_party/*",
]
zeroize_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `zeroize` Rust crate.
#
# At this time only Android KeyMint is allowed to use it.
"//third_party/android/platform/system/keymint:*",
]
openssl_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `openssl` Rust crate.
#
# At this time only Android KeyMint is allowed to use it.
"//third_party/android/platform/system/keymint:*",
]
bincode_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `bincode` Rust crate.
# Bincode is no longer maintained upstream, with an explanation to be found at:
# https://crates.io/crates/bincode/3.0.0
#
# To regenerate, run:
# (cd $FUCHSIA_DIR && git grep --files-with-matches '//third_party/rust_crates:bincode' -- '*BUILD.gn' | sed 's|\(.*\)/BUILD.gn|"//\1:*",|')
"//src/devices/bin/driver-index:*",
"//src/lib/sorted_vec_map_rs:*",
"//src/security/bin/kms:*",
"//src/security/lib/scrutiny/utils:*",
"//src/storage/ext4/lib/metadata:*",
"//src/storage/fxfs:*",
"//src/storage/lib/sparse/rust:*",
]
regex_visibility = [
# ________ _________ ________ ________
# |\ ____\|\___ ___\\ __ \|\ __ \
# \ \ \___|\|___ \ \_\ \ \|\ \ \ \|\ \
# \ \_____ \ \ \ \ \ \ \\\ \ \ ____\
# \|____|\ \ \ \ \ \ \ \\\ \ \ \___|
# ____\_\ \ \ \__\ \ \_______\ \__\
# |\_________\ \|__| \|_______|\|__|
# \|_________|
#
# This is an allowlist of targets that use the `regex` Rust crate.
# The regex crate often adds approximately 600KB to the size of components
# that use it because of its Unicode tables. Please consider using `regex-lite`
# if you don't need full Unicode support or if size is a concern.
#
# To regenerate, run:
# (cd $FUCHSIA_DIR && git grep --files-with-matches '//third_party/rust_crates:regex\"' -- '*BUILD.gn' | sed 's|\(.*\)/BUILD.gn|"//\1:*",|')
"//examples/fidl/new/key_value_store/add_iterator/rust/server:*",
"//examples/fidl/new/key_value_store/add_iterator/rust_next/server:*",
"//examples/fidl/new/key_value_store/add_read_item/rust/server:*",
"//examples/fidl/new/key_value_store/add_read_item/rust_next/server:*",
"//examples/fidl/new/key_value_store/baseline/rust/server:*",
"//examples/fidl/new/key_value_store/baseline/rust_next/server:*",
"//examples/fidl/new/key_value_store/support_exports/rust/server:*",
"//examples/fidl/new/key_value_store/support_exports/rust_next/server:*",
"//examples/fidl/new/key_value_store/support_trees/rust/server:*",
"//examples/fidl/new/key_value_store/support_trees/rust_next/server:*",
"//examples/fidl/new/key_value_store/use_generic_values/rust/server:*",
"//examples/fidl/new/key_value_store/use_generic_values/rust_next/server:*",
"//examples/intl/wisdom/rust/server:*",
"//examples/intl/wisdom/tests:*",
"//src/connectivity/bluetooth/tools/bt-cli:*",
"//src/connectivity/lowpan/drivers/lowpan-ot-driver:*",
"//src/connectivity/network/lib/todo_unused:*",
"//src/connectivity/network/tests/integration/inspect:*",
"//src/connectivity/wlan/lib/ieee80211-testutils:*",
"//src/connectivity/wlan/lib/sme:*",
"//src/connectivity/wlan/wlancfg:*",
"//src/developer/ffx/command:*",
"//src/developer/ffx/config:*",
"//src/developer/ffx/lib/netext:*",
"//src/developer/ffx/lib/sdk:*",
"//src/developer/ffx/lib/target_errors:*",
"//src/developer/ffx/lib/trace:*",
"//src/developer/ffx/playground:*",
"//src/developer/ffx/plugins/doctor:*",
"//src/developer/ffx/plugins/emulator/commands/start:*",
"//src/developer/ffx/plugins/forward:*",
"//src/developer/ffx/plugins/fuzz:*",
"//src/developer/ffx/plugins/platform/preflight:*",
"//src/developer/ffx/plugins/profile/cpu/load:*",
"//src/developer/ffx/plugins/profile/gpu/usage:*",
"//src/developer/ffx/plugins/profile/memory:*",
"//src/developer/ffx/plugins/profile/network/activity:*",
"//src/developer/ffx/plugins/profile/temperature/logger:*",
"//src/developer/ffx/plugins/sdk:*",
"//src/developer/ffx/plugins/setui/keyboard:*",
"//src/developer/ffx/plugins/target/list:*",
"//src/developer/ffx/plugins/trace:*",
"//src/developer/ffx/tools/bluetooth/common:*",
"//src/developer/ffx/tools/bluetooth/src/peer:*",
"//src/developer/ffx/tools/starnix:*",
"//src/devices/lib/fidl-ir:*",
"//src/diagnostics/iquery:*",
"//src/diagnostics/persistence/tests:*",
"//src/lib/analytics/rust:*",
"//src/lib/assembly/assembled_system:*",
"//src/lib/assembly/util:*",
"//src/lib/diagnostics/log/rust:*",
"//src/lib/diagnostics/testing/diagnostics-assertions/rust:*",
"//src/lib/icu/tools/extractor/tests:*",
"//src/lib/intl/strings:*",
"//src/lib/intl/unicode_utils/unicode_blocks:*",
"//src/lib/testing/sharding:*",
"//src/lib/testing/sharding/tests/integration:*",
"//src/lib/utf8_path:*",
"//src/performance/memory/attribution/monitor:*",
"//src/starnix/tests/memory_attribution:*",
"//src/storage/benchmarks:*",
"//src/storage/benchmarks/fuchsia:*",
"//src/storage/benchmarks/host:*",
"//src/storage/fshost/integration:*",
"//src/storage/fxfs/unicode:*",
"//src/sys/component_manager:*",
"//src/sys/fuzzing/fuzzctl:*",
"//src/sys/lib/cm_fidl_validator:*",
"//src/sys/pkg/lib/fuchsia-pkg:*",
"//src/sys/run_test_suite/tests:*",
"//src/sys/test_runners/gotests:*",
"//src/sys/test_runners/gotests/tests:*",
"//src/sys/test_runners/rust:*",
"//src/ui/lib/input_pipeline:*",
"//third_party/android/platform/system/keymint:*",
"//third_party/tcpdump/tests:*",
"//tools/doc_checker:*",
"//tools/fidl/example-tester:*",
"//tools/fidl/fidldoc:*",
"//tools/gn_desc/bin:*",
"//tools/pretty_serial:*",
"//tools/shush:*",
"//tools/zedmon/client:*",
# Allow generic usage within vendor directories without exposing internal paths
"//vendor/*:*",
]