1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
# 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" ]
}
}
|