[workspace] members = [ "connections/ukey2/ukey2", "connections/ukey2/ukey2_connections", "connections/ukey2/ukey2_connections/fuzz", "connections/ukey2/ukey2_c_ffi", "connections/ukey2/ukey2_jni", "connections/ukey2/ukey2_proto", "connections/ukey2/ukey2_shell", "crypto/crypto_provider", "crypto/crypto_provider_rustcrypto", "crypto/crypto_provider_stubs", "crypto/crypto_provider_test", "crypto/crypto_provider_test/fuzz", "crypto/crypto_provider_default", "presence/array_view", "presence/ldt", "presence/ldt/fuzz", "presence/ldt_np_adv", "presence/ldt_np_adv/fuzz", "presence/ldt_np_adv_ffi", "presence/ldt_np_jni", "presence/ldt_tbc", "presence/np_adv", "presence/np_adv_dynamic", "presence/np_c_ffi", "presence/np_ed25519", "presence/np_ffi_core", "presence/np_hkdf", "presence/np_java_ffi", "presence/rand_ext", "presence/sink", "presence/test_helper", "presence/test_vector_hkdf", "presence/xts_aes", "presence/xts_aes/fuzz", ] # TODO: remove boringssl once we figure out a better plan for integrating the build system exclude = [ "crypto/crypto_provider_boringssl", ] [workspace.lints.rust] missing_docs = "deny" trivial_casts = "deny" trivial_numeric_casts = "deny" unsafe_code = "deny" unsafe_op_in_unsafe_fn = "deny" unused_extern_crates = "deny" unused_import_braces = "deny" unused_results = "deny" [workspace.lints.clippy] expect_used = "deny" indexing_slicing = "deny" panic = "deny" unwrap_used = "deny" [workspace.dependencies] # local crates array_ref = { path = "presence/array_ref" } array_view = { path = "presence/array_view" } crypto_provider = { path = "crypto/crypto_provider", default-features = false } crypto_provider_default = { path = "crypto/crypto_provider_default", default-features = false } crypto_provider_boringssl = { path = "crypto/crypto_provider_boringssl" } crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" } crypto_provider_stubs = { path = "crypto/crypto_provider_stubs" } crypto_provider_test = { path = "crypto/crypto_provider_test" } rand_ext = { path = "presence/rand_ext" } test_helper = { path = "presence/test_helper" } ukey2_connections = { path = "connections/ukey2/ukey2_connections" } ukey2_rs = { path = "connections/ukey2/ukey2" } ukey2_proto = { path = "connections/ukey2/ukey2_proto" } np_hkdf = { path = "presence/np_hkdf" } xts_aes = { path = "presence/xts_aes" } ldt = { path = "presence/ldt" } ldt_np_adv = { path = "presence/ldt_np_adv" } ldt_tbc = { path = "presence/ldt_tbc" } np_adv = { path = "presence/np_adv" } np_adv_dynamic = { path = "presence/np_adv_dynamic" } np_ed25519 = { path = "presence/np_ed25519" } np_ffi_core = { path = "presence/np_ffi_core", default-features=false } np_java_ffi = { path = "presence/np_java_ffi" } sink = { path = "presence/sink" } test_vector_hkdf = { path = "presence/test_vector_hkdf" } # from utils workspace derive_fuzztest = { path = "../common/derive_fuzztest" } derive_fuzztest_macro = { path = "../common/derive_fuzztest_macro" } handle_map = { path = "../common/handle_map" } lock_adapter = { path = "../common/lock_adapter" } pourover = { path = "../common/pourover" } pourover_macro = { path = "../common/pourover_macro" } # from crates.io rand = { version = "0.8.5", default-features = false } rand_core = { version = "0.6.4", features = ["getrandom"] } rand_pcg = "0.3.1" sha2 = { version = "0.10.8", default-features = false } aes = "0.8.3" arbitrary = "1.3.2" cbc = { version = "0.1.2", features = ["block-padding"] } ctr = "0.9.2" hkdf = "0.12.3" hmac = "0.12.1" nom = { version = "7.1.3", default-features = false } ed25519-dalek = { version = "2.1.0", default-features = false } ed25519 = "2.2.3" aes-gcm = "0.10.3" hex = "0.4.3" serde = { version = "1.0.193" } serde_json = { version = "1.0.108", features = [ "alloc", ], default-features = false } base64 = "0.21.5" x25519-dalek = { version = "2.0.0", default-features = false } subtle = { version = "2.5.0", default-features = false } rand_chacha = { version = "0.3.1", default-features = false } p256 = { version = "0.13.2", default-features = false } sec1 = "0.7.3" protobuf = "=3.2.0" protobuf-codegen = "=3.2.0" reqwest = { version = "0.11.22", default-features = false, features = ["blocking", "rustls-tls"] } jni = "0.21.1" lock_api = "0.4.11" spin = { version = "0.9.8", features = ["once", "lock_api", "rwlock"] } anyhow = "1.0.75" log = "0.4.20" env_logger = "0.10.1" criterion = { version = "0.5.1", features = ["html_reports"] } clap = { version = "4.4.11", features = ["derive"] } lazy_static = { version = "1.4.0", features = ["spin_no_std"] } hex-literal = "0.4.1" cfg-if = "1.0.0" blake2 = "0.10.6" hdrhistogram = "7.5.4" regex = "1.10.2" tokio = { version = "1.35.0", features = ["full"] } xts-mode = "0.5.1" rstest = { version = "0.18.2", default-features = false } rstest_reuse = "0.6.0" wycheproof = "0.5.1" chrono = { version = "0.4.31", default-features = false, features = ["clock"] } tempfile = "3.8.1" thiserror = "1.0.51" tinyvec = { version = "1.6.0", features = ["rustc_1_55"] } mlua = "0.9.2" strum = { version = "0.25.0", default-features = false } strum_macros = { version = "0.25.3", default-features = false } owo-colors = "3.5.0" rhai = { version = "1.16.3", features = ["sync"] } cbindgen = "0.26.0" syn = { version = "2.0", features = ["full"] } proc-macro2 = "1.0" quote = "1.0" itertools = "0.12.1" quickcheck = "1.0.3" proptest = "1.4.0" proptest-arbitrary-interop = { git = "https://github.com/brson/proptest-arbitrary-interop.git", branch = "incorrect-format" } libfuzzer-sys = "0.4.7" [workspace.package] version = "0.1.0" edition = "2021" publish = false [profile.test] # speed up test execution opt-level = 3 [profile.bench] # Since xts, ldt, etc are in separate crates, use LTO to allow cross-crate inlining. # fat vs thin: thin compiles a lot faster, and doesn't seem any slower. lto = "thin" # build profile optimized for size [profile.release-min-size] inherits = "release" panic = "abort" codegen-units = 1 lto = true # z optimizes for size opt-level = "z" strip = true [package] name = "build-scripts" version.workspace = true edition.workspace = true publish.workspace = true rust-version = "1.71.0" [dependencies] clap.workspace = true cmd_runner = { path = "../common/cmd_runner" } anyhow.workspace = true shell-escape = "0.1.5" owo-colors.workspace = true semver = "1.0.17" walkdir = "2.3.3" globset = "0.4.10" glob = "0.3.1" crossbeam = "0.8.2" chrono.workspace = true thiserror.workspace = true log.workspace = true env_logger.workspace = true file-header = "0.1.2" serde_json = { workspace = true, features = ["std"] } regex = "1.10.2" xshell = "0.2.6" [dev-dependencies] tempfile.workspace = true