forked from mirrors/kingfisher
198 lines
5.4 KiB
TOML
198 lines
5.4 KiB
TOML
[package]
|
|
name = "kingfisher-scanner"
|
|
version = "0.1.0"
|
|
description = "High-level scanning API for Kingfisher secret scanner"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
homepage.workspace = true
|
|
repository.workspace = true
|
|
publish = false
|
|
|
|
[features]
|
|
default = []
|
|
|
|
# Core validation support (includes HTTP validation)
|
|
validation = ["validation-http"]
|
|
|
|
# HTTP-based validation for API tokens
|
|
validation-http = [
|
|
"dep:reqwest",
|
|
"dep:tokio",
|
|
"dep:liquid",
|
|
"dep:liquid-core",
|
|
"dep:quick-xml",
|
|
"dep:sha1",
|
|
]
|
|
|
|
# AWS credential validation
|
|
validation-aws = [
|
|
"validation-http",
|
|
"dep:aws-config",
|
|
"dep:aws-credential-types",
|
|
"dep:aws-sdk-iam",
|
|
"dep:aws-sdk-sts",
|
|
"dep:aws-types",
|
|
"dep:aws-smithy-http-client",
|
|
"dep:aws-smithy-runtime-api",
|
|
"dep:aws-smithy-types",
|
|
"dep:base32",
|
|
"dep:byteorder",
|
|
"dep:rand",
|
|
]
|
|
|
|
# Azure credential validation
|
|
validation-azure = [
|
|
"validation-http",
|
|
"dep:chrono",
|
|
"dep:hmac",
|
|
"dep:sha2",
|
|
]
|
|
|
|
# Coinbase credential validation
|
|
validation-coinbase = [
|
|
"validation-http",
|
|
"dep:chrono",
|
|
"dep:ed25519-dalek",
|
|
"dep:p256",
|
|
"dep:rand",
|
|
"dep:hex",
|
|
]
|
|
|
|
# GCP credential validation
|
|
validation-gcp = [
|
|
"validation-http",
|
|
"dep:chrono",
|
|
"dep:pem",
|
|
"dep:percent-encoding",
|
|
"dep:ring",
|
|
"dep:tokio",
|
|
]
|
|
|
|
# JWT validation
|
|
validation-jwt = [
|
|
"validation-http",
|
|
"dep:chrono",
|
|
"dep:ipnet",
|
|
"dep:jsonwebtoken",
|
|
"dep:tokio",
|
|
]
|
|
|
|
# Database validation (MongoDB/MySQL/Postgres/JDBC)
|
|
validation-database = [
|
|
"validation-http",
|
|
"dep:bson",
|
|
"dep:mongodb",
|
|
"dep:mysql_async",
|
|
"dep:tokio-postgres",
|
|
"dep:tokio-postgres-rustls",
|
|
"dep:rustls",
|
|
"dep:rustls-native-certs",
|
|
"dep:url",
|
|
"dep:sha1",
|
|
]
|
|
|
|
# All validation features
|
|
validation-all = [
|
|
"validation",
|
|
"validation-aws",
|
|
"validation-azure",
|
|
"validation-coinbase",
|
|
"validation-gcp",
|
|
"validation-jwt",
|
|
"validation-database",
|
|
]
|
|
|
|
[dependencies]
|
|
# Internal dependencies
|
|
kingfisher-core = { path = "../kingfisher-core" }
|
|
kingfisher-rules = { path = "../kingfisher-rules" }
|
|
|
|
# Error handling
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
|
|
# Serialization
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
schemars.workspace = true
|
|
|
|
# Regex
|
|
regex.workspace = true
|
|
|
|
# Hashing
|
|
xxhash-rust.workspace = true
|
|
|
|
# Vectorscan
|
|
vectorscan-rs.workspace = true
|
|
|
|
# Collections
|
|
smallvec.workspace = true
|
|
rustc-hash.workspace = true
|
|
|
|
# Concurrency
|
|
parking_lot.workspace = true
|
|
thread_local = "1.1"
|
|
once_cell.workspace = true
|
|
crossbeam-skiplist = "0.1.3"
|
|
|
|
# HTTP status codes
|
|
http.workspace = true
|
|
|
|
# Byte strings
|
|
bstr.workspace = true
|
|
|
|
# Base64 for decoding
|
|
base64.workspace = true
|
|
|
|
# Logging
|
|
tracing.workspace = true
|
|
|
|
# ---- Optional validation dependencies ----
|
|
|
|
# HTTP validation
|
|
reqwest = { version = "0.12", default-features = false, features = [
|
|
"json", "gzip", "brotli", "deflate", "stream", "rustls-tls", "rustls-tls-native-roots", "multipart"
|
|
], optional = true }
|
|
tokio = { version = "1.48", features = ["net", "time", "sync"], optional = true }
|
|
liquid = { version = "0.26", optional = true }
|
|
liquid-core = { version = "0.26", optional = true }
|
|
quick-xml = { version = "0.38", features = ["serde", "serialize"], optional = true }
|
|
sha1 = { workspace = true, optional = true }
|
|
chrono = { version = "0.4.42", optional = true }
|
|
hmac = { workspace = true, optional = true }
|
|
sha2 = { workspace = true, optional = true }
|
|
pem = { version = "3.0.6", optional = true }
|
|
percent-encoding = { workspace = true, optional = true }
|
|
ring = { version = "0.17", optional = true }
|
|
ipnet = { version = "2.11", optional = true }
|
|
jsonwebtoken = { version = "10.2.0", features = ["aws-lc-rs"], optional = true }
|
|
p256 = { version = "0.13.2", optional = true }
|
|
ed25519-dalek = { version = "2.2", features = ["pkcs8"], optional = true }
|
|
hex = { workspace = true, optional = true }
|
|
url = { version = "2.5.7", optional = true }
|
|
bson = { version = "2.15.0", optional = true }
|
|
mongodb = { version = "3.4", default-features = false, features = ["rustls-tls", "aws-auth", "compat-3-0-0", "dns-resolver"], optional = true }
|
|
mysql_async = { version = "0.34.2", default-features = false, features = ["default-rustls"], optional = true }
|
|
tokio-postgres = { version = "0.7", default-features = false, features = ["runtime"], optional = true }
|
|
tokio-postgres-rustls = { version = "0.13.0", optional = true }
|
|
rustls = { version = "0.23.35", optional = true }
|
|
rustls-native-certs = { version = "0.8.2", optional = true }
|
|
|
|
# AWS validation
|
|
aws-config = { version = "1.8.14", default-features = false, features = ["default-https-client", "rt-tokio"], optional = true }
|
|
aws-credential-types = { version = "1.2.12", optional = true }
|
|
aws-sdk-iam = { version = "1.104.0", default-features = false, features = ["default-https-client", "rt-tokio"], optional = true }
|
|
aws-sdk-sts = { version = "1.98.0", default-features = false, features = ["default-https-client", "rt-tokio"], optional = true }
|
|
aws-types = { version = "1.3.12", optional = true }
|
|
aws-smithy-http-client = { version = "1.1.10", optional = true }
|
|
aws-smithy-runtime-api = { version = "1.11.4", optional = true }
|
|
aws-smithy-types = { version = "1.4.4", optional = true }
|
|
base32 = { version = "0.5", optional = true }
|
|
byteorder = { version = "1.5", optional = true }
|
|
rand = { version = "0.9", optional = true }
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "1.4"
|
|
tempfile = "3.23"
|