Skip to content

Commit 75eef02

Browse files
committed
bitcoin 0.28.0 - keys
1 parent 6176e2f commit 75eef02

33 files changed

+78
-80
lines changed

fuzz/src/chanmon_consistency.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ use lightning::routing::router::{Route, RouteHop};
5353
use utils::test_logger::{self, Output};
5454
use utils::test_persister::TestPersister;
5555

56-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
56+
use bitcoin::secp256k1::{PublicKey,SecretKey};
5757
use bitcoin::secp256k1::recovery::RecoverableSignature;
5858
use bitcoin::secp256k1::Secp256k1;
5959

fuzz/src/full_stack.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ use lightning::util::ser::ReadableArgs;
5050
use utils::test_logger;
5151
use utils::test_persister::TestPersister;
5252

53-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
53+
use bitcoin::secp256k1::{PublicKey,SecretKey};
5454
use bitcoin::secp256k1::recovery::RecoverableSignature;
5555
use bitcoin::secp256k1::Secp256k1;
5656

fuzz/src/peer_crypt.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
use lightning::ln::peer_channel_encryptor::PeerChannelEncryptor;
1111

12-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
12+
use bitcoin::secp256k1::{PublicKey,SecretKey};
1313

1414
use utils::test_logger;
1515

fuzz/src/router.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use lightning::util::ser::Readable;
2323
use lightning::routing::network_graph::{NetworkGraph, RoutingFees};
2424

2525
use bitcoin::hashes::Hash;
26-
use bitcoin::secp256k1::key::PublicKey;
26+
use bitcoin::secp256k1::PublicKey;
2727
use bitcoin::network::constants::Network;
2828
use bitcoin::blockdata::constants::genesis_block;
2929

lightning-invoice/src/de.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use num_traits::{CheckedAdd, CheckedMul};
2020

2121
use secp256k1;
2222
use secp256k1::recovery::{RecoveryId, RecoverableSignature};
23-
use secp256k1::key::PublicKey;
23+
use secp256k1::PublicKey;
2424

