[][src]Crate signatory

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.

The following algorithms are supported:

  • ecdsa: Elliptic Curve Digital Signature Algorithm (FIPS 186-4)
  • ed25519: Edwards Digital Signature Algorithm (EdDSA) instantiated using the twisted Edwards form of Curve25519 (RFC 8032).

Providers

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

Signing API

Verifier API

Re-exports

pub use crate::encoding::*;
pub use digest;
pub use generic_array;
pub use sha2;
pub use signature;

Modules

digest

This crate provides traits which describe funcionality of cryptographic hash functions.

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

encoding

Support for encoding and decoding serialization formats (hex and Base64) with implementations that do not branch on potentially secret data, such as cryptographic keys.

test_vector

Test vector structure for signatures

Macros

ed25519_tests

Generate tests for Ed25519

Structs

Error

Signature errors

Traits

DigestSignature

Marker trait for Signature types computable as S(H(m))

DigestSigner

Sign the given prehashed message Digest using Self.

DigestVerifier

Verify the provided signature for the given prehashed message Digest is authentic.

PublicKey

Common trait for all public keys

PublicKeyed

Signers which know their public keys (to be implemented by Signatory providers)

Signature

Trait impl'd by concrete types that represent digital signatures

Signer

Sign the provided message bytestring using Self (e.g. a cryptographic key or connection to an HSM), returning a digital signature.

Verifier

Verify the provided message bytestring using Self (e.g. a public key)