Crate yubihsm[−][src]
yubihsm.rs: client for YubiHSM2
hardware security modules
Prerequisites
This crate builds on Rust 1.27+ and by default uses SIMD features
which require the following RUSTFLAGS
:
RUSTFLAGS=-Ctarget-feature=+aes
You can configure your ~/.cargo/config
to always pass these flags:
[build]
rustflags = ["-Ctarget-feature=+aes"]
Getting Started
The main type you'll want to check out is Session
. Here is an example of
how to connect to yubihsm-connector and perform an Ed25519 signature:
use yubihsm::Session; // Default host, port, auth key ID, and password for yubihsm-connector let mut session = Session::create_from_password(Default::default(), 1, "password", true).unwrap(); // Note: You'll need to create this key first. Run the following from yubihsm-shell: // `generate asymmetric 0 100 ed25519_test_key 1 asymmetric_sign_eddsa ed25519` let response = session.sign_data_eddsa(100, "Hello, world!").unwrap(); println!("Ed25519 signature: {:?}", response.signature);
Re-exports
pub use algorithm::Algorithm; |
pub use capabilities::Capabilities; |
pub use connector::Connector; |
pub use domains::Domains; |
pub use object::Id as ObjectId; |
pub use object::Label as ObjectLabel; |
pub use object::Origin as ObjectOrigin; |
pub use object::SequenceId; |
pub use object::Type as ObjectType; |
pub use session::Session; |
Modules
algorithm |
Cryptographic algorithms supported by the |
capabilities |
Object attributes specifying which operations are allowed to be performed |
connector |
Client for the |
domains |
Logical partitions within the |
error |
Error types |
mockhsm |
Software simulation of the |
object |
Objects stored in the |
responses |
Responses to commands sent from the HSM |
session |
|
Structs
HttpConfig |
Configuration options for this connector |
HttpConnector |
HTTP(-ish) connector which supports the minimal parts of the protocol required to communicate with the yubihsm-connector service. |
SessionId |
Session/Channel IDs |
StaticKeys |
Static Secure Channel keys from which session keys are derived |
Type Definitions
SessionError |
Session errors |