content: [package]
  name = "wallet_provider_service"
  version.workspace = true
  edition.workspace = true
  rust-version.workspace = true
  
  [lints]
  workspace = true
  
  [lib]
  doctest = false
  
  [[test]]
  name = "account_server"
  path = "tests/account_server.rs"
  required-features = ["db_test"]
  
  [features]
  # This disables checking the request hash within an Android integrity verdict, which should only be used when combining
  # real Android integrity tokens (either from a real device or the emulator) with the MockPlayIntegrityClient below.
  # Note that enabling this is DANGEROUS and should not be used in any production environment.
  spoof_integrity_verdict_hash = []
  # Exposes the MockPlayIntegrityClient type, which can be used for testing or local development.
  mock_play_integrity = ["android_attest/mock"]
  # Implement InstructionResultSigningKey and related traits on SigningKey
  mock_secure_keys = ["crypto/mock_secure_keys"]
  # Include mock implementations and constructors for testing
  mock = [
      "mock_play_integrity",
      "dep:anyhow",
      "dep:hmac",
      "dep:rand_core",
      "dep:platform_support",
      "apple_app_attest/mock",
      "wallet_account/client",
      "wallet_provider_domain/mock",
      "wallet_provider_persistence",
      "wallet_provider_persistence/mock",
      "crypto/mock_secure_keys",
  ]
  # Include and run test that depend on an external PostgreSQL database
  db_test = ["mock_secure_keys", "mock", "dep:tracing-subscriber", "dep:wallet_provider_database_settings"]
  
  [dependencies]
  base64.workspace = true
  chrono = { workspace = true, features = ["std", "clock"] }
  der = { workspace = true, features = ["std"] }
  derive_more = { workspace = true, features = ["constructor", "into"] }
  futures = { workspace = true, features = ["std", "async-await"] }
  indexmap.workspace = true
  itertools.workspace = true
  p256 = { workspace = true, features = ["ecdsa", "pem", "std"] }
  rustls-pki-types.workspace = true
  rustls-webpki.workspace = true
  semver = { workspace = true }
  serde = { workspace = true, features = ["derive"] }
  serde_json.workspace = true
  serde_with = { workspace = true, features = ["base64"] }
  sha2.workspace = true
  thiserror.workspace = true
  tracing.workspace = true
  x509-parser.workspace = true
  uuid = { workspace = true, features = ["v4"] }
  trait-variant.workspace = true
  
  anyhow = { workspace = true, optional = true }
  hmac = { workspace = true, optional = true, features = ["std"] }
  rand_core = { workspace = true, optional = true }
  tracing-subscriber = { workspace = true, optional = true, features = [
      "std",
      "fmt",
      "tracing-log",
      "smallvec",
      "parking_lot",
      "ansi",
  ] }
  
  android_attest.path = "../../lib/android_attest"
  apple_app_attest.path = "../../lib/apple_app_attest"
  attestation_data.path = "../../lib/attestation_data"
  crypto.path = "../../lib/crypto"
  hsm.path = "../../lib/hsm"
  jwt.path = "../../lib/jwt"
  openid4vc.path = "../../lib/openid4vc"
  sd_jwt.path = "../../lib/sd_jwt"
  wallet_account = { path = "../wallet_account", features = ["server"] }
  wallet_provider_domain.path = "../domain"
  utils.path = "../../lib/utils"
  wscd.path = "../../lib/wscd"
  
  platform_support = { path = "../../wallet/platform_support", optional = true, features = ["mock_attested_key_apple"] }
  wallet_provider_database_settings = { path = "../database_settings", optional = true }
  wallet_provider_persistence = { path = "../persistence", features = ["mock"], optional = true }
  
  [dev-dependencies]
  anyhow.workspace = true
  assert_matches.workspace = true
  hmac = { workspace = true, features = ["std"] }
  mockall.workspace = true
  rand.workspace = true
  rand_core.workspace = true
  rstest.workspace = true
  tracing-test.workspace = true
  tokio = { workspace = true, features = ["rt", "macros", "parking_lot"] }
  
  android_attest = { path = "../../lib/android_attest", features = ["mock"] }
  apple_app_attest = { path = "../../lib/apple_app_attest", features = ["mock"] }
  attestation_data = { path = "../../lib/attestation_data", features = ["mock", "generate"] }
  attestation_types = { path = "../../lib/attestation_types" }
  crypto = { path = "../../lib/crypto", features = ["mock_secure_keys"] }
  jwt = { path = "../../lib/jwt", features = ["test"] }
  pid_issuer = { path = "../../wallet_server/pid_issuer", features = ["mock"] }
  platform_support = { path = "../../wallet/platform_support", features = ["mock_attested_key_apple"] }
  sd_jwt = { path = "../../lib/sd_jwt", features = ["examples"] }
  wallet_account = { path = "../wallet_account", features = ["client", "server"] }
  wallet_provider_domain = { path = "../domain", features = ["mock"] }
  wallet_provider_persistence = { path = "../persistence", features = ["mock"] }
  wscd = { path = "../../lib/wscd", features = ["mock"] }
  