| [workspace] |
| members = [ |
| "build_scripts", |
| "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/fuzz", |
| "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", |
| ] |
| default-members = ["build_scripts"] |
| |
| # TODO: remove boringssl once we figure out a better plan for integrating the build system |
| exclude = [ |
| "crypto/crypto_provider_boringssl", |
| ] |
| resolver = "2" |
| |
| [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" |
| unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)', 'cfg(blaze)'] } |
| |
| [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 |
| 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.5.13", 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 = { version = "0.13.0", default-features = false } |
| 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" |
| derive_fuzztest = "0.1.1" |
| derive_fuzztest_macro = "0.1.1" |
| |
| [workspace.package] |
| version = "0.1.0" |
| edition = "2021" |
| publish = false |
| license = "Apache-2.0" |
| |
| [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 |