[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 "] 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"] } # optional dependencies 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"]