Skip to content

Commit d9f5df9

Browse files
committed
Drop requirement that all ChannelKeys expose revocaion_basepoint
1 parent 1a574d2 commit d9f5df9

File tree

3 files changed

+5
-10
lines changed

3 files changed

+5
-10
lines changed

lightning/src/chain/keysinterface.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,6 @@ impl Readable for SpendableOutputDescriptor {
195195
// TODO: We should remove Clone by instead requesting a new ChannelKeys copy when we create
196196
// ChannelMonitors instead of expecting to clone the one out of the Channel into the monitors.
197197
pub trait ChannelKeys : Send+Clone {
198-
/// Gets the local secret key for blinded revocation pubkey
199-
fn revocation_base_key<'a>(&'a self) -> &'a SecretKey;
200198
/// Gets the local secret key used in HTLC-Success/HTLC-Timeout txn and to_local output
201199
fn delayed_payment_base_key<'a>(&'a self) -> &'a SecretKey;
202200
/// Gets the local htlc secret key used in commitment tx htlc outputs
@@ -410,7 +408,6 @@ impl InMemoryChannelKeys {
410408
}
411409

412410
impl ChannelKeys for InMemoryChannelKeys {
413-
fn revocation_base_key(&self) -> &SecretKey { &self.revocation_base_key }
414411
fn delayed_payment_base_key(&self) -> &SecretKey { &self.delayed_payment_base_key }
415412
fn htlc_base_key(&self) -> &SecretKey { &self.htlc_base_key }
416413
fn commitment_seed(&self) -> &[u8; 32] { &self.commitment_seed }

lightning/src/ln/channel.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,11 +1108,11 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
11081108
fn build_remote_transaction_keys(&self) -> Result<TxCreationKeys, ChannelError> {
11091109
//TODO: Ensure that the payment_key derived here ends up in the library users' wallet as we
11101110
//may see payments to it!
1111-
let revocation_basepoint = PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.revocation_base_key());
1111+
let revocation_basepoint = &self.local_keys.pubkeys().revocation_basepoint;
11121112
let htlc_basepoint = PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key());
11131113
let their_pubkeys = self.their_pubkeys.as_ref().unwrap();
11141114

1115-
Ok(secp_check!(TxCreationKeys::new(&self.secp_ctx, &self.their_cur_commitment_point.unwrap(), &their_pubkeys.delayed_payment_basepoint, &their_pubkeys.htlc_basepoint, &revocation_basepoint, &htlc_basepoint), "Remote tx keys generation got bogus keys"))
1115+
Ok(secp_check!(TxCreationKeys::new(&self.secp_ctx, &self.their_cur_commitment_point.unwrap(), &their_pubkeys.delayed_payment_basepoint, &their_pubkeys.htlc_basepoint, revocation_basepoint, &htlc_basepoint), "Remote tx keys generation got bogus keys"))
11161116
}
11171117

11181118
/// Gets the redeemscript for the funding transaction output (ie the funding transaction output
@@ -3315,7 +3315,7 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
33153315
to_self_delay: self.our_to_self_delay,
33163316
max_accepted_htlcs: OUR_MAX_HTLCS,
33173317
funding_pubkey: local_keys.funding_pubkey,
3318-
revocation_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.revocation_base_key()),
3318+
revocation_basepoint: local_keys.revocation_basepoint,
33193319
payment_point: local_keys.payment_point,
33203320
delayed_payment_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.delayed_payment_base_key()),
33213321
htlc_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key()),
@@ -3349,7 +3349,7 @@ impl<ChanSigner: ChannelKeys> Channel<ChanSigner> {
33493349
to_self_delay: self.our_to_self_delay,
33503350
max_accepted_htlcs: OUR_MAX_HTLCS,
33513351
funding_pubkey: local_keys.funding_pubkey,
3352-
revocation_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.revocation_base_key()),
3352+
revocation_basepoint: local_keys.revocation_basepoint,
33533353
payment_point: local_keys.payment_point,
33543354
delayed_payment_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.delayed_payment_base_key()),
33553355
htlc_basepoint: PublicKey::from_secret_key(&self.secp_ctx, self.local_keys.htlc_base_key()),

lightning/src/util/enforcing_trait_impls.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ impl EnforcingChannelKeys {
3535
impl EnforcingChannelKeys {
3636
fn check_keys<T: secp256k1::Signing + secp256k1::Verification>(&self, secp_ctx: &Secp256k1<T>,
3737
keys: &TxCreationKeys) {
38-
let revocation_base = PublicKey::from_secret_key(secp_ctx, &self.inner.revocation_base_key());
3938
let htlc_base = PublicKey::from_secret_key(secp_ctx, &self.inner.htlc_base_key());
4039

4140
let remote_points = self.inner.remote_channel_pubkeys.as_ref().unwrap();
@@ -44,14 +43,13 @@ impl EnforcingChannelKeys {
4443
&keys.per_commitment_point,
4544
&remote_points.delayed_payment_basepoint,
4645
&remote_points.htlc_basepoint,
47-
&revocation_base,
46+
&self.inner.pubkeys().revocation_basepoint,
4847
&htlc_base).unwrap();
4948
if keys != &keys_expected { panic!("derived different per-tx keys") }
5049
}
5150
}
5251

5352
impl ChannelKeys for EnforcingChannelKeys {
54-
fn revocation_base_key(&self) -> &SecretKey { self.inner.revocation_base_key() }
5553
fn delayed_payment_base_key(&self) -> &SecretKey { self.inner.delayed_payment_base_key() }
5654
fn htlc_base_key(&self) -> &SecretKey { self.inner.htlc_base_key() }
5755
fn commitment_seed(&self) -> &[u8; 32] { self.inner.commitment_seed() }

0 commit comments

Comments
 (0)