|  | # 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. | 
|  |  | 
|  | static_library("zxcrypt-dev") { | 
|  | public = [ | 
|  | "ddk-volume.h", | 
|  | "volume.h", | 
|  | ] | 
|  | sources = [ | 
|  | "ddk-volume.cc", | 
|  | "volume.cc", | 
|  | ] | 
|  |  | 
|  | public_deps = [ | 
|  | # volume.h references crypto/aead.h (among others). | 
|  | "//src/security/fcrypto", | 
|  |  | 
|  | # ddk-volume.h has #include <ddk/device.h>. | 
|  | "//src/lib/ddk", | 
|  | ] | 
|  |  | 
|  | configs += [ "//build/config/fuchsia:integer-paranoia" ] | 
|  |  | 
|  | # To minimize the set of libraries that we depend on that need to be loaded | 
|  | # from /boot/lib in early boot, we statically link most of our dependencies. | 
|  | deps = [ | 
|  | "//sdk/banjo/fuchsia.hardware.block:fuchsia.hardware.block_banjo_cpp", | 
|  | "//sdk/banjo/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_banjo_cpp", | 
|  | "//src/lib/ddk", | 
|  | "//third_party/boringssl", | 
|  | "//zircon/system/ulib/fbl", | 
|  | "//zircon/system/ulib/sync", | 
|  | "//zircon/system/ulib/zircon-internal", | 
|  | "//zircon/system/ulib/zx", | 
|  | ] | 
|  | configs += [ "//build/config/fuchsia:static_cpp_standard_library" ] | 
|  | } | 
|  |  | 
|  | shared_library("zxcrypt-fdio") { | 
|  | public = [ | 
|  | "fdio-volume.h", | 
|  | "volume.h", | 
|  | ] | 
|  | sources = [ | 
|  | "fdio-volume.cc", | 
|  | "volume.cc", | 
|  | ] | 
|  | public_deps = [ | 
|  | # volume.h includes crypto/aead.h (among others). | 
|  | "//src/security/fcrypto", | 
|  | ] | 
|  | configs += [ "//build/config/fuchsia:integer-paranoia" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_c", | 
|  | "//sdk/fidl/fuchsia.hardware.block.encrypted:fuchsia.hardware.block.encrypted_c", | 
|  | "//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_c", | 
|  | "//sdk/lib/fdio", | 
|  | "//third_party/boringssl", | 
|  | "//zircon/system/ulib/fbl", | 
|  | "//zircon/system/ulib/fdio-caller", | 
|  | "//zircon/system/ulib/fzl", | 
|  | "//zircon/system/ulib/zircon-internal", | 
|  | "//zircon/system/ulib/zx", | 
|  | ] | 
|  | configs += [ "//build/config/fuchsia:static_cpp_standard_library" ] | 
|  |  | 
|  | # TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated. | 
|  | # Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>). | 
|  | # See linked bug for details. | 
|  | configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ] | 
|  |  | 
|  | # TODO(fxbug.dev/95833): This target uses the deprecated C bindings. | 
|  | # Consider switching to the C++ bindings. See linked bug for details. | 
|  | configs += [ "//build/c:fidl-deprecated-c-bindings" ] | 
|  | } | 
|  |  | 
|  | source_set("zxcrypt-client") { | 
|  | public = [ "client.h" ] | 
|  | sources = [ "client.cc" ] | 
|  | public_deps = [ | 
|  | # client.h has #include <lib/fdio/cpp/caller.h> | 
|  | "//zircon/system/ulib/fdio-caller", | 
|  | ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.device:fuchsia.device_llcpp", | 
|  | "//sdk/fidl/fuchsia.hardware.block:fuchsia.hardware.block_c", | 
|  | "//sdk/fidl/fuchsia.hardware.block.encrypted:fuchsia.hardware.block.encrypted_c", | 
|  | "//sdk/fidl/fuchsia.hardware.block.volume:fuchsia.hardware.block.volume_c", | 
|  | "//sdk/lib/fdio", | 
|  | "//src/lib/storage/ramdevice_client/cpp:ramdevice-client-static", | 
|  | "//src/security/kms-stateless", | 
|  | "//zircon/system/ulib/fbl", | 
|  | "//zircon/system/ulib/fdio-caller", | 
|  | "//zircon/system/ulib/fzl", | 
|  | "//zircon/system/ulib/zircon-internal", | 
|  | "//zircon/system/ulib/zx", | 
|  | ] | 
|  | configs += [ "//build/config/fuchsia:static_cpp_standard_library" ] | 
|  |  | 
|  | # TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated. | 
|  | # Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>). | 
|  | # See linked bug for details. | 
|  | configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ] | 
|  |  | 
|  | # TODO(fxbug.dev/95833): This target uses the deprecated C bindings. | 
|  | # Consider switching to the C++ bindings. See linked bug for details. | 
|  | configs += [ "//build/c:fidl-deprecated-c-bindings" ] | 
|  | } | 
|  |  | 
|  | group("tests") { | 
|  | testonly = true | 
|  | deps = [ "tests:zxcrypt-test" ] | 
|  | } |