2525
use super::{Invoice, Sha256, TaggedField, ExpiryTime, MinFinalCltvExpiry, Fallback, PayeePubKey, InvoiceSignature, PositiveTimestamp,
2626
SemanticError, PrivateRoute, Description, RawTaggedField, Currency, RawHrp, SiPrefix, RawInvoice, constants, SignedRawInvoice,

lightning-invoice/src/lib.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ use lightning::routing::network_graph::RoutingFees;
4747
use lightning::routing::router::RouteHint;
4848
use lightning::util::invoice::construct_invoice_preimage;
4949

50-
use secp256k1::key::PublicKey;
50+
use secp256k1::PublicKey;
5151
use secp256k1::{Message, Secp256k1};
5252
use secp256k1::recovery::RecoverableSignature;
5353

@@ -123,7 +123,7 @@ pub const DEFAULT_MIN_FINAL_CLTV_EXPIRY: u64 = 18;
123123
/// use bitcoin_hashes::sha256;
124124
///
125125
/// use secp256k1::Secp256k1;
126-
/// use secp256k1::key::SecretKey;
126+
/// use secp256k1::SecretKey;
127127
///
128128
/// use lightning::ln::PaymentSecret;
129129
///
@@ -1537,7 +1537,7 @@ mod test {
15371537
use TaggedField::*;
15381538
use secp256k1::Secp256k1;
15391539
use secp256k1::recovery::{RecoveryId, RecoverableSignature};
1540-
use secp256k1::key::{SecretKey, PublicKey};
1540+
use secp256k1::{SecretKey, PublicKey};
15411541
use {SignedRawInvoice, InvoiceSignature, RawInvoice, RawHrp, RawDataPart, Currency, Sha256,
15421542
PositiveTimestamp};
15431543

@@ -1606,7 +1606,7 @@ mod test {
16061606
use TaggedField::*;
16071607
use lightning::ln::features::InvoiceFeatures;
16081608
use secp256k1::Secp256k1;
1609-
use secp256k1::key::SecretKey;
1609+
use secp256k1::SecretKey;
16101610
use {RawInvoice, RawHrp, RawDataPart, Currency, Sha256, PositiveTimestamp, Invoice,
16111611
SemanticError};
16121612

@@ -1724,7 +1724,7 @@ mod test {
17241724
use ::*;
17251725
use lightning::routing::router::RouteHintHop;
17261726
use std::iter::FromIterator;
1727-
use secp256k1::key::PublicKey;
1727+
use secp256k1::PublicKey;
17281728

17291729
let builder = InvoiceBuilder::new(Currency::Bitcoin)
17301730
.payment_hash(sha256::Hash::from_slice(&[0;32][..]).unwrap())
@@ -1778,7 +1778,7 @@ mod test {
17781778
use ::*;
17791779
use lightning::routing::router::RouteHintHop;
17801780
use secp256k1::Secp256k1;
1781-
use secp256k1::key::{SecretKey, PublicKey};
1781+
use secp256k1::{SecretKey, PublicKey};
17821782
use std::time::{UNIX_EPOCH, Duration};
17831783

17841784
let secp_ctx = Secp256k1::new();
@@ -1892,7 +1892,7 @@ mod test {
18921892
fn test_default_values() {
18931893
use ::*;
18941894
use secp256k1::Secp256k1;
1895-
use secp256k1::key::SecretKey;
1895+
use secp256k1::SecretKey;
18961896

18971897
let signed_invoice = InvoiceBuilder::new(Currency::Bitcoin)
18981898
.description("Test".into())
@@ -1918,7 +1918,7 @@ mod test {
19181918
fn test_expiration() {
19191919
use ::*;
19201920
use secp256k1::Secp256k1;
1921-
use secp256k1::key::SecretKey;
1921+
use secp256k1::SecretKey;
19221922

19231923
let signed_invoice = InvoiceBuilder::new(Currency::Bitcoin)
19241924
.description("Test".into())

lightning-invoice/src/payment.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
//! # use lightning::util::ser::{Writeable, Writer};
4747
//! # use lightning_invoice::Invoice;
4848
//! # use lightning_invoice::payment::{InvoicePayer, Payer, RetryAttempts, Router};
49-
//! # use secp256k1::key::PublicKey;
49+
//! # use secp256k1::PublicKey;
5050
//! # use std::cell::RefCell;
5151
//! # use std::ops::Deref;
5252
//! #
@@ -148,7 +148,7 @@ use lightning::util::events::{Event, EventHandler};
148148
use lightning::util::logger::Logger;
149149
use crate::sync::Mutex;
150150

151-
use secp256k1::key::PublicKey;
151+
use secp256k1::PublicKey;
152152

153153
use core::ops::Deref;
154154
use core::time::Duration;

lightning-invoice/src/utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use lightning::routing::scoring::Score;
1818
use lightning::routing::network_graph::{NetworkGraph, RoutingFees};
1919
use lightning::routing::router::{Route, RouteHint, RouteHintHop, RouteParameters, find_route};
2020
use lightning::util::logger::Logger;
21-
use secp256k1::key::PublicKey;
21+
use secp256k1::PublicKey;
2222
use core::convert::TryInto;
2323
use core::ops::Deref;
2424
use core::time::Duration;

lightning-net-tokio/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
//! # Example
2424
//! ```
2525
//! use std::net::TcpStream;
26-
//! use bitcoin::secp256k1::key::PublicKey;
26+
//! use bitcoin::secp256k1::PublicKey;
2727
//! use lightning::util::events::{Event, EventHandler, EventsProvider};
2828
//! use std::net::SocketAddr;
2929
//! use std::sync::Arc;
@@ -71,7 +71,7 @@
7171

7272
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
7373

74-
use bitcoin::secp256k1::key::PublicKey;
74+
use bitcoin::secp256k1::PublicKey;
7575

7676
use tokio::net::TcpStream;
7777
use tokio::{io, time};

lightning/Cargo.toml

+2-6
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ grind_signatures = []
3838
default = ["std", "grind_signatures"]
3939

4040
[dependencies]
41-
bitcoin = { version = "0.27", default-features = false, features = ["secp-recovery"] }
42-
# TODO remove this once rust-bitcoin PR #637 is released
43-
secp256k1 = { version = "0.20.2", default-features = false, features = ["alloc"] }
41+
bitcoin = { version = "0.28.0-rc.1", default-features = false, features = ["secp-recovery"] }
4442

4543
hashbrown = { version = "0.11", optional = true }
4644
hex = { version = "0.4", optional = true }
@@ -52,10 +50,8 @@ core2 = { version = "0.3.0", optional = true, default-features = false }
5250
[dev-dependencies]
5351
hex = "0.4"
5452
regex = "0.2.11"
55-
# TODO remove this once rust-bitcoin PR #637 is released
56-
secp256k1 = { version = "0.20.2", default-features = false, features = ["alloc"] }
5753

5854
[dev-dependencies.bitcoin]
59-
version = "0.27"
55+
version = "0.28.0-rc.1"
6056
default-features = false
6157
features = ["bitcoinconsensus", "secp-recovery"]

lightning/src/chain/channelmonitor.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use bitcoin::hashes::sha256::Hash as Sha256;
3030
use bitcoin::hash_types::{Txid, BlockHash, WPubkeyHash};
3131

3232
use bitcoin::secp256k1::{Secp256k1,Signature};
33-
use bitcoin::secp256k1::key::{SecretKey,PublicKey};
33+
use bitcoin::secp256k1::{SecretKey,PublicKey};
3434
use bitcoin::secp256k1;
3535

3636
use ln::{PaymentHash, PaymentPreimage};
@@ -3331,7 +3331,7 @@ mod tests {
33313331
use bitcoin::hashes::hex::FromHex;
33323332
use bitcoin::hash_types::{BlockHash, Txid};
33333333
use bitcoin::network::constants::Network;
3334-
use bitcoin::secp256k1::key::{SecretKey,PublicKey};
3334+
use bitcoin::secp256k1::{SecretKey,PublicKey};
33353335
use bitcoin::secp256k1::Secp256k1;
33363336

33373337
use hex;

lightning/src/chain/keysinterface.rs

+14-14
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ use bitcoin::hashes::sha256::Hash as Sha256;
2525
use bitcoin::hashes::sha256d::Hash as Sha256dHash;
2626
use bitcoin::hash_types::WPubkeyHash;
2727

28-
use bitcoin::secp256k1::key::{SecretKey, PublicKey};
28+
use bitcoin::secp256k1::{SecretKey, PublicKey};
2929
use bitcoin::secp256k1::{Secp256k1, Signature, Signing};
30-
use bitcoin::secp256k1::recovery::RecoverableSignature;
30+
use bitcoin::secp256k1::ecdsa::RecoverableSignature;
3131
use bitcoin::secp256k1;
3232

3333
use util::{byte_utils, transaction_utils};
@@ -588,10 +588,10 @@ impl InMemorySigner {
588588
if spend_tx.input[input_idx].previous_output != descriptor.outpoint.into_bitcoin_outpoint() { return Err(()); }
589589

590590
let remotepubkey = self.pubkeys().payment_point;
591-
let witness_script = bitcoin::Address::p2pkh(&::bitcoin::PublicKey{compressed: true, key: remotepubkey}, Network::Testnet).script_pubkey();
591+
let witness_script = bitcoin::Address::p2pkh(&::bitcoin::PublicKey{compressed: true, inner: remotepubkey}, Network::Testnet).script_pubkey();
592592
let sighash = hash_to_message!(&bip143::SigHashCache::new(spend_tx).signature_hash(input_idx, &witness_script, descriptor.output.value, SigHashType::All)[..]);
593593
let remotesig = sign(secp_ctx, &sighash, &self.payment_key);
594-
let payment_script = bitcoin::Address::p2wpkh(&::bitcoin::PublicKey{compressed: true, key: remotepubkey}, Network::Bitcoin).unwrap().script_pubkey();
594+
let payment_script = bitcoin::Address::p2wpkh(&::bitcoin::PublicKey{compressed: true, inner: remotepubkey}, Network::Bitcoin).unwrap().script_pubkey();
595595

596596
if payment_script != descriptor.output.script_pubkey { return Err(()); }
597597

@@ -884,23 +884,23 @@ impl KeysManager {
884884
// Note that when we aren't serializing the key, network doesn't matter
885885
match ExtendedPrivKey::new_master(Network::Testnet, seed) {
886886
Ok(master_key) => {
887-
let node_secret = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(0).unwrap()).expect("Your RNG is busted").private_key.key;
887+
let node_secret = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(0).unwrap()).expect("Your RNG is busted").private_key;
888888
let destination_script = match master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(1).unwrap()) {
889889
Ok(destination_key) => {
890-
let wpubkey_hash = WPubkeyHash::hash(&ExtendedPubKey::from_private(&secp_ctx, &destination_key).public_key.to_bytes());
890+
let wpubkey_hash = WPubkeyHash::hash(&ExtendedPubKey::from_private(&secp_ctx, &destination_key).to_pub().to_bytes());
891891
Builder::new().push_opcode(opcodes::all::OP_PUSHBYTES_0)
892892
.push_slice(&wpubkey_hash.into_inner())
893893
.into_script()
894894
},
895895
Err(_) => panic!("Your RNG is busted"),
896896
};
897897
let shutdown_pubkey = match master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(2).unwrap()) {
898-
Ok(shutdown_key) => ExtendedPubKey::from_private(&secp_ctx, &shutdown_key).public_key.key,
898+
Ok(shutdown_key) => ExtendedPubKey::from_private(&secp_ctx, &shutdown_key).public_key,
899899
Err(_) => panic!("Your RNG is busted"),
900900
};
901901
let channel_master_key = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(3).unwrap()).expect("Your RNG is busted");
902902
let rand_bytes_master_key = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(4).unwrap()).expect("Your RNG is busted");
903-
let inbound_payment_key: SecretKey = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(5).unwrap()).expect("Your RNG is busted").private_key.key;
903+
let inbound_payment_key: SecretKey = master_key.ckd_priv(&secp_ctx, ChildNumber::from_hardened_idx(5).unwrap()).expect("Your RNG is busted").private_key;
904904
let mut inbound_pmt_key_bytes = [0; 32];
905905
inbound_pmt_key_bytes.copy_from_slice(&inbound_payment_key[..]);
906906

@@ -951,7 +951,7 @@ impl KeysManager {
951951
// entropy, everything else just ensures uniqueness. We rely on the unique_start (ie
952952
// starting_time provided in the constructor) to be unique.
953953
let child_privkey = self.channel_master_key.ckd_priv(&self.secp_ctx, ChildNumber::from_hardened_idx(chan_id as u32).expect("key space exhausted")).expect("Your RNG is busted");
954-
unique_start.input(&child_privkey.private_key.key[..]);
954+
unique_start.input(&child_privkey.private_key[..]);
955955

956956
let seed = Sha256::from_engine(unique_start).into_inner();
957957

@@ -1092,20 +1092,20 @@ impl KeysManager {
10921092
Err(_) => panic!("Your rng is busted"),
10931093
}
10941094
};
1095-
let pubkey = ExtendedPubKey::from_private(&secp_ctx, &secret).public_key;
1095+
let pubkey = ExtendedPubKey::from_private(&secp_ctx, &secret).to_pub();
10961096
if derivation_idx == 2 {
1097-
assert_eq!(pubkey.key, self.shutdown_pubkey);
1097+
assert_eq!(pubkey.inner, self.shutdown_pubkey);
10981098
}
10991099
let witness_script = bitcoin::Address::p2pkh(&pubkey, Network::Testnet).script_pubkey();
11001100
let payment_script = bitcoin::Address::p2wpkh(&pubkey, Network::Testnet).expect("uncompressed key found").script_pubkey();
11011101

11021102
if payment_script != output.script_pubkey { return Err(()); };
11031103

11041104
let sighash = hash_to_message!(&bip143::SigHashCache::new(&spend_tx).signature_hash(input_idx, &witness_script, output.value, SigHashType::All)[..]);
1105-
let sig = sign(secp_ctx, &sighash, &secret.private_key.key);
1105+
let sig = sign(secp_ctx, &sighash, &secret.private_key);
11061106
spend_tx.input[input_idx].witness.push(sig.serialize_der().to_vec());
11071107
spend_tx.input[input_idx].witness[0].push(SigHashType::All as u8);
1108-
spend_tx.input[input_idx].witness.push(pubkey.key.serialize().to_vec());
1108+
spend_tx.input[input_idx].witness.push(pubkey.inner.serialize().to_vec());
11091109
},
11101110
}
11111111
input_idx += 1;
@@ -1157,7 +1157,7 @@ impl KeysInterface for KeysManager {
11571157

11581158
let child_ix = self.rand_bytes_child_index.fetch_add(1, Ordering::AcqRel);
11591159
let child_privkey = self.rand_bytes_master_key.ckd_priv(&self.secp_ctx, ChildNumber::from_hardened_idx(child_ix as u32).expect("key space exhausted")).expect("Your RNG is busted");
1160-
sha.input(&child_privkey.private_key.key[..]);
1160+
sha.input(&child_privkey.private_key[..]);
11611161

11621162
sha.input(b"Unique Secure Random Bytes Salt");
11631163
Sha256::from_engine(sha).into_inner()

lightning/src/chain/package.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use bitcoin::blockdata::script::Script;
1818

1919
use bitcoin::hash_types::Txid;
2020

21-
use bitcoin::secp256k1::key::{SecretKey,PublicKey};
21+
use bitcoin::secp256k1::{SecretKey,PublicKey};
2222

2323
use ln::PaymentPreimage;
2424
use ln::chan_utils::{TxCreationKeys, HTLCOutputInCommitment};
@@ -852,7 +852,7 @@ mod tests {
852852

853853
use bitcoin::hashes::hex::FromHex;
854854

855-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
855+
use bitcoin::secp256k1::{PublicKey,SecretKey};
856856
use bitcoin::secp256k1::Secp256k1;
857857

858858
macro_rules! dumb_revk_output {

lightning/src/ln/chan_utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use util::ser::{Readable, Writeable, Writer};
2626
use util::{byte_utils, transaction_utils};
2727

2828
use bitcoin::hash_types::WPubkeyHash;
29-
use bitcoin::secp256k1::key::{SecretKey, PublicKey};
29+
use bitcoin::secp256k1::{SecretKey, PublicKey};
3030
use bitcoin::secp256k1::{Secp256k1, Signature, Message};
3131
use bitcoin::secp256k1::Error as SecpError;
3232
use bitcoin::secp256k1;

lightning/src/ln/channel.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use bitcoin::hashes::sha256d::Hash as Sha256d;
1818
use bitcoin::hash_types::{Txid, BlockHash};
1919

2020
use bitcoin::secp256k1::constants::PUBLIC_KEY_SIZE;
21-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
21+
use bitcoin::secp256k1::{PublicKey,SecretKey};
2222
use bitcoin::secp256k1::{Secp256k1,Signature};
2323
use bitcoin::secp256k1;
2424

@@ -6282,8 +6282,8 @@ mod tests {
62826282
use util::logger::Logger;
62836283
use bitcoin::secp256k1::{Secp256k1, Message, Signature, All};
62846284
use bitcoin::secp256k1::ffi::Signature as FFISignature;
6285-
use bitcoin::secp256k1::key::{SecretKey,PublicKey};
6286-
use bitcoin::secp256k1::recovery::RecoverableSignature;
6285+
use bitcoin::secp256k1::{SecretKey,PublicKey};
6286+
use bitcoin::secp256k1::ecdsa::RecoverableSignature;
62876287
use bitcoin::hashes::sha256::Hash as Sha256;
62886288
use bitcoin::hashes::Hash;
62896289
use bitcoin::hash_types::{Txid, WPubkeyHash};

lightning/src/ln/channelmanager.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use bitcoin::hashes::sha256::Hash as Sha256;
2828
use bitcoin::hashes::sha256d::Hash as Sha256dHash;
2929
use bitcoin::hash_types::{BlockHash, Txid};
3030

31-
use bitcoin::secp256k1::key::{SecretKey,PublicKey};
31+
use bitcoin::secp256k1::{SecretKey,PublicKey};
3232
use bitcoin::secp256k1::Secp256k1;
3333
use bitcoin::secp256k1::ecdh::SharedSecret;
3434
use bitcoin::secp256k1;

lightning/src/ln/functional_test_utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use bitcoin::network::constants::Network;
3535

3636
use bitcoin::hash_types::BlockHash;
3737

38-
use bitcoin::secp256k1::key::PublicKey;
38+
use bitcoin::secp256k1::PublicKey;
3939

4040
use io;
4141
use prelude::*;

lightning/src/ln/functional_tests.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use bitcoin::blockdata::constants::genesis_block;
4242
use bitcoin::network::constants::Network;
4343

4444
use bitcoin::secp256k1::Secp256k1;
45-
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
45+
use bitcoin::secp256k1::{PublicKey,SecretKey};
4646

4747
use regex;
4848

@@ -2551,6 +2551,7 @@ fn claim_htlc_outputs_single_tx() {
25512551
check_added_monitors!(nodes[1], 1);
25522552
check_closed_event!(nodes[1], 1, ClosureReason::CommitmentTxConfirmed);
25532553
let mut events = nodes[0].node.get_and_clear_pending_events();
2554+
println!("XXX {:?}", events);
25542555
expect_pending_htlcs_forwardable_from_events!(nodes[0], events[0..1], true);
25552556
match events[1] {
25562557
Event::ChannelClosed { reason: ClosureReason::CommitmentTxConfirmed, .. } => {}

0 commit comments

Comments
 (0)