| # Copyright 2023 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//mojo/public/tools/bindings/mojom.gni") |
| |
| mojom("common_mojom") { |
| generate_java = true |
| sources = [ "encryptor.mojom" ] |
| |
| public_deps = [ |
| ":algorithm_mojom", |
| "//mojo/public/mojom/base", |
| ] |
| |
| cpp_typemaps = [ |
| { |
| types = [ |
| { |
| mojom = "os_crypt_async.mojom.Encryptor" |
| cpp = "::os_crypt_async::Encryptor" |
| default_constructible = false |
| move_only = true |
| }, |
| { |
| mojom = "os_crypt_async.mojom.Key" |
| cpp = "::os_crypt_async::Encryptor::Key" |
| default_constructible = false |
| move_only = true |
| }, |
| ] |
| traits_headers = [ |
| "encryptor.h", |
| "encryptor_mojom_traits.h", |
| ] |
| traits_sources = [ "encryptor_mojom_traits.cc" ] |
| traits_deps = [ |
| ":algorithm_mojom", |
| ":common", |
| ":crypto_lib", |
| ] |
| }, |
| ] |
| } |
| |
| mojom("algorithm_mojom") { |
| # External code should depend on ":common_mojom" instead. |
| visibility = [ ":*" ] |
| |
| generate_java = true |
| |
| sources = [ "algorithm.mojom" ] |
| |
| public_deps = [ "//mojo/public/mojom/base" ] |
| } |
| |
| component("common") { |
| sources = [ |
| "encryptor.cc", |
| "encryptor.h", |
| ] |
| |
| deps = [ |
| ":crypto_lib", |
| "//components/os_crypt/sync", |
| "//crypto", |
| ] |
| |
| public_deps = [ |
| ":algorithm_mojom", |
| "//base", |
| ] |
| |
| defines = [ "IS_OS_CRYPT_ASYNC_IMPL" ] |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| |
| # Access this class via browser/test_utils.h. |
| visibility = [ "//components/os_crypt/async/browser:test_support" ] |
| |
| sources = [ |
| "test_encryptor.cc", |
| "test_encryptor.h", |
| ] |
| |
| deps = [ |
| ":common", |
| "//base", |
| ] |
| } |
| |
| # Mojo typemaps do not support adding a library dependency directly, so this |
| # allows the dependency on crypt32.lib to be forwarded to both :common and |
| # :common_mojom which might be in different modules in a component-build. |
| source_set("crypto_lib") { |
| if (is_win) { |
| libs = [ "crypt32.lib" ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| sources = [ "encryptor_unittest.cc" ] |
| |
| deps = [ |
| ":common", |
| ":common_mojom", |
| "//base", |
| "//base/test:test_support", |
| "//components/os_crypt/sync", |
| "//components/os_crypt/sync:test_support", |
| "//crypto", |
| "//mojo/public/cpp/test_support:test_utils", |
| "//testing/gtest", |
| ] |
| |
| if (is_win) { |
| libs = [ "crypt32.lib" ] |
| } |
| } |