1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Elliptic curve cryptography key types and operations.
//!
//! This module provides types and operations for elliptic curve cryptography
//! (ECC), specifically focusing on the secp256k1 curve used in Bitcoin and
//! other cryptocurrencies. It supports both traditional ECDSA (Elliptic Curve
//! Digital Signature Algorithm) and the newer Schnorr signature scheme
//! (BIP-340).
//!
//! The main components are:
//!
//! - `ECPrivateKey`: A 32-byte private key for signing
//! - `ECPublicKey`: A 33-byte compressed public key for verification
//! - `ECUncompressedPublicKey`: A 65-byte uncompressed public key (legacy
//! format)
//! - `SchnorrPublicKey`: A 32-byte x-only public key for BIP-340 Schnorr
//! signatures
//!
//! All these types implement the `ECKeyBase` trait, which provides common
//! functionality for elliptic curve keys. The `ECKey` trait extends `ECKeyBase`
//! to provide functionality for deriving public keys from private keys. The
//! `ECPublicKeyBase` trait provides functionality for working with uncompressed
//! public keys.
//!
//! ## Signature Schemes
//!
//! This module supports two signature schemes:
//!
//! - **ECDSA**: The traditional signature scheme used in Bitcoin and other
//! cryptocurrencies
//! - **Schnorr**: A newer signature scheme (BIP-340) with advantages like
//! linearity, non-malleability, and smaller signature size
pub use ;
pub use ECPublicKeyBase;
pub use ;
pub use ;
pub use ;
pub use ;