[workspace] members = [ "connections/ukey2/ukey2", "connections/ukey2/ukey2_connections", "connections/ukey2/ukey2_c_ffi", "connections/ukey2/ukey2_jni", "connections/ukey2/ukey2_proto", "connections/ukey2/ukey2_shell", "crypto/crypto_provider", "crypto/crypto_provider_openssl", "crypto/crypto_provider_rustcrypto", "crypto/rand_core_05_adapter", "presence/array_view", "presence/ldt", "presence/ldt_np_adv", "presence/ldt_tbc", "presence/np_hkdf", "presence/rand_ext", "presence/test_helper", "presence/xts_aes", ] # TODO: remove ldt_np_adv_ffi once support for no_std + alloc no longer requires nightly # TODO: remove boringssl once we figure out a better plan for integrating the build system exclude = ["presence/ldt_np_adv_ffi", "crypto/crypto_provider_boringssl"] [workspace.dependencies] array_ref = {path = "presence/array_ref"} array_view = {path = "presence/array_view"} crypto_provider = { path = "crypto/crypto_provider" } crypto_provider_openssl = { path = "crypto/crypto_provider_openssl" } crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" } rand_core_05_adapter = { path = "crypto/rand_core_05_adapter" } rand_ext = { path = "presence/rand_ext" } test_helper = { path = "presence/test_helper" } 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"} # RustCrypto crates rand = { version = "0.8.5", default-features = false } rand_core = {version = "0.6.4"} rand_pcg = "0.3.1" sha2 = { version = "0.10.2", default-features = false } aes = "0.8.2" cbc = { version = "0.1.2", features = ["alloc", "block-padding"] } ctr = "0.9.1" hkdf = "0.12.3" hmac = "0.12.1" ed25519-dalek = { version = "2.0.0-rc.2", default-features = false } ed25519 = "1.5.3" aes-gcm = "0.10.1" hex = "0.4.3" serde_json = { version = "1.0.91", features = ["alloc"], default-features = false } base64 = "0.21.0" x25519-dalek = { version = "2.0.0-rc.2", default-features = false } subtle = { version = "2.4.1", default-features = false } rand_chacha = { version = "0.3.1", default-features = false } p256 = { version = "0.12.0", default-features = false } sec1 = "0.3.0" # AOSP's protobuf is only at 2.27.1 (http://cs/android-internal/external/rust/crates/protobuf/METADATA) protobuf = "3.2.0" protobuf-codegen = "3.2.0" protoc-rust = "2.27.1" jni = "0.21.1" spin = "0.9.8" anyhow = "1.0.64" log = "0.4.17" env_logger = "0.10.0" criterion = { version = "0.4.0", features = ["html_reports"] } clap = { version = "4.0.25", features = ["derive"] } lazy_static = { version = "1.4.0", features = ["spin_no_std"] } hex-literal = "0.3.4" openssl = "0.10.45" cfg-if = "1.0.0" blake2 = "0.10.4" hdrhistogram = "7.5.0" regex = "1.7.0" xts-mode = "0.5.1" [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"