Crate signatory[][src]

Signatory: a multi-provider digital signature library

This crate provides a thread-and-object-safe API for both creating and verifying elliptic curve digital signatures, using either software-based or hardware-based providers.

ECDSA (FIPS 186-4) and Ed25519 (RFC 8032) are the supported digital signature algorithms.

There are several backend providers available, which are each available in their own crates:

  • signatory-dalek: Ed25519 signing/verification using the pure-Rust ed25519-dalek crate. This provider is enabled-by-default.
  • signatory-ring: Ed25519 signing/verification with the ring cryptography library.
  • signatory-secp256k1: ECDSA signing/verification for the secp256k1 elliptic curve (commonly used by Bitcoin and other cryptocurrrencies) which wraps the libsecp256k1 library from Bitcoin Core.
  • signatory-sodiumoxide: Ed25519 signing/verification with the sodiumoxide crate, a Rust wrapper for libsodium (NOTE: requires libsodium to be installed on the system)
  • signatory-yubihsm: Ed25519 signing-only provider using private keys stored in a YubiHSM2 hardware device, via the yubihsm-rs crate.

Re-exports

pub extern crate generic_array;
pub use error::Error;
pub use error::ErrorKind;

Modules

curve

Elliptic Curves (Weierstrass form) supported for use with ECDSA

ecdsa

The Elliptic Curve Digital Signature Algorithm (ECDSA) as specified in FIPS 186-4 (Digital Signature Standard)

ed25519

Ed25519: Schnorr signatures using the twisted Edwards form of Curve25519

error

Error types

test_vector

Test vector structure for signatures

Macros

ed25519_tests