Skip to main content

Crate arcanum_signatures

Crate arcanum_signatures 

Source
Expand description

§Arcanum Digital Signatures

High-performance digital signature algorithms with a unified interface.

§Supported Algorithms

§Edwards Curves

  • Ed25519: Fast, secure, widely used. Recommended default.

§ECDSA (Elliptic Curve Digital Signature Algorithm)

  • ECDSA-P256: NIST P-256 curve, widely supported
  • ECDSA-P384: NIST P-384 curve, higher security level
  • ECDSA-secp256k1: Bitcoin/Ethereum curve

§Schnorr Signatures

  • Schnorr-secp256k1: BIP-340 compatible (Bitcoin Taproot)

§Example

use arcanum_signatures::{Ed25519, SigningKey};

// Generate a new key pair
let signing_key = Ed25519::generate();
let verifying_key = signing_key.verifying_key();

// Sign a message
let message = b"Hello, Arcanum!";
let signature = signing_key.sign(message);

// Verify
assert!(verifying_key.verify(message, &signature).is_ok());

§Security Considerations

  • Always use fresh randomness for key generation
  • Protect signing keys from exposure
  • Ed25519 provides deterministic signatures (no additional randomness needed)
  • ECDSA requires secure random nonces (use deterministic RFC 6979 variant)

Re-exports§

pub use ed25519::Ed25519Signature;
pub use ed25519::Ed25519SigningKey;
pub use ed25519::Ed25519VerifyingKey;
pub use ecdsa_impl::P256Signature;
pub use ecdsa_impl::P256SigningKey;
pub use ecdsa_impl::P256VerifyingKey;
pub use ecdsa_impl::P384Signature;
pub use ecdsa_impl::P384SigningKey;
pub use ecdsa_impl::P384VerifyingKey;
pub use ecdsa_impl::Secp256k1Signature;
pub use ecdsa_impl::Secp256k1SigningKey;
pub use ecdsa_impl::Secp256k1VerifyingKey;

Modules§

ecdsa_impl
ECDSA digital signatures.
ed25519
Ed25519 digital signatures.
prelude
Prelude for convenient imports.

Traits§

BatchVerifier
Trait for batch signature verification.
Signature
Trait for signatures.
SigningKey
Trait for signing keys (private keys).
VerifyingKey
Trait for verifying keys (public keys).