463 lines
9.5 KiB
Plaintext
463 lines
9.5 KiB
Plaintext
# Copyright 2020 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
# use this file except in compliance with the License. You may obtain a copy of
|
|
# the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations under
|
|
# the License.
|
|
|
|
import("//build_overrides/pigweed.gni")
|
|
import("$dir_pw_bloat/bloat.gni")
|
|
import("$dir_pw_build/target_types.gni")
|
|
import("$dir_pw_unit_test/test.gni")
|
|
|
|
group("default") {
|
|
deps = [
|
|
":fuzzers(//toolchains:host_fuzz)",
|
|
":optimized_libs(//toolchains:host_optimized)",
|
|
":tests.run(//toolchains:host_debug)",
|
|
]
|
|
}
|
|
|
|
pw_source_set("cbor_writer") {
|
|
public = [
|
|
"include/dice/cbor_writer.h",
|
|
]
|
|
sources = [ "src/cbor_writer.c" ]
|
|
}
|
|
|
|
pw_source_set("cbor_reader") {
|
|
public = [
|
|
"include/dice/cbor_reader.h",
|
|
]
|
|
sources = [ "src/cbor_reader.c" ]
|
|
}
|
|
|
|
config("standalone_ops_config") {
|
|
include_dirs = [ "//include/dice/config/standalone" ]
|
|
}
|
|
|
|
pw_static_library("dice_standalone") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/clear_memory.c",
|
|
"src/dice.c"
|
|
]
|
|
all_dependent_configs = [ ":standalone_ops_config" ]
|
|
}
|
|
|
|
config("boringssl_ed25519_ops_config") {
|
|
include_dirs = [ "//include/dice/config/boringssl_ed25519" ]
|
|
}
|
|
|
|
pw_static_library("dice_with_boringssl_ops") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/boringssl_cert_op.c",
|
|
"src/boringssl_hash_kdf_ops.c",
|
|
"src/boringssl_ed25519_ops.c",
|
|
"src/clear_memory.c",
|
|
"src/dice.c",
|
|
"src/utils.c",
|
|
]
|
|
deps = [
|
|
"//third_party/boringssl:crypto",
|
|
]
|
|
all_dependent_configs = [ ":boringssl_ed25519_ops_config" ]
|
|
}
|
|
|
|
config("mbedtls_ops_config") {
|
|
include_dirs = [ "//include//dice/config/mbedtls_ecdsa_p256" ]
|
|
}
|
|
|
|
pw_static_library("dice_with_mbedtls_ops") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/clear_memory.c",
|
|
"src/dice.c",
|
|
"src/mbedtls_ops.c",
|
|
"src/utils.c",
|
|
]
|
|
deps = [
|
|
"//third_party/mbedtls:mbedcrypto",
|
|
]
|
|
all_dependent_configs = [ ":mbedtls_ops_config" ]
|
|
}
|
|
|
|
pw_static_library("dice_with_cbor_cert") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/boringssl_hash_kdf_ops.c",
|
|
"src/boringssl_ed25519_ops.c",
|
|
"src/cbor_cert_op.c",
|
|
"src/clear_memory.c",
|
|
"src/dice.c",
|
|
"src/utils.c",
|
|
]
|
|
deps = [
|
|
":cbor_writer",
|
|
"//third_party/boringssl:crypto",
|
|
]
|
|
all_dependent_configs = [ ":boringssl_ed25519_ops_config" ]
|
|
}
|
|
|
|
pw_static_library("dice_with_cbor_template_cert") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/boringssl_hash_kdf_ops.c",
|
|
"src/boringssl_ed25519_ops.c",
|
|
"src/clear_memory.c",
|
|
"src/dice.c",
|
|
"src/template_cbor_cert_op.c",
|
|
"src/utils.c",
|
|
]
|
|
deps = [
|
|
"//third_party/boringssl:crypto",
|
|
]
|
|
all_dependent_configs = [ ":boringssl_ed25519_ops_config" ]
|
|
}
|
|
|
|
pw_static_library("dice_with_x509_template_cert") {
|
|
public = [
|
|
"include/dice/dice.h",
|
|
"include/dice/utils.h",
|
|
]
|
|
sources = [
|
|
"src/boringssl_hash_kdf_ops.c",
|
|
"src/boringssl_ed25519_ops.c",
|
|
"src/clear_memory.c",
|
|
"src/dice.c",
|
|
"src/template_cert_op.c",
|
|
"src/utils.c",
|
|
]
|
|
deps = [
|
|
"//third_party/boringssl:crypto",
|
|
]
|
|
all_dependent_configs = [ ":boringssl_ed25519_ops_config" ]
|
|
}
|
|
|
|
pw_source_set("fuzzer") {
|
|
sources = [ "src/fuzzer.cc" ]
|
|
}
|
|
|
|
pw_test("cbor_writer_test") {
|
|
sources = [ "src/cbor_writer_test.cc" ]
|
|
deps = [
|
|
":cbor_writer",
|
|
]
|
|
}
|
|
|
|
pw_test("cbor_reader_test") {
|
|
sources = [ "src/cbor_reader_test.cc" ]
|
|
deps = [
|
|
":cbor_reader",
|
|
]
|
|
}
|
|
|
|
pw_executable("cbor_writer_fuzzer") {
|
|
sources = [ "src/cbor_writer_fuzzer.cc" ]
|
|
deps = [
|
|
":cbor_writer",
|
|
]
|
|
}
|
|
|
|
pw_executable("cbor_reader_fuzzer") {
|
|
sources = [ "src/cbor_reader_fuzzer.cc" ]
|
|
deps = [
|
|
":cbor_reader",
|
|
]
|
|
}
|
|
|
|
pw_test("dice_test") {
|
|
sources = [ "src/dice_test.cc" ]
|
|
deps = [
|
|
":dice_standalone",
|
|
"//third_party/boringssl:crypto",
|
|
]
|
|
}
|
|
|
|
pw_test("boringssl_ops_test") {
|
|
sources = [
|
|
"src/boringssl_ops_test.cc",
|
|
"src/test_utils.cc",
|
|
]
|
|
deps = [
|
|
":dice_with_boringssl_ops",
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/cose-c:cose-c",
|
|
"$dir_pw_string:pw_string",
|
|
]
|
|
}
|
|
|
|
pw_executable("boringssl_ops_fuzzer") {
|
|
deps = [
|
|
":dice_with_boringssl_ops",
|
|
":fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_test("template_cert_op_test") {
|
|
sources = [
|
|
"src/template_cert_op_test.cc",
|
|
"src/test_utils.cc",
|
|
]
|
|
deps = [
|
|
":dice_with_x509_template_cert",
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/cose-c:cose-c",
|
|
"$dir_pw_string:pw_string",
|
|
]
|
|
}
|
|
|
|
pw_executable("template_cert_op_fuzzer") {
|
|
deps = [
|
|
":dice_with_x509_template_cert",
|
|
":fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_test("cbor_cert_op_test") {
|
|
sources = [
|
|
"src/cbor_cert_op_test.cc",
|
|
"src/test_utils.cc",
|
|
]
|
|
deps = [
|
|
":dice_with_cbor_cert",
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/cose-c:cose-c",
|
|
"$dir_pw_string:pw_string",
|
|
]
|
|
}
|
|
|
|
pw_executable("cbor_cert_op_fuzzer") {
|
|
deps = [
|
|
":dice_with_cbor_cert",
|
|
":fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_test("template_cbor_cert_op_test") {
|
|
sources = [
|
|
"src/template_cbor_cert_op_test.cc",
|
|
"src/test_utils.cc",
|
|
]
|
|
deps = [
|
|
":dice_with_cbor_template_cert",
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/cose-c:cose-c",
|
|
"$dir_pw_string:pw_string",
|
|
]
|
|
}
|
|
|
|
pw_executable("template_cbor_cert_op_fuzzer") {
|
|
deps = [
|
|
":dice_with_cbor_template_cert",
|
|
":fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_test("mbedtls_ops_test") {
|
|
sources = [
|
|
"src/mbedtls_ops_test.cc",
|
|
"src/test_utils.cc",
|
|
]
|
|
deps = [
|
|
":dice_with_mbedtls_ops",
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/cose-c:cose-c",
|
|
"$dir_pw_string:pw_string",
|
|
]
|
|
}
|
|
|
|
pw_executable("mbedtls_ops_fuzzer") {
|
|
deps = [
|
|
":dice_with_mbedtls_ops",
|
|
":fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_test_group("tests") {
|
|
tests = [
|
|
":boringssl_ops_test",
|
|
":cbor_cert_op_test",
|
|
":cbor_reader_test",
|
|
":cbor_writer_test",
|
|
":dice_test",
|
|
":mbedtls_ops_test",
|
|
":template_cbor_cert_op_test",
|
|
":template_cert_op_test",
|
|
"//src/android:bcc_test",
|
|
]
|
|
}
|
|
|
|
group("fuzzers") {
|
|
deps = [
|
|
":boringssl_ops_fuzzer",
|
|
":cbor_cert_op_fuzzer",
|
|
":cbor_reader_fuzzer",
|
|
":cbor_writer_fuzzer",
|
|
":mbedtls_ops_fuzzer",
|
|
":template_cbor_cert_op_fuzzer",
|
|
":template_cert_op_fuzzer",
|
|
"//src/android:bcc_fuzzer",
|
|
]
|
|
}
|
|
|
|
pw_static_library("empty_lib") {
|
|
}
|
|
|
|
pw_executable("empty_main") {
|
|
sources = [ "src/empty_main.c" ]
|
|
}
|
|
|
|
pw_executable("dice_standalone_main") {
|
|
sources = [ "src/dice_standalone_main.c" ]
|
|
deps = [ ":dice_standalone" ]
|
|
}
|
|
|
|
pw_source_set("dice_main") {
|
|
sources = [ "src/dice_main.c" ]
|
|
}
|
|
|
|
pw_executable("dice_with_boringssl_ops_main") {
|
|
deps = [
|
|
":dice_main",
|
|
":dice_with_boringssl_ops",
|
|
]
|
|
}
|
|
|
|
pw_executable("dice_with_mbedtls_ops_main") {
|
|
deps = [
|
|
":dice_main",
|
|
":dice_with_mbedtls_ops",
|
|
]
|
|
}
|
|
|
|
pw_executable("dice_with_cbor_cert_main") {
|
|
deps = [
|
|
":dice_main",
|
|
":dice_with_cbor_cert",
|
|
]
|
|
}
|
|
|
|
pw_executable("dice_with_cbor_template_cert_main") {
|
|
deps = [
|
|
":dice_main",
|
|
":dice_with_cbor_template_cert",
|
|
]
|
|
}
|
|
|
|
pw_executable("dice_with_x509_template_cert_main") {
|
|
deps = [
|
|
":dice_main",
|
|
":dice_with_x509_template_cert",
|
|
]
|
|
}
|
|
|
|
pw_size_report("executable_size_report") {
|
|
title = "Executable sizes (includes thirdparty deps)"
|
|
base = ":empty_main"
|
|
binaries = [
|
|
{
|
|
target = ":dice_standalone_main"
|
|
label = "DiceMainFlow only (No Ops)"
|
|
},
|
|
{
|
|
target = ":dice_with_boringssl_ops_main"
|
|
label = "Boringssl Ops"
|
|
base = ":dice_standalone_main"
|
|
},
|
|
{
|
|
target = ":dice_with_mbedtls_ops_main"
|
|
label = "MbedTLS Ops"
|
|
base = ":dice_standalone_main"
|
|
},
|
|
{
|
|
target = ":dice_with_cbor_cert_main"
|
|
label = "Boringssl with CBOR Cert"
|
|
base = ":dice_with_boringssl_ops_main"
|
|
},
|
|
{
|
|
target = ":dice_with_cbor_template_cert_main"
|
|
label = "Boringssl with CBOR Template Cert"
|
|
base = ":dice_with_boringssl_ops_main"
|
|
},
|
|
{
|
|
target = ":dice_with_x509_template_cert_main"
|
|
label = "Boringssl with X.509 Template Cert"
|
|
base = ":dice_with_boringssl_ops_main"
|
|
},
|
|
]
|
|
}
|
|
|
|
pw_size_report("library_size_report") {
|
|
title = "Library sizes (excludes thirdparty deps)"
|
|
base = ":empty_lib"
|
|
binaries = [
|
|
{
|
|
target = ":dice_standalone"
|
|
label = "DICE Standalone (No Ops)"
|
|
},
|
|
{
|
|
target = ":dice_with_boringssl_ops"
|
|
label = "Boringssl Ops"
|
|
base = ":dice_standalone"
|
|
},
|
|
{
|
|
target = ":dice_with_mbedtls_ops"
|
|
label = "MbedTLS Ops"
|
|
base = ":dice_standalone"
|
|
},
|
|
{
|
|
target = ":dice_with_cbor_cert"
|
|
label = "CBOR Cert"
|
|
base = ":dice_standalone"
|
|
},
|
|
{
|
|
target = ":dice_with_cbor_template_cert"
|
|
label = "CBOR Template Cert"
|
|
base = ":dice_standalone"
|
|
},
|
|
{
|
|
target = ":dice_with_x509_template_cert"
|
|
label = "X.509 Template Cert"
|
|
base = ":dice_standalone"
|
|
},
|
|
]
|
|
}
|
|
|
|
group("optimized_libs") {
|
|
deps = [
|
|
":dice_standalone",
|
|
":dice_with_boringssl_ops",
|
|
":dice_with_cbor_cert",
|
|
":dice_with_cbor_template_cert",
|
|
":dice_with_mbedtls_ops",
|
|
":dice_with_x509_template_cert",
|
|
":executable_size_report",
|
|
":library_size_report",
|
|
"//src/android:bcc",
|
|
]
|
|
}
|