1[workspace] 2members = [ 3 "connections/ukey2/ukey2", 4 "connections/ukey2/ukey2_connections", 5 "connections/ukey2/ukey2_connections/fuzz", 6 "connections/ukey2/ukey2_c_ffi", 7 "connections/ukey2/ukey2_jni", 8 "connections/ukey2/ukey2_proto", 9 "connections/ukey2/ukey2_shell", 10 "crypto/crypto_provider", 11 "crypto/crypto_provider_rustcrypto", 12 "crypto/crypto_provider_stubs", 13 "crypto/crypto_provider_test", 14 "crypto/crypto_provider_test/fuzz", 15 "crypto/crypto_provider_default", 16 "presence/array_view", 17 "presence/ldt", 18 "presence/ldt/fuzz", 19 "presence/ldt_np_adv", 20 "presence/ldt_np_adv/fuzz", 21 "presence/ldt_np_adv_ffi", 22 "presence/ldt_np_jni", 23 "presence/ldt_tbc", 24 "presence/np_adv", 25 "presence/np_adv_dynamic", 26 "presence/np_c_ffi", 27 "presence/np_ed25519", 28 "presence/np_ffi_core", 29 "presence/np_hkdf", 30 "presence/np_java_ffi", 31 "presence/rand_ext", 32 "presence/sink", 33 "presence/test_helper", 34 "presence/test_vector_hkdf", 35 "presence/xts_aes", 36 "presence/xts_aes/fuzz", 37] 38 39# TODO: remove boringssl once we figure out a better plan for integrating the build system 40exclude = [ 41 "crypto/crypto_provider_boringssl", 42] 43 44[workspace.lints.rust] 45missing_docs = "deny" 46trivial_casts = "deny" 47trivial_numeric_casts = "deny" 48unsafe_code = "deny" 49unsafe_op_in_unsafe_fn = "deny" 50unused_extern_crates = "deny" 51unused_import_braces = "deny" 52unused_results = "deny" 53 54[workspace.lints.clippy] 55expect_used = "deny" 56indexing_slicing = "deny" 57panic = "deny" 58unwrap_used = "deny" 59 60[workspace.dependencies] 61# local crates 62array_ref = { path = "presence/array_ref" } 63array_view = { path = "presence/array_view" } 64crypto_provider = { path = "crypto/crypto_provider", default-features = false } 65crypto_provider_default = { path = "crypto/crypto_provider_default", default-features = false } 66crypto_provider_boringssl = { path = "crypto/crypto_provider_boringssl" } 67crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" } 68crypto_provider_stubs = { path = "crypto/crypto_provider_stubs" } 69crypto_provider_test = { path = "crypto/crypto_provider_test" } 70rand_ext = { path = "presence/rand_ext" } 71test_helper = { path = "presence/test_helper" } 72ukey2_connections = { path = "connections/ukey2/ukey2_connections" } 73ukey2_rs = { path = "connections/ukey2/ukey2" } 74ukey2_proto = { path = "connections/ukey2/ukey2_proto" } 75np_hkdf = { path = "presence/np_hkdf" } 76xts_aes = { path = "presence/xts_aes" } 77ldt = { path = "presence/ldt" } 78ldt_np_adv = { path = "presence/ldt_np_adv" } 79ldt_tbc = { path = "presence/ldt_tbc" } 80np_adv = { path = "presence/np_adv" } 81np_adv_dynamic = { path = "presence/np_adv_dynamic" } 82np_ed25519 = { path = "presence/np_ed25519" } 83np_ffi_core = { path = "presence/np_ffi_core", default-features=false } 84np_java_ffi = { path = "presence/np_java_ffi" } 85sink = { path = "presence/sink" } 86test_vector_hkdf = { path = "presence/test_vector_hkdf" } 87 88# from utils workspace 89derive_fuzztest = { path = "../common/derive_fuzztest" } 90derive_fuzztest_macro = { path = "../common/derive_fuzztest_macro" } 91handle_map = { path = "../common/handle_map" } 92lock_adapter = { path = "../common/lock_adapter" } 93pourover = { path = "../common/pourover" } 94pourover_macro = { path = "../common/pourover_macro" } 95 96# from crates.io 97rand = { version = "0.8.5", default-features = false } 98rand_core = { version = "0.6.4", features = ["getrandom"] } 99rand_pcg = "0.3.1" 100sha2 = { version = "0.10.8", default-features = false } 101aes = "0.8.3" 102arbitrary = "1.3.2" 103cbc = { version = "0.1.2", features = ["block-padding"] } 104ctr = "0.9.2" 105hkdf = "0.12.3" 106hmac = "0.12.1" 107nom = { version = "7.1.3", default-features = false } 108ed25519-dalek = { version = "2.1.0", default-features = false } 109ed25519 = "2.2.3" 110aes-gcm = "0.10.3" 111hex = "0.4.3" 112serde = { version = "1.0.193" } 113serde_json = { version = "1.0.108", features = [ 114 "alloc", 115], default-features = false } 116base64 = "0.21.5" 117x25519-dalek = { version = "2.0.0", default-features = false } 118subtle = { version = "2.5.0", default-features = false } 119rand_chacha = { version = "0.3.1", default-features = false } 120p256 = { version = "0.13.2", default-features = false } 121sec1 = "0.7.3" 122protobuf = "=3.2.0" 123protobuf-codegen = "=3.2.0" 124reqwest = { version = "0.11.22", default-features = false, features = ["blocking", "rustls-tls"] } 125jni = "0.21.1" 126lock_api = "0.4.11" 127spin = { version = "0.9.8", features = ["once", "lock_api", "rwlock"] } 128anyhow = "1.0.75" 129log = "0.4.20" 130env_logger = "0.10.1" 131criterion = { version = "0.5.1", features = ["html_reports"] } 132clap = { version = "4.4.11", features = ["derive"] } 133lazy_static = { version = "1.4.0", features = ["spin_no_std"] } 134hex-literal = "0.4.1" 135cfg-if = "1.0.0" 136blake2 = "0.10.6" 137hdrhistogram = "7.5.4" 138regex = "1.10.2" 139tokio = { version = "1.35.0", features = ["full"] } 140xts-mode = "0.5.1" 141rstest = { version = "0.18.2", default-features = false } 142rstest_reuse = "0.6.0" 143wycheproof = "0.5.1" 144chrono = { version = "0.4.31", default-features = false, features = ["clock"] } 145tempfile = "3.8.1" 146thiserror = "1.0.51" 147tinyvec = { version = "1.6.0", features = ["rustc_1_55"] } 148mlua = "0.9.2" 149strum = { version = "0.25.0", default-features = false } 150strum_macros = { version = "0.25.3", default-features = false } 151owo-colors = "3.5.0" 152rhai = { version = "1.16.3", features = ["sync"] } 153cbindgen = "0.26.0" 154syn = { version = "2.0", features = ["full"] } 155proc-macro2 = "1.0" 156quote = "1.0" 157itertools = "0.12.1" 158quickcheck = "1.0.3" 159proptest = "1.4.0" 160proptest-arbitrary-interop = { git = "https://github.com/brson/proptest-arbitrary-interop.git", branch = "incorrect-format" } 161libfuzzer-sys = "0.4.7" 162 163[workspace.package] 164version = "0.1.0" 165edition = "2021" 166publish = false 167 168[profile.test] 169# speed up test execution 170opt-level = 3 171 172[profile.bench] 173# Since xts, ldt, etc are in separate crates, use LTO to allow cross-crate inlining. 174# fat vs thin: thin compiles a lot faster, and doesn't seem any slower. 175lto = "thin" 176 177# build profile optimized for size 178[profile.release-min-size] 179inherits = "release" 180panic = "abort" 181codegen-units = 1 182lto = true 183# z optimizes for size 184opt-level = "z" 185strip = true 186 187[package] 188name = "build-scripts" 189version.workspace = true 190edition.workspace = true 191publish.workspace = true 192rust-version = "1.71.0" 193 194[dependencies] 195clap.workspace = true 196cmd_runner = { path = "../common/cmd_runner" } 197anyhow.workspace = true 198shell-escape = "0.1.5" 199owo-colors.workspace = true 200semver = "1.0.17" 201walkdir = "2.3.3" 202globset = "0.4.10" 203glob = "0.3.1" 204crossbeam = "0.8.2" 205chrono.workspace = true 206thiserror.workspace = true 207log.workspace = true 208env_logger.workspace = true 209file-header = "0.1.2" 210serde_json = { workspace = true, features = ["std"] } 211regex = "1.10.2" 212xshell = "0.2.6" 213 214[dev-dependencies] 215tempfile.workspace = true 216