[package]
name        = "rite-stdlib"
description = "Built-in action library for Rite ceremonies (internal to the `rite` CLI; no stable API)"
version.workspace    = true
edition.workspace    = true
rust-version.workspace = true
license.workspace    = true
repository.workspace = true
homepage.workspace = true
keywords = []
categories = []
publish = true

[features]
default      = ["verification", "attestation", "crypto", "pki", "openssl"]
verification = ["dep:subtle", "dep:sysinfo"]
attestation  = []
crypto       = []
pki          = ["dep:x509-cert", "dep:der", "dep:sha1", "dep:rsa", "dep:p256"]
openssl          = ["dep:rite-openssl"]
openssl-vendored = ["openssl", "rite-openssl/vendored"]
# Hardware smart-card backends. Opt-in: they pull in the `yubikey` crate, which
# links the PC/SC system library and so is excluded from the default build and
# the static musl artifacts. `yubikey` implies `piv` (it extends it).
piv              = ["dep:rite-piv", "dep:secrecy"]
yubikey          = ["dep:rite-yubikey", "piv"]
full             = ["verification", "attestation", "crypto", "pki", "openssl"]

[dependencies]
rite-sdk     = { workspace = true }
rite-model   = { workspace = true }
rite-runtime = { workspace = true }
rite-openssl = { workspace = true, optional = true }
rite-piv     = { workspace = true, optional = true }
rite-yubikey = { workspace = true, optional = true }

serde      = { workspace = true }
serde_json = { workspace = true }
chrono     = { workspace = true }
sha2       = { workspace = true }

subtle    = { workspace = true, optional = true }
sysinfo   = { workspace = true, optional = true }
x509-cert = { workspace = true, optional = true }
der       = { workspace = true, optional = true }
sha1      = { workspace = true, optional = true }
rsa       = { workspace = true, optional = true }
p256      = { workspace = true, optional = true }
secrecy   = { workspace = true, optional = true }

[dev-dependencies]
rite-openssl = { workspace = true }
openssl      = { workspace = true }

[lints]
workspace = true
