[advisories]
db-urls = ["https://github.com/rustsec/advisory-db"]
yanked = "deny"
# Policy posture (cargo-deny v2 schema):
#   - vulnerabilities: deny by default (an advisory entry triggers a hard
#     failure unless explicitly listed in `ignore` below);
#   - unmaintained / notice / unsound: warn by default;
#   - yanked: deny (above).
# The deprecated `vulnerability`/`unmaintained`/`notice` keys from cargo-deny
# v1 are intentionally not set — v2 emits warnings for them.
#
# See .cargo/audit.toml for the rationale behind each ignored advisory.
# RUSTSEC-2023-0071: Marvin timing sidechannel in `rsa` 0.9.x (no upstream
#   fix; rmcp-server-kit validates JWTs with public keys only, not vulnerable).
ignore = ["RUSTSEC-2023-0071"]

[licenses]
allow = [
  "MIT",
  "Apache-2.0",
  "Apache-2.0 WITH LLVM-exception",
  "BSD-2-Clause",
  "BSD-3-Clause",
  "ISC",
  "Unicode-3.0",
  "Unicode-DFS-2016",
  "Zlib",
  "BSL-1.0",
  "CC0-1.0",
  "MPL-2.0",
  "OpenSSL",
  "CDLA-Permissive-2.0",
]
confidence-threshold = 0.8

[bans]
multiple-versions = "warn"
wildcards = "deny"
highlight = "all"

[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
allow-git = []
