[package]
edition = "2024"
rust-version = "1.95"
name = "identity-kit"
version = "0.3.0"
build = false
include = [
"/src",
"/tests/vectors",
"/CHANGELOG.md",
"/README.md",
"/LICENSE",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "DID, key management and verifiable credential primitives"
readme = "README.md"
keywords = [
"did",
"ssi",
"digital-credentials",
"vc",
]
categories = [
"cryptography",
"authentication",
]
license = "Apache-2.0"
repository = "https://github.com/impierce/identity-kit"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = [
"secp256k1",
"software",
"did-key",
"did-jwk",
"did-web",
"reqwest",
"vc",
"status-list",
"sd-jwt",
"domain-linkage",
"linked-vp",
]
did-jwk = []
did-key = []
did-web = []
domain-linkage = [
"vc",
"did-web",
]
in-memory = ["dep:getrandom"]
jwks = ["did-web"]
linked-vp = [
"vc",
"did-web",
]
local-network = ["reqwest"]
pkcs11 = [
"dep:cryptoki",
"dep:tokio",
"tokio/rt",
]
reqwest = [
"did-web",
"dep:reqwest",
"dep:rustls",
"dep:tokio",
]
rsa = ["dep:rsa"]
sd-jwt = [
"vc",
"status-list",
"dep:getrandom",
]
secp256k1 = ["dep:k256"]
software = ["dep:getrandom"]
status-list = [
"vc",
"dep:miniz_oxide",
]
test-vectors = []
utoipa = ["dep:utoipa"]
vc = ["dep:chrono"]
[lib]
name = "identity_kit"
path = "src/lib.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.23"
features = ["std"]
default-features = false
[dependencies.bs58]
version = "0.5"
[dependencies.chrono]
version = "0.4"
features = [
"now",
"serde",
"std",
]
optional = true
default-features = false
[dependencies.cryptoki]
version = "0.12"
optional = true
[dependencies.ed25519-dalek]
version = "3.0"
features = ["pkcs8"]
[dependencies.getrandom]
version = "0.4"
features = ["std"]
optional = true
[dependencies.indexmap]
version = "2.0"
features = ["serde"]
[dependencies.jsonwebtoken]
version = "11.1"
default-features = false
[dependencies.k256]
version = "0.14"
features = [
"ecdsa",
"pkcs8",
"std",
]
optional = true
default-features = false
[dependencies.miniz_oxide]
version = "0.9"
optional = true
[dependencies.p256]
version = "0.14"
features = [
"ecdsa",
"pkcs8",
"std",
]
default-features = false
[dependencies.reqwest]
version = "0.13"
features = [
"rustls-no-provider",
"http2",
"gzip",
]
optional = true
default-features = false
[dependencies.rsa]
version = "0.10.0-rc.19"
features = [
"encoding",
"sha2",
"std",
]
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = [
"float_roundtrip",
"preserve_order",
]
[dependencies.sha2]
version = "0.11"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.0"
features = ["net"]
optional = true
[dependencies.url]
version = "2.5"
[dependencies.utoipa]
version = "6.0"
optional = true
[dependencies.zeroize]
version = "1.8"
features = ["derive"]
[dev-dependencies.boon]
version = "0.6"
[dev-dependencies.flate2]
version = "1.0"
[dev-dependencies.jsonwebtoken]
version = "11.1"
features = ["rust_crypto"]
default-features = false
[dev-dependencies.proptest]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.0"
[dev-dependencies.tokio]
version = "1.0"
features = [
"io-util",
"macros",
"net",
"rt",
"rt-multi-thread",
"sync",
]
[dev-dependencies.wiremock]
version = "0.6"
[lints.clippy]
assert_is_empty = "allow"
dbg_macro = "warn"
must_use_candidate = "allow"
print_stderr = "warn"
print_stdout = "warn"
todo = "warn"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "forbid"
[profile.mutants]
debug = 0
inherits = "test"