content: [package]
  name = "wallet_provider"
  version.workspace = true
  edition.workspace = true
  rust-version.workspace = true
  
  [lints]
  workspace = true
  
  [[bin]]
  name = "wallet_provider"
  
  [lib]
  doctest = false
  
  [[test]]
  name = "hsm"
  path = "tests/hsm.rs"
  required-features = ["hsm_test"]
  
  [[test]]
  name = "settings"
  path = "tests/settings.rs"
  required-features = ["hsm_test"]
  
  [features]
  # Allow software key attestation_datas coming from the android emulator.
  # This is DANGEROUS and should not be used in any production environment.
  allow_android_emulator_keys = ["android_attest/allow_emulator_keys"]
  # Mocks responses from the Google Integrity Verdict API and spoofs the request hash in these responses.
  # This is DANGEROUS and should not be used in any production environment.
  mock_android_integrity_verdict = [
      "wallet_provider_service/spoof_integrity_verdict_hash",
      "wallet_provider_service/mock_play_integrity",
  ]
  # Convenience feature to make the Wallet Provider work with the Android emulator during local development.
  # This is DANGEROUS and should not be used in any production environment.
  android_emulator = ["allow_android_emulator_keys", "mock_android_integrity_verdict"]
  # Include and run test that depend on a configured HSM
  hsm_test = ["dep:rand_core", "dep:serial_test", "hsm/test"]
  
  [dependencies]
  axum = { workspace = true, features = ["http1", "json", "tokio", "tower-log", "tracing"] }
  axum-server = { workspace = true, features = ["tls-rustls-no-provider"] }
  cfg-if.workspace = true
  chrono = { workspace = true, features = ["clock", "serde", "std"] }
  config = { workspace = true, features = ["toml"] }
  derive_more = { workspace = true, features = ["as_ref", "display", "from", "into", "from_str"] }
  futures.workspace = true
  http.workspace = true
  libc.workspace = true
  log.workspace = true
  p256 = { workspace = true, features = ["ecdsa", "pkcs8", "std", "pem"] }
  regex.workspace = true
  rustls = { workspace = true, features = ["logging", "std", "ring", "tls12"] }
  serde = { workspace = true, features = ["derive"] }
  serde_with = { workspace = true, features = ["base64", "hex", "chrono"] }
  spki = { workspace = true, features = ["std"] }
  thiserror.workspace = true
  tokio = { workspace = true, features = ["rt-multi-thread", "parking_lot", "net"] }
  tower-http = { workspace = true, features = ["trace", "limit"] }
  tracing.workspace = true
  tracing-subscriber = { workspace = true, features = [
      "std",
      "fmt",
      "tracing-log",
      "smallvec",
      "parking_lot",
      "env-filter",
      "json",
      "ansi",
  ] }
  uuid = { workspace = true, features = ["serde", "v4"] }
  
  rand_core = { workspace = true, optional = true }
  serial_test = { workspace = true, optional = true }
  
  android_attest.path = "../lib/android_attest"
  apple_app_attest.path = "../lib/apple_app_attest"
  crypto = { path = "../lib/crypto" }
  hsm = { path = "../lib/hsm", features = ["settings"] }
  http_utils = { path = "../lib/http_utils", features = ["server", "client"] }
  wallet_account = { path = "wallet_account", features = ["server"] }
  utils = { path = "../lib/utils" }
  wallet_provider_database_settings.path = "database_settings"
  wallet_provider_domain.path = "domain"
  wallet_provider_persistence.path = "persistence"
  wallet_provider_service.path = "service"
  
  [dev-dependencies]
  tempfile = { workspace = true }
  tracing-test = { workspace = true }
  