A pure Rust multi-provider digital signature library with support for the Ed25519 elliptic curve public-key signature system described in RFC 8032.
About
Signatory exposes an object-safe API for creating digital signatures which allows several signature providers to be compiled-in and available with specific providers selected at runtime.
Provider Support
cargo features are used to select which providers are compiled-in:
Ed25519 providers
dalek-provider
*: provider for the ed25519-dalek crateyubihsm-provider
: provider for the yubihsm-rs crate supporting YubiHSM2 devices
* Enabled by default
YubiHSM2 Provider Notes
The yubihsm-rs crate depends on the aesni
crate, which uses the new "stdsimd" API
(which recently landed in nightly) to invoke hardware AES instructions via
core::arch
.
To access these features, you will need both a relatively recent Rust nightly and to pass the following as RUSTFLAGS:
RUSTFLAGS=-C target-feature=+aes`
You can configure your ~/.cargo/config
to always pass these flags:
[]
= ["-C", "target-feature=+aes"]
License
Signatory is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.