| package { |
| default_applicable_licenses: ["external_open_dice_license"], |
| } |
| |
| license { |
| name: "external_open_dice_license", |
| visibility: [":__subpackages__"], |
| license_kinds: ["SPDX-license-identifier-Apache-2.0"], |
| license_text: ["LICENSE"], |
| } |
| |
| cc_library_headers { |
| name: "libopen_dice_headers", |
| host_supported: true, |
| vendor_available: true, |
| export_include_dirs: ["include"], |
| } |
| |
| cc_library_headers { |
| name: "libopen_dice_boringssl_ed25519_headers", |
| host_supported: true, |
| vendor_available: true, |
| export_include_dirs: ["include/dice/config/boringssl_ed25519"], |
| } |
| |
| cc_library_static { |
| name: "libopen_dice_cbor", |
| host_supported: true, |
| vendor_available: true, |
| srcs: [ |
| "src/boringssl_hash_kdf_ops.c", |
| "src/boringssl_ed25519_ops.c", |
| "src/cbor_cert_op.c", |
| "src/cbor_writer.c", |
| "src/clear_memory.c", |
| "src/dice.c", |
| "src/utils.c", |
| ], |
| header_libs: [ |
| "libopen_dice_boringssl_ed25519_headers", |
| "libopen_dice_headers", |
| ], |
| export_header_lib_headers: [ |
| "libopen_dice_boringssl_ed25519_headers", |
| "libopen_dice_headers", |
| ], |
| shared_libs: ["libcrypto"], |
| } |
| |
| cc_library_static { |
| name: "libopen_dice_bcc", |
| host_supported: true, |
| vendor_available: true, |
| srcs: [ |
| "src/cbor_reader.c", |
| "src/android/bcc.c", |
| ], |
| static_libs: ["libopen_dice_cbor"], |
| export_static_lib_headers: ["libopen_dice_cbor"], |
| shared_libs: ["libcrypto"], |
| } |
| |
| cc_test { |
| name: "libopen_dice_test", |
| host_supported: true, |
| cflags: ["-DDICE_USE_GTEST"], |
| srcs: [ |
| "src/clear_memory.c", |
| "src/dice_test.cc", |
| "src/dice.c", |
| "src/utils.c", |
| ], |
| header_libs: [ |
| "libopen_dice_boringssl_ed25519_headers", |
| "libopen_dice_headers", |
| ], |
| shared_libs: ["libcrypto"], |
| } |
| |
| cc_test { |
| name: "libopen_dice_cbor_writer_test", |
| host_supported: true, |
| cflags: ["-DDICE_USE_GTEST"], |
| srcs: ["src/cbor_writer_test.cc"], |
| static_libs: ["libopen_dice_cbor"], |
| } |
| |
| cc_test { |
| name: "libopen_dice_cbor_reader_test", |
| host_supported: true, |
| cflags: ["-DDICE_USE_GTEST"], |
| srcs: ["src/cbor_reader_test.cc"], |
| static_libs: ["libopen_dice_bcc"], |
| } |
| |
| cc_test { |
| name: "libopen_dice_bcc_test", |
| host_supported: true, |
| cflags: ["-DDICE_USE_GTEST"], |
| srcs: ["src/android/bcc_test.cc"], |
| static_libs: [ |
| "libopen_dice_bcc", |
| "libopen_dice_cbor", |
| ], |
| shared_libs: ["libcrypto"], |
| } |
| |
| // TODO: cbor_cert_op_test after resolving COSE dependency |
| |
| cc_fuzz { |
| name: "libopen_dice_cbor_writer_fuzzer", |
| host_supported: true, |
| srcs: ["src/cbor_writer_fuzzer.cc"], |
| static_libs: ["libopen_dice_cbor"], |
| } |
| |
| cc_fuzz { |
| name: "libopen_dice_cbor_reader_fuzzer", |
| host_supported: true, |
| srcs: ["src/cbor_reader_fuzzer.cc"], |
| static_libs: ["libopen_dice_bcc"], |
| } |
| |
| cc_fuzz { |
| name: "libopen_dice_cbor_fuzzer", |
| host_supported: true, |
| srcs: ["src/fuzzer.cc"], |
| static_libs: ["libopen_dice_cbor"], |
| shared_libs: ["libcrypto"], |
| } |
| |
| cc_fuzz { |
| name: "libopen_dice_bcc_fuzzer", |
| host_supported: true, |
| srcs: ["src/android/bcc_fuzzer.cc"], |
| static_libs: [ |
| "libopen_dice_bcc", |
| "libopen_dice_cbor", |
| ], |
| shared_libs: ["libcrypto"], |
| } |
| |
| rust_bindgen { |
| name: "libopen_dice_cbor_bindgen", |
| wrapper_src: "rust/dice.h", |
| crate_name: "open_dice_cbor_bindgen", |
| source_stem: "bindings", |
| header_libs: [ |
| "libopen_dice_boringssl_ed25519_headers", |
| "libopen_dice_headers", |
| ], |
| |
| // Generate bindings only for the symbols that are actually exported (see exported.map.txt). |
| // This makes the generated bindings much more concise and improves compilation |
| // time. |
| bindgen_flags: [ |
| "--size_t-is-usize", |
| |
| "--allowlist-function=DiceDeriveCdiPrivateKeySeed", |
| "--allowlist-function=DiceDeriveCdiCertificateId", |
| "--allowlist-function=DiceMainFlow", |
| "--allowlist-function=DiceHash", |
| "--allowlist-function=DiceKdf", |
| "--allowlist-function=DiceKeypairFromSeed", |
| "--allowlist-function=DiceSign", |
| "--allowlist-function=DiceVerify", |
| "--allowlist-function=DiceGenerateCertificate", |
| |
| // We also need some constants in addition to the functions. |
| "--allowlist-var=DICE_CDI_SIZE", |
| "--allowlist-var=DICE_HASH_SIZE", |
| "--allowlist-var=DICE_HIDDEN_SIZE", |
| "--allowlist-var=DICE_INLINE_CONFIG_SIZE", |
| "--allowlist-var=DICE_PRIVATE_KEY_SEED_SIZE", |
| "--allowlist-var=DICE_ID_SIZE", |
| "--allowlist-var=DICE_PUBLIC_KEY_SIZE", |
| "--allowlist-var=DICE_PRIVATE_KEY_SIZE", |
| "--allowlist-var=DICE_SIGNATURE_SIZE", |
| ], |
| |
| // This is mainly to run layout tests for generated bindings on the host. |
| host_supported: true, |
| vendor_available: true, |
| } |
| |
| rust_bindgen { |
| name: "libopen_dice_bcc_bindgen", |
| wrapper_src: "rust/android/bcc.h", |
| crate_name: "open_dice_bcc_bindgen", |
| source_stem: "bindings", |
| header_libs: [ |
| "libopen_dice_headers", |
| ], |
| |
| // Generate bindings only for the symbols that are actually exported (see exported.map.txt). |
| // This makes the generated bindings much more concise and improves compilation |
| // time. |
| bindgen_flags: [ |
| "--size_t-is-usize", |
| |
| "--allowlist-function=BccFormatConfigDescriptor", |
| "--allowlist-function=BccMainFlow", |
| "--allowlist-function=BccHandoverMainFlow", |
| |
| // We also need some constants in addition to the functions. |
| "--allowlist-var=BCC_INPUT_COMPONENT_NAME", |
| "--allowlist-var=BCC_INPUT_COMPONENT_VERSION", |
| "--allowlist-var=BCC_INPUT_RESETTABLE", |
| |
| // Prevent DiceInputValues from being generated a second time and |
| // import it instead from open_dice_cbor_bindgen. |
| "--blocklist-type=DiceInputValues_", |
| "--blocklist-type=DiceInputValues", |
| "--raw-line", |
| "pub use open_dice_cbor_bindgen::DiceInputValues;", |
| ], |
| |
| rustlibs: [ |
| "libopen_dice_cbor_bindgen", |
| ], |
| |
| // This is mainly to run layout tests for generated bindings on the host. |
| host_supported: true, |
| vendor_available: true, |
| } |
| |
| rust_test { |
| name: "libopen_dice_cbor_bindgen_test", |
| srcs: [ |
| ":libopen_dice_cbor_bindgen", |
| ], |
| crate_name: "open_dice_cbor_bindgen_test", |
| test_suites: ["general-tests"], |
| auto_gen_config: true, |
| clippy_lints: "none", |
| lints: "none", |
| } |
| |
| rust_test { |
| name: "libopen_dice_bcc_bindgen_test", |
| srcs: [ |
| ":libopen_dice_bcc_bindgen", |
| ], |
| crate_name: "open_dice_bcc_bindgen_test", |
| |
| rustlibs: [ |
| "libopen_dice_cbor_bindgen", |
| ], |
| |
| test_suites: ["general-tests"], |
| auto_gen_config: true, |
| clippy_lints: "none", |
| lints: "none", |
| } |