blob: d98786d1c79d6b50bd74a6fcd85a7c9a5065107d [file]
# Copyright 2025 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.
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_macro.gni")
rustc_library("libkmr_crypto_boring") {
name = "kmr_crypto_boring"
edition = "2021"
source_root = "src/boringssl/src/lib.rs"
sources = [
"src/boringssl/src/aes.rs",
"src/boringssl/src/aes_cmac.rs",
"src/boringssl/src/des.rs",
"src/boringssl/src/ec.rs",
"src/boringssl/src/eq.rs",
"src/boringssl/src/err.rs",
"src/boringssl/src/hmac.rs",
"src/boringssl/src/lib.rs",
"src/boringssl/src/rng.rs",
"src/boringssl/src/rsa.rs",
"src/boringssl/src/sha256.rs",
"src/boringssl/src/types.rs",
]
deps = [
":libkmr_common",
":libkmr_wire_v4",
"//third_party/boringssl/rust:bssl-sys",
"//third_party/rust_crates:foreign-types",
"//third_party/rust_crates:libc",
"//third_party/rust_crates:log",
"//third_party/rust_crates:openssl",
]
configs += [ ":with_boringssl_config" ]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}
config("with_boringssl_config") {
# Android called it soong by opposition to cargo, but
# it was really more about boringssl vs. openssl.
rustflags = [ "--cfg=soong" ]
}
rustc_library("libkmr_common") {
name = "kmr_common"
edition = "2021"
source_root = "src/common/src/lib.rs"
sources = [
"src/common/src/crypto.rs",
"src/common/src/crypto/aes.rs",
"src/common/src/crypto/des.rs",
"src/common/src/crypto/ec.rs",
"src/common/src/crypto/hmac.rs",
"src/common/src/crypto/rsa.rs",
"src/common/src/crypto/traits.rs",
"src/common/src/keyblob.rs",
"src/common/src/keyblob/legacy.rs",
"src/common/src/keyblob/sdd_mem.rs",
"src/common/src/lib.rs",
"src/common/src/tag.rs",
"src/common/src/tag/info.rs",
"src/common/src/tag/legacy.rs",
]
deps = [
":libkmr_derive",
":libkmr_wire_v4",
"//third_party/rust_crates:ciborium",
"//third_party/rust_crates:coset",
"//third_party/rust_crates:der",
"//third_party/rust_crates:enumn",
"//third_party/rust_crates:log",
"//third_party/rust_crates:pkcs1",
"//third_party/rust_crates:pkcs8",
"//third_party/rust_crates:sec1",
"//third_party/rust_crates:spki",
"//third_party/rust_crates:zeroize",
]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}
rustc_macro("libkmr_derive") {
name = "kmr_derive"
edition = "2021"
source_root = "src/derive/src/lib.rs"
sources = [ "src/derive/src/lib.rs" ]
deps = [
"//third_party/rust_crates:proc-macro2",
"//third_party/rust_crates:quote",
"//third_party/rust_crates:syn",
]
disable_clippy = true
}
rustc_library("libkmr_hal") {
name = "kmr_hal"
edition = "2021"
source_root = "src/hal/src/lib.rs"
sources = [
"src/hal/src/env.rs",
"src/hal/src/hal.rs",
"src/hal/src/keymint.rs",
"src/hal/src/lib.rs",
"src/hal/src/rpc.rs",
"src/hal/src/secureclock.rs",
"src/hal/src/sharedsecret.rs",
]
deps = [
":libkmr_wire_v2",
"//src/android/api/android/hardware/security/keymint/2:2_rust",
"//src/android/api/android/hardware/security/rkp/3:3_rust",
"//src/android/api/android/hardware/security/secureclock/1:1_rust",
"//src/android/api/android/hardware/security/sharedsecret/1:1_rust",
"//src/lib/android/binder/rust:binder",
"//third_party/android/platform/system/keymint/librustutils",
"//third_party/rust_crates:log",
"//third_party/rust_crates:regex",
]
features = [ "hal_v2" ]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}
rustc_library("libkmr_ta") {
name = "kmr_ta"
edition = "2021"
source_root = "src/ta/src/lib.rs"
sources = [
"src/ta/src/cert.rs",
"src/ta/src/clock.rs",
"src/ta/src/device.rs",
"src/ta/src/keys.rs",
"src/ta/src/lib.rs",
"src/ta/src/operation.rs",
"src/ta/src/rkp.rs",
"src/ta/src/secret.rs",
]
deps = [
":libkmr_common",
":libkmr_wire_v4",
"//third_party/rust_crates:der",
"//third_party/rust_crates:flagset",
"//third_party/rust_crates:log",
"//third_party/rust_crates:spki",
"//third_party/rust_crates:x509-cert",
]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}
rustc_library("libkmr_wire_v2") {
name = "kmr_wire"
edition = "2021"
source_root = "src/wire/src/lib.rs"
sources = [
"src/wire/src/keymint.rs",
"src/wire/src/legacy.rs",
"src/wire/src/lib.rs",
"src/wire/src/rpc.rs",
"src/wire/src/secureclock.rs",
"src/wire/src/sharedsecret.rs",
"src/wire/src/types.rs",
]
deps = [
":libkmr_derive",
"//third_party/rust_crates:ciborium",
"//third_party/rust_crates:coset",
"//third_party/rust_crates:enumn",
"//third_party/rust_crates:zeroize",
]
features = [ "hal_v2" ]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}
rustc_library("libkmr_wire_v4") {
name = "kmr_wire"
edition = "2021"
source_root = "src/wire/src/lib.rs"
sources = [
"src/wire/src/keymint.rs",
"src/wire/src/legacy.rs",
"src/wire/src/lib.rs",
"src/wire/src/rpc.rs",
"src/wire/src/secureclock.rs",
"src/wire/src/sharedsecret.rs",
"src/wire/src/types.rs",
]
deps = [
":libkmr_derive",
"//third_party/rust_crates:ciborium",
"//third_party/rust_crates:coset",
"//third_party/rust_crates:enumn",
"//third_party/rust_crates:zeroize",
]
features = [
"hal_v2",
"hal_v3",
"hal_v4",
]
configs += [ "//src/lib/android:android_rust_config" ]
disable_clippy = true
}