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§
- Batch
Verifier - Trait for batch signature verification.
- Signature
- Trait for signatures.
- Signing
Key - Trait for signing keys (private keys).
- Verifying
Key - Trait for verifying keys (public keys).