[package]
name = "yubihsm"
version = "0.42.1"
description = """
Pure Rust client for YubiHSM2 devices with support for HTTP and
USB-based access to the device. Supports most HSM functionality
including ECDSA, Ed25519, HMAC, and RSA.
"""
license = "Apache-2.0 OR MIT"
authors = ["Tony Arcieri <tony@iqlusion.io>"]
documentation = "https://docs.rs/yubihsm"
repository = "https://github.com/iqlusioninc/yubihsm.rs"
readme = "README.md"
categories = ["cryptography", "hardware-support"]
keywords = ["ecdsa", "ed25519", "hmac", "hsm", "yubikey"]
edition = "2021"
rust-version = "1.67"
[dependencies]
aes = "0.8"
bitflags = "2"
cmac = "0.7"
cbc = "0.1"
ecdsa = { version = "0.16", default-features = false }
ed25519 = "2"
log = "0.4"
p256 = { version = "0.13", default-features = false, features = ["ecdsa"] }
p384 = { version = "0.13", default-features = false, features = ["ecdsa"] }
serde = { version = "1", features = ["serde_derive"] }
rand_core = { version = "0.6", features = ["std"] }
signature = { version = "2", features = ["derive"] }
subtle = "2"
thiserror = "1"
time = { version = "0.3", features = ["serde"] }
uuid = { version = "1", default-features = false }
zeroize = { version = "1", features = ["zeroize_derive"] }
ccm = { version = "0.5", optional = true, features = ["std"] }
digest = { version = "0.10", optional = true, default-features = false }
ed25519-dalek = { version = "2", optional = true, features = ["rand_core"] }
hmac = { version = "0.12", optional = true }
k256 = { version = "0.13", optional = true, features = ["ecdsa", "sha256"] }
pbkdf2 = { version = "0.12", optional = true, default-features = false, features = ["hmac"] }
serde_json = { version = "1", optional = true }
rusb = { version = "0.9", optional = true }
sha2 = { version = "0.10", optional = true }
tiny_http = { version = "0.12", optional = true }
[dev-dependencies]
ed25519-dalek = "2"
once_cell = "1"
p256 = { version = "0.13", features = ["ecdsa"] }
rsa = "0.9"
[features]
default = ["http", "passwords", "setup"]
http-server = ["tiny_http"]
http = []
mockhsm = ["ccm", "digest", "ecdsa/arithmetic", "ed25519-dalek", "p256/ecdsa", "secp256k1"]
passwords = ["hmac", "pbkdf2", "sha2"]
secp256k1 = ["k256"]
setup = ["passwords", "serde_json", "uuid/serde"]
untested = ["sha2"]
usb = ["rusb"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[example]]
name = "connector_http_server"
required-features = ["http-server", "usb"]